View Javadoc
1   package org.argeo.cms.e4.monitoring;
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  }