]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/argeo-commons/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/osgi/BundlesView.java
Adapt to changes in Argeo Commons
[gpl/argeo-slc.git] / legacy / argeo-commons / org.argeo.cms.ui.workbench / src / org / argeo / cms / ui / workbench / osgi / BundlesView.java
1 //package org.argeo.eclipse.ui.workbench.osgi;
2 //public class BundlesView {}
3
4 package org.argeo.cms.ui.workbench.osgi;
5
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;
19
20 /**
21 * Overview of the bundles as a table. Equivalent to Equinox 'ss' console
22 * command.
23 */
24 public class BundlesView extends ViewPart {
25 private TableViewer viewer;
26
27 @Override
28 public void createPartControl(Composite parent) {
29 viewer = new TableViewer(parent);
30 viewer.setContentProvider(new BundleContentProvider());
31 viewer.getTable().setHeaderVisible(true);
32
33 EclipseUiSpecificUtils.enableToolTipSupport(viewer);
34
35 // ID
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;
42
43 public String getText(Object element) {
44 return Long.toString(((Bundle) element).getBundleId());
45 }
46 });
47 new ColumnViewerComparator(column);
48
49 // State
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);
55
56 // Symbolic name
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;
62
63 public String getText(Object element) {
64 return ((Bundle) element).getSymbolicName();
65 }
66 });
67 new ColumnViewerComparator(column);
68
69 // Version
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;
75
76 public String getText(Object element) {
77 Bundle bundle = (org.osgi.framework.Bundle) element;
78 return bundle.getVersion().toString();
79 }
80 });
81 new ColumnViewerComparator(column);
82
83 viewer.setInput(WorkbenchUiPlugin.getDefault().getBundle().getBundleContext());
84
85 }
86
87 @Override
88 public void setFocus() {
89 if (viewer != null)
90 viewer.getControl().setFocus();
91 }
92
93 /** Content provider managing the array of bundles */
94 private static class BundleContentProvider implements IStructuredContentProvider {
95 private static final long serialVersionUID = -8533792785725875977L;
96
97 public Object[] getElements(Object inputElement) {
98 if (inputElement instanceof BundleContext) {
99 BundleContext bc = (BundleContext) inputElement;
100 return bc.getBundles();
101 }
102 return null;
103 }
104
105 public void dispose() {
106 }
107
108 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
109 }
110 }
111 }