]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/osgi/StateLabelProvider.java
803a35871d2ced7f673ca36ad687bc46749abbb4
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.workbench / src / org / argeo / eclipse / ui / workbench / osgi / StateLabelProvider.java
1 package org.argeo.eclipse.ui.workbench.osgi;
2
3 import org.eclipse.jface.viewers.ColumnLabelProvider;
4 import org.eclipse.swt.graphics.Image;
5 import org.osgi.framework.Bundle;
6 import org.osgi.framework.Constants;
7
8 /** Label provider showing the sate of bundles */
9 class StateLabelProvider extends ColumnLabelProvider {
10 private static final long serialVersionUID = -7885583135316000733L;
11
12 @Override
13 public Image getImage(Object element) {
14 int state;
15 if (element instanceof Bundle)
16 state = ((Bundle) element).getState();
17 else if (element instanceof BundleNode)
18 state = ((BundleNode) element).getBundle().getState();
19 else if (element instanceof ServiceReferenceNode)
20 if (((ServiceReferenceNode) element).isPublished())
21 return OsgiExplorerImages.SERVICE_PUBLISHED;
22 else
23 return OsgiExplorerImages.SERVICE_REFERENCED;
24 else
25 return null;
26
27 switch (state) {
28 case Bundle.UNINSTALLED:
29 return OsgiExplorerImages.INSTALLED;
30 case Bundle.INSTALLED:
31 return OsgiExplorerImages.INSTALLED;
32 case Bundle.RESOLVED:
33 return OsgiExplorerImages.RESOLVED;
34 case Bundle.STARTING:
35 return OsgiExplorerImages.STARTING;
36 case Bundle.STOPPING:
37 return OsgiExplorerImages.STARTING;
38 case Bundle.ACTIVE:
39 return OsgiExplorerImages.ACTIVE;
40 default:
41 return null;
42 }
43 }
44
45 @Override
46 public String getText(Object element) {
47 return null;
48 }
49
50 @Override
51 public String getToolTipText(Object element) {
52 Bundle bundle = (Bundle) element;
53 Integer state = bundle.getState();
54 switch (state) {
55 case Bundle.UNINSTALLED:
56 return "UNINSTALLED";
57 case Bundle.INSTALLED:
58 return "INSTALLED";
59 case Bundle.RESOLVED:
60 return "RESOLVED";
61 case Bundle.STARTING:
62 String activationPolicy = bundle.getHeaders()
63 .get(Constants.BUNDLE_ACTIVATIONPOLICY).toString();
64
65 // .get("Bundle-ActivationPolicy").toString();
66 // FIXME constant triggers the compilation failure
67 if (activationPolicy != null
68 && activationPolicy.equals(Constants.ACTIVATION_LAZY))
69 // && activationPolicy.equals("lazy"))
70 // FIXME constant triggers the compilation failure
71 // && activationPolicy.equals(Constants.ACTIVATION_LAZY))
72 return "<<LAZY>>";
73 return "STARTING";
74 case Bundle.STOPPING:
75 return "STOPPING";
76 case Bundle.ACTIVE:
77 return "ACTIVE";
78 default:
79 return null;
80 }
81 }
82 }