1 //package org.argeo.eclipse.ui.workbench.osgi;
2 //public class BundlesView {}
4 package org
.argeo
.cms
.e4
.monitoring
;
6 import javax
.annotation
.PostConstruct
;
8 import org
.argeo
.eclipse
.ui
.ColumnViewerComparator
;
9 import org
.argeo
.eclipse
.ui
.specific
.EclipseUiSpecificUtils
;
10 import org
.eclipse
.e4
.ui
.di
.Focus
;
11 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
12 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
13 import org
.eclipse
.jface
.viewers
.TableViewer
;
14 import org
.eclipse
.jface
.viewers
.TableViewerColumn
;
15 import org
.eclipse
.jface
.viewers
.Viewer
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.widgets
.Composite
;
18 import org
.osgi
.framework
.Bundle
;
19 import org
.osgi
.framework
.BundleContext
;
20 import org
.osgi
.framework
.FrameworkUtil
;
23 * Overview of the bundles as a table. Equivalent to Equinox 'ss' console
26 public class BundlesView
{
27 private final static BundleContext bc
= FrameworkUtil
.getBundle(BundlesView
.class).getBundleContext();
28 private TableViewer viewer
;
31 public void createPartControl(Composite parent
) {
32 viewer
= new TableViewer(parent
);
33 viewer
.setContentProvider(new BundleContentProvider());
34 viewer
.getTable().setHeaderVisible(true);
36 EclipseUiSpecificUtils
.enableToolTipSupport(viewer
);
39 TableViewerColumn column
= new TableViewerColumn(viewer
, SWT
.NONE
);
40 column
.getColumn().setWidth(30);
41 column
.getColumn().setText("ID");
42 column
.getColumn().setAlignment(SWT
.RIGHT
);
43 column
.setLabelProvider(new ColumnLabelProvider() {
44 private static final long serialVersionUID
= -3122136344359358605L;
46 public String
getText(Object element
) {
47 return Long
.toString(((Bundle
) element
).getBundleId());
50 new ColumnViewerComparator(column
);
53 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
54 column
.getColumn().setWidth(18);
55 column
.getColumn().setText("State");
56 column
.setLabelProvider(new StateLabelProvider());
57 new ColumnViewerComparator(column
);
60 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
61 column
.getColumn().setWidth(250);
62 column
.getColumn().setText("Symbolic Name");
63 column
.setLabelProvider(new ColumnLabelProvider() {
64 private static final long serialVersionUID
= -4280840684440451080L;
66 public String
getText(Object element
) {
67 return ((Bundle
) element
).getSymbolicName();
70 new ColumnViewerComparator(column
);
73 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
74 column
.getColumn().setWidth(250);
75 column
.getColumn().setText("Version");
76 column
.setLabelProvider(new ColumnLabelProvider() {
77 private static final long serialVersionUID
= 6871926308708629989L;
79 public String
getText(Object element
) {
80 Bundle bundle
= (org
.osgi
.framework
.Bundle
) element
;
81 return bundle
.getVersion().toString();
84 new ColumnViewerComparator(column
);
91 public void setFocus() {
93 viewer
.getControl().setFocus();
96 /** Content provider managing the array of bundles */
97 private static class BundleContentProvider
implements IStructuredContentProvider
{
98 private static final long serialVersionUID
= -8533792785725875977L;
100 public Object
[] getElements(Object inputElement
) {
101 if (inputElement
instanceof BundleContext
) {
102 BundleContext bc
= (BundleContext
) inputElement
;
103 return bc
.getBundles();
108 public void dispose() {
111 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {