1 package org
.argeo
.cms
.e4
.monitoring
;
3 import java
.util
.ArrayList
;
6 import javax
.annotation
.PostConstruct
;
8 import org
.argeo
.eclipse
.ui
.TreeParent
;
9 import org
.eclipse
.e4
.ui
.di
.Focus
;
10 import org
.eclipse
.jface
.viewers
.ITreeContentProvider
;
11 import org
.eclipse
.jface
.viewers
.TreeViewer
;
12 import org
.eclipse
.jface
.viewers
.Viewer
;
13 import org
.eclipse
.swt
.SWT
;
14 import org
.eclipse
.swt
.widgets
.Composite
;
15 import org
.osgi
.framework
.Bundle
;
16 import org
.osgi
.framework
.BundleContext
;
17 import org
.osgi
.framework
.FrameworkUtil
;
19 /** The OSGi runtime from a module perspective. */
20 public class ModulesView
{
21 private final static BundleContext bc
= FrameworkUtil
.getBundle(ModulesView
.class).getBundleContext();
22 private TreeViewer viewer
;
25 public void createPartControl(Composite parent
) {
26 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
27 viewer
.setContentProvider(new ModulesContentProvider());
28 viewer
.setLabelProvider(new ModulesLabelProvider());
33 public void setFocus() {
34 viewer
.getTree().setFocus();
37 private class ModulesContentProvider
implements ITreeContentProvider
{
38 private static final long serialVersionUID
= 3819934804640641721L;
40 public Object
[] getElements(Object inputElement
) {
41 return getChildren(inputElement
);
44 public Object
[] getChildren(Object parentElement
) {
45 if (parentElement
instanceof BundleContext
) {
46 BundleContext bundleContext
= (BundleContext
) parentElement
;
47 Bundle
[] bundles
= bundleContext
.getBundles();
49 List
<BundleNode
> modules
= new ArrayList
<BundleNode
>();
50 for (Bundle bundle
: bundles
) {
51 if (bundle
.getState() == Bundle
.ACTIVE
)
52 modules
.add(new BundleNode(bundle
, true));
54 return modules
.toArray();
55 } else if (parentElement
instanceof TreeParent
) {
56 return ((TreeParent
) parentElement
).getChildren();
62 public Object
getParent(Object element
) {
63 // TODO Auto-generated method stub
67 public boolean hasChildren(Object element
) {
68 if (element
instanceof TreeParent
) {
69 return ((TreeParent
) element
).hasChildren();
74 public void dispose() {
77 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {
81 private class ModulesLabelProvider
extends StateLabelProvider
{
82 private static final long serialVersionUID
= 5290046145534824722L;
85 public String
getText(Object element
) {
86 if (element
instanceof BundleNode
)
87 return element
.toString() + " [" + ((BundleNode
) element
).getBundle().getBundleId() + "]";
88 return element
.toString();