1 //package org.argeo.eclipse.ui.workbench.osgi;
2 //public class BundlesView {}
4 package org
.argeo
.cms
.ui
.workbench
.osgi
;
6 import org
.argeo
.cms
.ui
.workbench
.WorkbenchUiPlugin
;
7 import org
.argeo
.eclipse
.ui
.ColumnViewerComparator
;
8 import org
.argeo
.eclipse
.ui
.specific
.EclipseUiSpecificUtils
;
9 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
10 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
11 import org
.eclipse
.jface
.viewers
.TableViewer
;
12 import org
.eclipse
.jface
.viewers
.TableViewerColumn
;
13 import org
.eclipse
.jface
.viewers
.Viewer
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.widgets
.Composite
;
16 import org
.eclipse
.ui
.part
.ViewPart
;
17 import org
.osgi
.framework
.Bundle
;
18 import org
.osgi
.framework
.BundleContext
;
21 * Overview of the bundles as a table. Equivalent to Equinox 'ss' console
24 public class BundlesView
extends ViewPart
{
25 private TableViewer viewer
;
28 public void createPartControl(Composite parent
) {
29 viewer
= new TableViewer(parent
);
30 viewer
.setContentProvider(new BundleContentProvider());
31 viewer
.getTable().setHeaderVisible(true);
33 EclipseUiSpecificUtils
.enableToolTipSupport(viewer
);
36 TableViewerColumn column
= new TableViewerColumn(viewer
, SWT
.NONE
);
37 column
.getColumn().setWidth(30);
38 column
.getColumn().setText("ID");
39 column
.getColumn().setAlignment(SWT
.RIGHT
);
40 column
.setLabelProvider(new ColumnLabelProvider() {
41 private static final long serialVersionUID
= -3122136344359358605L;
43 public String
getText(Object element
) {
44 return Long
.toString(((Bundle
) element
).getBundleId());
47 new ColumnViewerComparator(column
);
50 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
51 column
.getColumn().setWidth(18);
52 column
.getColumn().setText("State");
53 column
.setLabelProvider(new StateLabelProvider());
54 new ColumnViewerComparator(column
);
57 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
58 column
.getColumn().setWidth(250);
59 column
.getColumn().setText("Symbolic Name");
60 column
.setLabelProvider(new ColumnLabelProvider() {
61 private static final long serialVersionUID
= -4280840684440451080L;
63 public String
getText(Object element
) {
64 return ((Bundle
) element
).getSymbolicName();
67 new ColumnViewerComparator(column
);
70 column
= new TableViewerColumn(viewer
, SWT
.NONE
);
71 column
.getColumn().setWidth(150);
72 column
.getColumn().setText("Version");
73 column
.setLabelProvider(new ColumnLabelProvider() {
74 private static final long serialVersionUID
= 6871926308708629989L;
76 public String
getText(Object element
) {
77 Bundle bundle
= (org
.osgi
.framework
.Bundle
) element
;
78 return bundle
.getVersion().toString();
81 new ColumnViewerComparator(column
);
83 viewer
.setInput(WorkbenchUiPlugin
.getDefault().getBundle().getBundleContext());
88 public void setFocus() {
90 viewer
.getControl().setFocus();
93 /** Content provider managing the array of bundles */
94 private static class BundleContentProvider
implements IStructuredContentProvider
{
95 private static final long serialVersionUID
= -8533792785725875977L;
97 public Object
[] getElements(Object inputElement
) {
98 if (inputElement
instanceof BundleContext
) {
99 BundleContext bc
= (BundleContext
) inputElement
;
100 return bc
.getBundles();
105 public void dispose() {
108 public void inputChanged(Viewer viewer
, Object oldInput
, Object newInput
) {