List of usage examples for org.eclipse.jface.viewers TreeViewerColumn getColumn
public TreeColumn getColumn()
From source file:org.modelio.mda.infra.catalog.ModuleCatalogPanel.java
License:Open Source License
@objid("e53a50b6-ab02-4300-b9f6-0b2e2a199ad6") @Override//from w w w . j a v a2 s . c o m public Object createPanel(Composite parent) { // top level container this.top = new Composite(parent, SWT.BORDER); this.top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); this.top.setLayout(new FormLayout()); this.loading = new Label(this.top, SWT.CENTER); this.loading.setImage(MdaInfra.getImageDescriptor("icons/hourglass.png").createImage()); // List of modules from catalog this.treeViewer = new TreeViewer(this.top, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION); Tree tree = this.treeViewer.getTree(); tree.setHeaderVisible(true); this.treeViewer.getTree().setLinesVisible(true); // The first column displays the module name and version (or the // category) TreeViewerColumn col1 = new TreeViewerColumn(this.treeViewer, SWT.NONE); col1.getColumn().setWidth(200); col1.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.Module.label")); col1.getColumn().setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.Module.tooltip")); col1.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof IModuleHandle) { // display a module IModuleHandle mh = (IModuleHandle) element; return mh.getName() + " " + mh.getVersion().toString("V.R.C"); } else { // display a category CatalogModulesProvider cp = (CatalogModulesProvider) ModuleCatalogPanel.this.treeViewer .getContentProvider(); int totalNb = cp.getAllVersionsOfModule((String) element).size(); return element.toString() + " [" + totalNb + "]"; } } @Override public Image getImage(Object element) { if (element instanceof IModuleHandle) { return MdaInfra.getImageDescriptor("icons/module.png").createImage(); } else { return MdaInfra.getImageDescriptor("icons/modulelist.png").createImage(); } } }); // The second column display the minimal version of Modelio that is // required to run the module TreeViewerColumn col2 = new TreeViewerColumn(this.treeViewer, SWT.CENTER); col2.getColumn().setWidth(200); col2.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ModelioRequiredVersion.label")); col2.getColumn() .setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.ModelioRequiredVersion.tooltip")); col2.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof IModuleHandle) { IModuleHandle mh = (IModuleHandle) element; return mh.getBinaryVersion().toString("V.R.C"); } return ""; } }); // The third column displays the predictable compatibility of the module // with the current Modelio version TreeViewerColumn col3 = new TreeViewerColumn(this.treeViewer, SWT.NONE); col3.getColumn().setWidth(200); col3.getColumn().setText(MdaInfra.I18N.getString("ModuleCatalogPanel.Compatibility.label")); col3.getColumn().setToolTipText(MdaInfra.I18N.getString("ModuleCatalogPanel.Compatibility.tooltip")); col3.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof IModuleHandle) { IModuleHandle mh = (IModuleHandle) element; switch (CompatibilityHelper.getCompatibilityLevel(ModuleCatalogPanel.this.modelioEnv, mh)) { case COMPATIBLE: return MdaInfra.I18N.getString("ModuleCatalogPanel.message.Compatible"); case FULLYCOMPATIBLE: return MdaInfra.I18N.getString("ModuleCatalogPanel.message.FullyCompatible"); case MODELIO_TOO_OLD: return MdaInfra.I18N.getString("ModuleCatalogPanel.message.ModelioTooOld"); case MODULE_TOO_OLD: return MdaInfra.I18N.getString("ModuleCatalogPanel.message.ModuleTooOld"); default: break; } } return ""; } @Override public Color getForeground(Object element) { if (element instanceof IModuleHandle) { IModuleHandle mh = (IModuleHandle) element; switch (CompatibilityHelper.getCompatibilityLevel(ModuleCatalogPanel.this.modelioEnv, mh)) { case COMPATIBLE: return Display.getCurrent().getSystemColor(SWT.COLOR_BLUE); case FULLYCOMPATIBLE: return Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GREEN); case MODELIO_TOO_OLD: case MODULE_TOO_OLD: return Display.getCurrent().getSystemColor(SWT.COLOR_RED); default: break; } } return super.getForeground(element); } }); // Activate the tooltip support for the viewer // ColumnViewerToolTipSupport.enableFor(treeViewer, // org.eclipse.jface.window.ToolTip.NO_RECREATE); // Option 'show only latest version' final Button latestOnly = new Button(this.top, SWT.CHECK); latestOnly.setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ShowLatestVersions")); latestOnly.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { ModuleCatalogPanel.this.controller.onShowLatestOnly(latestOnly.getSelection()); } @Override public void widgetDefaultSelected(SelectionEvent e) { // } }); // Option 'show only compatible versions' final Button compatibleOnly = new Button(this.top, SWT.CHECK); compatibleOnly.setText(MdaInfra.I18N.getString("ModuleCatalogPanel.ShowCompatibleVersions")); compatibleOnly.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { ModuleCatalogPanel.this.controller.onShowCompatibleOnly(compatibleOnly.getSelection()); } @Override public void widgetDefaultSelected(SelectionEvent e) { // } }); // Carry out attachments (as the different widgets are attached // together, can only set their attachements here, when they all have // been created) FormData fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(100, 0); fd.bottom = new FormAttachment(100, 0); compatibleOnly.setLayoutData(fd); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.bottom = new FormAttachment(compatibleOnly, 0, SWT.TOP); fd.right = new FormAttachment(100, 0); latestOnly.setLayoutData(fd); fd = new FormData(); fd.top = new FormAttachment(0, 0); fd.left = new FormAttachment(0, 0); fd.bottom = new FormAttachment(latestOnly, -4); fd.right = new FormAttachment(100, 0); tree.setLayoutData(fd); this.loading.setLayoutData(fd); // FIXME // GUI is available, init the contents this.controller = new ModuleCatalogPanelController(this, this.modelioEnv); this.controller.init(); // Init checkbox states latestOnly.setSelection(this.controller.isShowLatestOnly()); compatibleOnly.setSelection(this.controller.isShowCompatibleOnly()); this.treeViewer.getTree().setVisible(false); return this; }
From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java
License:MIT License
/** * Creates the tab item of Components./*from w ww .j a va 2 s .com*/ */ private void createComponentsTabItem() { tbtmComponents = new TabItem(tabFolder, SWT.NONE); tbtmComponents.setText("Components"); compositeComponent = new Composite(tabFolder, SWT.NONE); tbtmComponents.setControl(compositeComponent); compositeComponent.setLayout(new BorderLayout(0, 0)); { compositeStackComponent = new Composite(compositeComponent, SWT.NONE); compositeStackComponent.setLayoutData(BorderLayout.CENTER); compositeStackComponent.setLayout(new StackLayout()); inputPanelMasterComponent = new MasterComponentInputPanel(compositeStackComponent, SWT.NONE); inputPanelSlaveComponent = new SlaveComponentInputPanel(compositeStackComponent, SWT.NONE); inputPanelComponentSet = new ComponentSetInputPanel(compositeStackComponent, SWT.NONE); inputPanelCache = new CacheInputPanel(compositeStackComponent, SWT.NONE); inputPanelAccessTypeSet = new AccessTypeSetInputPanel(compositeStackComponent, SWT.NONE); inputPanelAccessType = new AccessTypeInputPanel(compositeStackComponent, SWT.NONE); inputPanelClockFrequency = new ClockFrequencyInputPanel(compositeStackComponent, SWT.NONE); inputPanelCommonInstructionSet = new CommonInstructionSetInputPanel(compositeStackComponent, SWT.NONE); inputPanelInstruction = new InstructionInputPanel(compositeStackComponent, SWT.NONE); inputPanelPerformance_2 = new PerformanceInputPanel(compositeStackComponent, SWT.NONE); inputPanelLatency_2 = new LatencyInputPanel(compositeStackComponent, SWT.NONE); inputPanelPitch_2 = new PitchInputPanel(compositeStackComponent, SWT.NONE); } composite_2 = new Composite(compositeComponent, SWT.NONE); composite_2.setLayoutData(BorderLayout.WEST); composite_2.setLayout(new BorderLayout(0, 0)); shimComponentTreeViewer = new ShimComponentTreeViewer(composite_2); shimComponentTreeViewer.setExpandPreCheckFilters(true); shimComponentTreeViewer.setAutoExpandLevel(4); Tree treeComponentSet = shimComponentTreeViewer.getTree(); treeComponentSet.setLinesVisible(true); treeComponentSet.setHeaderVisible(true); treeComponentSet.setLayoutData(BorderLayout.CENTER); { TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimComponentTreeViewer, SWT.NONE); TreeColumn treeColumn = treeViewerColumn.getColumn(); treeColumn.setWidth(300); treeColumn.setText("ComponentSetTree"); } { composite = new Composite(composite_2, SWT.NONE); composite.setLayoutData(BorderLayout.SOUTH); composite.setLayout(new GridLayout(1, false)); { btnRenumber = new Button(composite, SWT.NONE); btnRenumber.addSelectionListener(this); btnRenumber.setText("Re-number nodes"); } } shimComponentTreeViewer.setLabelProvider(new ComponentTreeLabelProvider()); shimComponentTreeViewer.setContentProvider(new ComponentTreeItemProvider()); TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeComponentSet, new int[] { 300 }); SelectionListener selectionListener = new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetDefaultSelected(SelectionEvent event) { // NOOP } /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent event) { TreeItem item = (TreeItem) event.item; componentSelectedItem = item; log.finest("TreeViewer:Components " + item.getText() + " selected"); InputPanelBase inputPanel = null; Object selectedObject = item.getData(); if (selectedObject instanceof MasterComponent) { inputPanel = inputPanelMasterComponent; } else if (selectedObject instanceof SlaveComponent) { inputPanel = inputPanelSlaveComponent; } else if (selectedObject instanceof ComponentSet) { inputPanel = inputPanelComponentSet; } else if (selectedObject instanceof Cache) { inputPanel = inputPanelCache; } else if (selectedObject instanceof AccessTypeSet) { inputPanel = inputPanelAccessTypeSet; } else if (selectedObject instanceof AccessType) { inputPanel = inputPanelAccessType; } else if (selectedObject instanceof CommonInstructionSet) { inputPanel = inputPanelCommonInstructionSet; } else if (selectedObject instanceof Instruction) { inputPanel = inputPanelInstruction; } else if (selectedObject instanceof Performance) { inputPanel = inputPanelPerformance_2; } else if (selectedObject instanceof Latency) { inputPanel = inputPanelLatency_2; } else if (selectedObject instanceof Pitch) { inputPanel = inputPanelPitch_2; } else if (selectedObject instanceof ClockFrequency) { inputPanel = inputPanelClockFrequency; } currentComponentsPanel = inputPanel; changeInputPanel(item, inputPanel, compositeStackComponent, shimComponentTreeViewer); } }; treeComponentSet.addSelectionListener(selectionListener); // If notifies the selection event in tabFolder, refreshes all // tree viewers. tabFolder.addSelectionListener(new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetDefaultSelected(SelectionEvent event) { // NOOP } /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent event) { refresh(); } }); // creates an empty input ObjectFactory of = ShimModelManager.getObjectFactory(); ComponentSet croot = of.createComponentSet(); croot.setName("rootCompo"); ComponentSet cs1 = of.createComponentSet(); cs1.setName("cs1"); MasterComponent cpu1 = of.createMasterComponent(); cpu1.setName("cpu1"); SlaveComponent mem1 = of.createSlaveComponent(); mem1.setName("mem1"); ComponentSet cs11 = of.createComponentSet(); cs11.setName("cs11"); croot.getComponentSet().add(cs1); cs1.getComponentSet().add(cs11); cs1.getMasterComponent().add(cpu1); cs1.getSlaveComponent().add(mem1); MasterComponent cpu11 = of.createMasterComponent(); cpu11.setName("cpu11"); MasterComponent cpu12 = of.createMasterComponent(); cpu12.setName("cpu12"); cs11.getMasterComponent().add(cpu11); cs11.getMasterComponent().add(cpu12); shimComponentTreeViewer.setInput(croot.getComponentSet().toArray()); }
From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java
License:MIT License
/** * Creates the tab item of AddressSpace. *//*from www . j ava 2 s . com*/ private void createAddressSpaceTabItem() { TabItem tbtmAddressSpace = new TabItem(tabFolder, SWT.NONE); tbtmAddressSpace.setText("AddressSpace"); Composite compositeAddressSpaces = new Composite(tabFolder, SWT.NONE); tbtmAddressSpace.setControl(compositeAddressSpaces); compositeAddressSpaces.setLayout(new BorderLayout(0, 0)); { shimAddressSpaceTreeViewer = new ShimAddressSpaceTreeViewer(compositeAddressSpaces); shimAddressSpaceTreeViewer.setAutoExpandLevel(3); shimAddressSpaceTreeViewer.setExpandPreCheckFilters(true); treeAddressSpaceSet = shimAddressSpaceTreeViewer.getTree(); treeAddressSpaceSet.setHeaderVisible(true); treeAddressSpaceSet.setLinesVisible(true); treeAddressSpaceSet.setLayoutData(BorderLayout.WEST); { TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimAddressSpaceTreeViewer, SWT.NONE); TreeColumn trclmnAddressSpaceName = treeViewerColumn.getColumn(); trclmnAddressSpaceName.setWidth(295); trclmnAddressSpaceName.setText("AddressSpaceName"); } shimAddressSpaceTreeViewer.setLabelProvider(new AddressSpaceTreeLabelProvider()); shimAddressSpaceTreeViewer.setContentProvider(new AddressSpaceTreeItemProvider()); TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeAddressSpaceSet, new int[] { 295 }); } compositeStackAddressSpace = new Composite(compositeAddressSpaces, SWT.NONE); compositeStackAddressSpace.setLayoutData(BorderLayout.CENTER); compositeStackAddressSpace.setLayout(new StackLayout()); { inputPanelAddressSpaceSet = new AddressSpaceSetInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelAddressSpace = new AddressSpaceInputPanel(compositeStackAddressSpace, SWT.NONE, false); inputPanelSubSpace = new SubSpaceInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelMasterSlaveBindingSet = new MasterSlaveBindingSetInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelMasterSlaveBinding = new MasterSlaveBindingInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelPerformanceSet = new PerformanceSetInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelPerformance_1 = new PerformanceInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelAccessor = new AccessorInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelLatency_1 = new LatencyInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelPitch_1 = new PitchInputPanel(compositeStackAddressSpace, SWT.NONE); inputPanelMemoryConsistencyModel = new MemoryConsistencyModelInputPanel(compositeStackAddressSpace, SWT.NONE); SelectionAdapter selectionAdapter = new SelectionAdapter() { /** * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent event) { Accessor accessor = (Accessor) inputPanelAccessor.getInput(); MasterComponent masterComponentRef = (MasterComponent) accessor.getMasterComponentRef(); List<ShimObject> objectsList = ShimModelAdapter.getObjectsList(AccessType.class, masterComponentRef); boolean dialogFlag = false; // Confirms whether invalid reference occurs or not. List<PerformanceSet> performanceSetList = accessor.getPerformanceSet(); for (PerformanceSet performanceSet : performanceSetList) { List<Performance> performanceList = performanceSet.getPerformance(); for (Performance performance : performanceList) { AccessType accessTypeRef = (AccessType) performance.getAccessTypeRef(); if (accessTypeRef == null) { continue; } boolean isFound = false; AccessType replace = null; for (ShimObject objects : objectsList) { AccessType type = (AccessType) objects.getObj(); if (accessTypeRef.getId().equals(type.getId())) { isFound = true; break; } else if (accessTypeRef.getName().equals(type.getName())) { replace = type; } } if (!isFound) { // If there is the AccessType which has the same // name, // replaces with it. performance.setAccessTypeRef(replace); if (replace == null) { dialogFlag = true; } } } } // If some invalid reference occurs, notifies users. if (dialogFlag) { MessageDialog.openWarning(rootShell, "Warning", CommonConstants.MESSAGE_INVALID_IDREF); } } }; inputPanelAccessor.getBtnApply().addSelectionListener(selectionAdapter); } SelectionListener listener = new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetDefaultSelected(SelectionEvent event) { // NOOP } /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent event) { TreeItem item = (TreeItem) event.item; log.finest("TreeViewer:AddressSpace " + item.getText() + " selected"); addressSpaceSelectedItem = item; InputPanelBase inputPanel = null; Object selectedObject = item.getData(); if (selectedObject instanceof AddressSpaceSet) { inputPanel = inputPanelAddressSpaceSet; } else if (selectedObject instanceof AddressSpace) { inputPanel = inputPanelAddressSpace; } else if (selectedObject instanceof SubSpace) { inputPanel = inputPanelSubSpace; } else if (selectedObject instanceof MasterSlaveBindingSet) { inputPanel = inputPanelMasterSlaveBindingSet; } else if (selectedObject instanceof MasterSlaveBinding) { inputPanel = inputPanelMasterSlaveBinding; } else if (selectedObject instanceof PerformanceSet) { inputPanel = inputPanelPerformanceSet; } else if (selectedObject instanceof Performance) { inputPanel = inputPanelPerformance_1; } else if (selectedObject instanceof Latency) { inputPanel = inputPanelLatency_1; } else if (selectedObject instanceof Pitch) { inputPanel = inputPanelPitch_1; } else if (selectedObject instanceof Accessor) { inputPanel = inputPanelAccessor; } else if (selectedObject instanceof MemoryConsistencyModel) { inputPanel = inputPanelMemoryConsistencyModel; } currentAddressSpacePanel = inputPanel; changeInputPanel(item, inputPanel, compositeStackAddressSpace, shimAddressSpaceTreeViewer); } }; treeAddressSpaceSet.addSelectionListener(listener); }
From source file:org.multicore_association.shim.edit.gui.jface.SHIMEditJFaceApplicationWindow.java
License:MIT License
/** * Creates the tab item of CommunicationSet. *///www . j ava 2s. co m private void createCommunicationTabItem() { TabItem tbtmCommunications = new TabItem(tabFolder, SWT.NONE); tbtmCommunications.setText("Communications"); Composite composite_Communications = new Composite(tabFolder, SWT.NONE); tbtmCommunications.setControl(composite_Communications); composite_Communications.setLayout(new BorderLayout(0, 0)); compositeCommunicationTree = new Composite(composite_Communications, SWT.NONE); compositeCommunicationTree.setLayoutData(BorderLayout.WEST); compositeCommunicationTree.setLayout(new BorderLayout(0, 0)); shimCommunicationTreeViewer = new ShimCommunicationTreeViewer(compositeCommunicationTree); shimCommunicationTreeViewer.setAutoExpandLevel(2); treeCommunicationSet = shimCommunicationTreeViewer.getTree(); treeCommunicationSet.setLinesVisible(true); treeCommunicationSet.setHeaderVisible(true); { TreeViewerColumn treeViewerColumn = new TreeViewerColumn(shimCommunicationTreeViewer, SWT.NONE); TreeColumn trclmnCommunicationset = treeViewerColumn.getColumn(); trclmnCommunicationset.setWidth(304); trclmnCommunicationset.setText("CommunicationSet"); } shimCommunicationTreeViewer.setLabelProvider(new CommunicationSetTreeLabelProvider()); shimCommunicationTreeViewer.setContentProvider(new CommunicationSetTreeItemProvider()); TreeViewerColumnResizeListener.addTreeViewerColumnResizeListener(treeCommunicationSet, new int[] { 304 }); compositeStackCommunications = new Composite(composite_Communications, SWT.NONE); // creates InputPanels for each element compositeStackCommunications.setLayout(new StackLayout()); { inputPanelCommunicationSet = new CommunicationSetInputPanel(compositeStackCommunications, SWT.NONE); inputPanelSharedRegisterCommunication = new SharedRegisterCommunicationInputPanel( compositeStackCommunications, SWT.NONE); inputPanelLLSCCommunication = new SharedMemoryCommunicationInputPanel(compositeStackCommunications, SWT.NONE); inputPanelEventCommunication = new EventCommunicationInputPanel(compositeStackCommunications, SWT.NONE); inputPanelFIFOCommunication = new FIFOCommunicationInputPanel(compositeStackCommunications, SWT.NONE); inputPanelInterruptCommunication = new InterruptCommunicationInputPanel(compositeStackCommunications, SWT.NONE); inputPanelConnectionSet = new ConnectionSetInputPanel(compositeStackCommunications, SWT.NONE); inputPanelConnection = new ConnectionInputPanel(compositeStackCommunications, SWT.NONE); inputPanelPitch = new PitchInputPanel(compositeStackCommunications, SWT.NONE); inputPanelLatency = new LatencyInputPanel(compositeStackCommunications, SWT.NONE); inputPanelPerformance = new PerformanceInputPanel(compositeStackCommunications, SWT.NONE); } SelectionListener selectionListener = new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetDefaultSelected(SelectionEvent event) { // NOOP } /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent event) { TreeItem item = (TreeItem) event.item; communicationSelectedItem = item; log.finest("TreeViewer:CommunicationSet " + item.getText() + " selected"); InputPanelBase inputPanel = null; Object selectedObject = item.getData(); if (selectedObject instanceof CommunicationSet) { inputPanel = inputPanelCommunicationSet; } else if (selectedObject instanceof EventCommunication) { inputPanel = inputPanelEventCommunication; } else if (selectedObject instanceof SharedRegisterCommunication) { inputPanel = inputPanelSharedRegisterCommunication; } else if (selectedObject instanceof SharedMemoryCommunication) { inputPanel = inputPanelLLSCCommunication; } else if (selectedObject instanceof FIFOCommunication) { inputPanel = inputPanelFIFOCommunication; } else if (selectedObject instanceof InterruptCommunication) { inputPanel = inputPanelInterruptCommunication; } else if (selectedObject instanceof ConnectionSet) { inputPanel = inputPanelConnectionSet; } else if (selectedObject instanceof Connection) { inputPanel = inputPanelConnection; } else if (selectedObject instanceof Pitch) { inputPanel = inputPanelPitch; } else if (selectedObject instanceof Latency) { inputPanel = inputPanelLatency; } else if (selectedObject instanceof Performance) { inputPanel = inputPanelPerformance; } currentCommunicationsPanel = inputPanel; changeInputPanel(item, inputPanel, compositeStackCommunications, shimCommunicationTreeViewer); } }; treeCommunicationSet.addSelectionListener(selectionListener); }
From source file:org.netxms.ui.eclipse.objectview.objecttabs.ComponentsTab.java
License:Open Source License
/** * @param name/* w w w .ja v a 2 s.co m*/ */ private void addColumn(String name, int width) { TreeViewerColumn tc = new TreeViewerColumn(viewer, SWT.LEFT); tc.getColumn().setText(name); tc.getColumn().setWidth(width); }
From source file:org.nfc.eclipse.plugin.NdefEditorPart.java
License:Open Source License
@Override public void createPartControl(Composite composite) { composite.setLayout(new FillLayout()); composite.setBackground(new Color(composite.getDisplay(), 0xFF, 0xFF, 0xFF)); form = new SashForm(composite, SWT.HORIZONTAL); form.setLayout(new FillLayout()); Composite wrapper = new Composite(form, SWT.NONE); wrapper.setLayout(new FillLayout()); treeViewer = new TreeViewer(wrapper, SWT.BORDER | SWT.FULL_SELECTION); treeViewer.getTree().setLinesVisible(true); treeViewer.getTree().setHeaderVisible(true); ColumnViewerToolTipSupport.enableFor(treeViewer); TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer, new FocusCellOwnerDrawHighlighter(treeViewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(treeViewer) { @Override/*from w w w .j a v a2s . c om*/ protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(treeViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); TreeViewerColumn column = new TreeViewerColumn(treeViewer, 0, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Record"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return element.toString(); } // add tooltip here }); column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Value"); column.setLabelProvider(new NdefRecordModelValueColumnLabelProvider()); column.setEditingSupport( new NdefRecordModelEditingSupport(treeViewer, this, operator.getNdefRecordFactory())); column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(50); column.getColumn().setMoveable(true); column.getColumn().setText("Size"); column.getColumn().setAlignment(SWT.CENTER); column.setLabelProvider(new NdefRecordModelSizeColumnLabelProvider()); // http://blog.eclipse-tips.com/2008/05/single-column-tableviewer-and.html column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setMoveable(true); column.getColumn().setResizable(false); column.getColumn().setText("Hint"); column.getColumn().setAlignment(SWT.LEFT); column.setLabelProvider(new NdefRecordModelHintColumnProvider()); column.getColumn().pack(); treeViewer.setContentProvider(new NdefRecordModelContentProvider()); treeViewer.setInput(operator.getModel()); new NdefRecordModelMenuListener(treeViewer, this, ndefMultiPageEditor, operator.getModel()); treeViewer.expandAll(); // we want the last column to 'fill' with the layout // trigger at key points: // first show composite.getDisplay().asyncExec(new Runnable() { public void run() { packAndFillLastColumn(); } }); // resize treeViewer.getTree().addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { packAndFillLastColumn(); } }); // manual resizing of columns Tree tree = treeViewer.getTree(); for (int i = 0; i < tree.getColumnCount() - 1; i++) { tree.getColumn(i).addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { packAndFillLastColumn(); } }); } // drag and drop Transfer[] types = new Transfer[] { LocalSelectionTransfer.getTransfer() }; int operations = DND.DROP_MOVE; treeViewer.addDragSupport(operations, types, new DragSourceListener() { @Override public void dragFinished(DragSourceEvent event) { // end drag } @Override public void dragSetData(DragSourceEvent event) { // do nothing for LocalSelectionTransfer } @Override public void dragStart(DragSourceEvent event) { int column = NdefEditorPart.this.getColumn(event.x); if (column == 0) { TreeSelection selection = (TreeSelection) treeViewer.getSelection(); Object node = selection.getFirstElement(); if (node instanceof NdefRecordModelRecord) { event.doit = true; NdefRecordModelRecord ndefRecordModelRecord = (NdefRecordModelRecord) node; if (ndefRecordModelRecord.getLevel() == 1) { Activator.info( "Start drag for " + ndefRecordModelRecord.getRecord().getClass().getSimpleName() + " at level " + ndefRecordModelRecord.getLevel()); event.data = node; event.doit = true; } else { Activator.info("Do not start drag for level " + ndefRecordModelRecord.getLevel()); event.doit = false; } } else { Activator.info("Do not start drag"); event.doit = false; } } else { Activator.info("Do not start drag for column " + column); event.doit = false; } } }); treeViewer.addDropSupport(operations, types, new TreeDropTargetEffect(treeViewer.getTree()) { /** * * Check out what kind of (visual) insert feedback to give user in GUI while dragging: insert before or after. * */ @Override public void dragOver(DropTargetEvent event) { Widget item = event.item; if (item instanceof TreeItem) { TreeItem treeItem = (TreeItem) item; NdefRecordModelNode node = (NdefRecordModelNode) treeItem.getData(); if (node instanceof NdefRecordModelRecord) { if (node.getLevel() == 1) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; Point pt = event.display.map(null, treeViewer.getControl(), event.x, event.y); Rectangle bounds = treeItem.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_BEFORE; } else if (pt.y > bounds.y + 2 * bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_AFTER; } else { // event.feedback |= DND.FEEDBACK_SELECT; } } else { // ignore node } } else { // ignore node } } else if (item != null) { // ignore item } else if (item == null) { // ignore null item } super.dragOver(event); } public void drop(DropTargetEvent event) { Activator.info("Drop " + event.getSource() + " " + event.item); Widget item = event.item; if (item instanceof TreeItem) { TreeItem treeItem = (TreeItem) item; NdefRecordModelNode node = (NdefRecordModelNode) treeItem.getData(); if (node instanceof NdefRecordModelRecord) { if (node.getLevel() == 1) { TreeSelection selection = (TreeSelection) treeViewer.getSelection(); NdefRecordModelRecord source = (NdefRecordModelRecord) selection.getFirstElement(); if (source.getLevel() != 1) { return; } Point pt = event.display.map(null, treeViewer.getControl(), event.x, event.y); Rectangle bounds = treeItem.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { Activator.info("Drop " + source + " before " + node); operator.move(source, node.getParent(), node.getParentIndex()); modified(true); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { Activator.info("Drop " + source + " after " + node); operator.move(source, node.getParent(), node.getParentIndex() + 1); modified(true); } else { // event.feedback |= DND.FEEDBACK_SELECT; } } else { Activator.info("Ignore drop node " + node.getClass().getSimpleName() + " at level " + node.getLevel()); } } else { Activator.info("Ignore drop node " + node.getClass().getSimpleName()); } } else if (item != null) { Activator.info("Ignore drop item " + item.getClass().getSimpleName() + " " + item.getData()); } else if (item == null) { // ignore null item } } }); }
From source file:org.obeonetwork.dsl.uml2.profile.design.profiletodsl.MappingsSelectionPage.java
License:Open Source License
/** * {@inheritDoc}//from w w w . ja v a2 s . com */ public void createControl(Composite parent) { profileToDSLWizard = (ProfileToDSLWizard) this.getWizard(); Composite container = new Composite(parent, SWT.NULL); container.setLayout(new GridLayout()); // Messages for guidance. GridData dataFillHorizontal = new GridData(GridData.FILL_HORIZONTAL); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; container.setLayout(gridLayout); Label label1 = new Label(container, SWT.NONE); label1.setText("Select the mappings to be used in the VSM of the DSL."); Label line = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL); line.setLayoutData(dataFillHorizontal); containerCheckedTreeViewer = new ContainerCheckedTreeViewer(container, SWT.BORDER); containerCheckedTreeViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { dslEAnnotation.setVSMMappingSelection(event.getElement(), String.valueOf(event.getChecked())); if (event.getSource() instanceof ContainerCheckedTreeViewer) { dslEAnnotation.setVSMMappingSelectionToFalse( ((ContainerCheckedTreeViewer) event.getSource()).getInput()); dslEAnnotation.setVSMMappingSelectionToTrue( ((ContainerCheckedTreeViewer) event.getSource()).getCheckedElements()); } refreshPages(); } }); containerCheckedTreeViewer.setContentProvider(new MyTreeContentProvider()); containerCheckedTreeViewer.getTree().setVisible(true); TreeViewerColumn umlElmentColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); umlElmentColumn.getColumn().setText("UML Element"); umlElmentColumn.setLabelProvider(new EcoreElementLabelProvider()); umlElmentColumn.getColumn().setWidth(300); TreeViewerColumn mappingNameColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); mappingNameColumn.getColumn().setText("Mapping Name"); mappingNameColumn.setLabelProvider(new MappingNameLabelProvider()); mappingNameColumn.getColumn().setWidth(200); TreeViewerColumn mappingTypeColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); mappingTypeColumn.getColumn().setText("Mapping Type"); mappingTypeColumn.setLabelProvider(new MappingTypeLabelProvider()); mappingTypeColumn.getColumn().setWidth(100); containerCheckedTreeViewer.setUseHashlookup(true); containerCheckedTreeViewer.getTree().setHeaderVisible(true); containerCheckedTreeViewer.getTree().setLinesVisible(true); Composite expandCollapseContainer = new Composite(container, SWT.NULL); expandCollapseContainer.setLayout(new RowLayout()); Button checkAll = new Button(expandCollapseContainer, SWT.NONE); checkAll.setText(" v "); checkAll.setToolTipText("Check All"); checkAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setAllChecked(containerCheckedTreeViewer, true); refreshPages(); } }); Button unCheckAll = new Button(expandCollapseContainer, SWT.NONE); unCheckAll.setText(" "); unCheckAll.setToolTipText("Uncheck All"); unCheckAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setAllChecked(containerCheckedTreeViewer, false); refreshPages(); } }); Button collapseAll = new Button(expandCollapseContainer, SWT.NONE); collapseAll.setText(" - "); collapseAll.setToolTipText("Collapse All"); collapseAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { containerCheckedTreeViewer.collapseAll(); } }); Button expandAll = new Button(expandCollapseContainer, SWT.NONE); expandAll.setText("+"); expandAll.setToolTipText("Expand All"); expandAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { containerCheckedTreeViewer.expandAll(); } }); /************************** Edit *****************************/ // To trigger editing in Tree cells on double click, we need to create TreeViewerEditor. TreeViewerEditor.create(containerCheckedTreeViewer, new ColumnViewerEditorActivationStrategy(containerCheckedTreeViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION; } }, ColumnViewerEditor.DEFAULT); final TextCellEditor cellEditor = new MyTextCellEditor(containerCheckedTreeViewer.getTree()); mappingNameColumn.setEditingSupport(new NameEditingSupport(containerCheckedTreeViewer, cellEditor)); mappingTypeColumn.setEditingSupport(new ComboBoxEditingSupport(containerCheckedTreeViewer)); /************************** Edit *****************************/ containerCheckedTreeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); setControl(container); }
From source file:org.obeonetwork.dsl.uml2.profile.design.profiletodsl.MetaClassesSelectionPage.java
License:Open Source License
/** * {@inheritDoc}//w w w.j ava2 s. c o m */ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); container.setLayout(new GridLayout()); // Messages for guidance. GridData dataFillHorizontal = new GridData(GridData.FILL_HORIZONTAL); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 1; container.setLayout(gridLayout); Label label1 = new Label(container, SWT.NONE); label1.setText("Select the meta-classes to be kept in the DSL meta-model."); Label line = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL); line.setLayoutData(dataFillHorizontal); containerCheckedTreeViewer = new ContainerCheckedTreeViewer(container, SWT.BORDER); containerCheckedTreeViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { dslEAnnotation.setDslFactoryeAnnotation(event.getElement(), String.valueOf(event.getChecked())); if (event.getSource() instanceof ContainerCheckedTreeViewer) { dslEAnnotation.setDslFactoryeAnnotationToFalse( ((ContainerCheckedTreeViewer) event.getSource()).getInput()); dslEAnnotation.setDslFactoryeAnnotationToTrue( ((ContainerCheckedTreeViewer) event.getSource()).getCheckedElements()); } refreshPages(); } }); containerCheckedTreeViewer.setContentProvider(new MyTreeContentProvider()); containerCheckedTreeViewer.getTree().setVisible(true); TreeViewerColumn umlElmentColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); umlElmentColumn.getColumn().setText("UML Element"); umlElmentColumn.setLabelProvider(new EcoreElementLabelProvider()); umlElmentColumn.getColumn().setWidth(300); TreeViewerColumn nameColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); nameColumn.getColumn().setText("Name"); nameColumn.setLabelProvider(new EcoreElementNameLabelProvider()); nameColumn.getColumn().setWidth(200); TreeViewerColumn lowerBoundColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); lowerBoundColumn.getColumn().setText("Lower Bound"); lowerBoundColumn.setLabelProvider(new EAttributeLowerBoundLabelProvider()); lowerBoundColumn.getColumn().setWidth(90); TreeViewerColumn upperBoundColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); upperBoundColumn.getColumn().setText("Upper Bound"); upperBoundColumn.setLabelProvider(new EAttributeUpperBoundLabelProvider()); upperBoundColumn.getColumn().setWidth(90); TreeViewerColumn typeColumn = new TreeViewerColumn(containerCheckedTreeViewer, SWT.LEFT); typeColumn.getColumn().setText("Type"); typeColumn.setLabelProvider(new TypeLabelProvider()); typeColumn.getColumn().setWidth(100); containerCheckedTreeViewer.setUseHashlookup(true); containerCheckedTreeViewer.getTree().setHeaderVisible(true); containerCheckedTreeViewer.getTree().setLinesVisible(true); Composite expandCollapseContainer = new Composite(container, SWT.NULL); expandCollapseContainer.setLayout(new RowLayout()); Button checkAll = new Button(expandCollapseContainer, SWT.NONE); checkAll.setText(" v "); checkAll.setToolTipText("Check All"); checkAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setAllChecked(containerCheckedTreeViewer, true); } }); Button unCheckAll = new Button(expandCollapseContainer, SWT.NONE); unCheckAll.setText(" "); unCheckAll.setToolTipText("Uncheck All"); unCheckAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setAllChecked(containerCheckedTreeViewer, false); } }); Button collapseAll = new Button(expandCollapseContainer, SWT.NONE); collapseAll.setText(" - "); collapseAll.setToolTipText("Collapse All"); collapseAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { containerCheckedTreeViewer.collapseAll(); } }); Button expandAll = new Button(expandCollapseContainer, SWT.NONE); expandAll.setText("+"); expandAll.setToolTipText("Expand All"); expandAll.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { containerCheckedTreeViewer.expandAll(); } }); Button recommendedElements = new Button(expandCollapseContainer, SWT.NONE); recommendedElements.setText("&Recommended Elements"); recommendedElements.setToolTipText("Check Recommended Elements"); recommendedElements.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { checkRecommendedElements(containerCheckedTreeViewer); } }); /************************** Edit *****************************/ // To trigger editing in Tree cells on double click, we need to create TreeViewerEditor. TreeViewerEditor.create(containerCheckedTreeViewer, new ColumnViewerEditorActivationStrategy(containerCheckedTreeViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION; } }, ColumnViewerEditor.DEFAULT); final TextCellEditor cellEditor = new MyTextCellEditor(containerCheckedTreeViewer.getTree()); nameColumn.setEditingSupport(new NameEditingSupport(containerCheckedTreeViewer, cellEditor)); upperBoundColumn .setEditingSupport(new BoundEditingSupport(containerCheckedTreeViewer, cellEditor, "upper")); lowerBoundColumn .setEditingSupport(new BoundEditingSupport(containerCheckedTreeViewer, cellEditor, "lower")); typeColumn.setEditingSupport(new ComboBoxEditingSupport(containerCheckedTreeViewer)); /************************** Edit *****************************/ containerCheckedTreeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); setControl(container); }
From source file:org.objectstyle.wolips.eomodeler.outline.EOModelContentOutlinePage.java
License:Open Source License
public void createControl(Composite parent) { super.createControl(parent); TreeViewer treeViewer = getTreeViewer(); //TreeColumnLayout outlineTreeLayout = new TreeColumnLayout(); //_treeComposite.setLayout(outlineTreeLayout); final TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE); column.setLabelProvider(new EOModelOutlineColumnLabelProvider(treeViewer)); column.setEditingSupport(new EOModelOutlineEditingSupport(treeViewer)); column.getColumn().setWidth(400); //outlineTreeLayout.setColumnData(column.getColumn(), new ColumnWeightData(100, true)); ColumnViewerEditorActivationStrategy strategy = new ColumnViewerEditorActivationStrategy(treeViewer) { @Override/* w ww . j a va2 s .com*/ protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION; } }; TreeViewerEditor.create(treeViewer, null, strategy, ColumnViewerEditor.DEFAULT); /* parent.addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { super.controlResized(e); Composite widget = (Composite)e.getSource(); column.getColumn().setWidth(widget.getSize().x); System.out.println(".controlResized: " + widget.getSize()); } }); */ if (_updater != null) { _updater.dispose(); } _updater = new EOModelTreeViewUpdater(treeViewer, new EOModelOutlineContentProvider(true, true, true, true, true, true, true, true)); _updater.setModel(_editor.getModel()); updateClipboardHandler(); // AK: commenting prevents an error in swt // setFocus(); IActionBars actionBars = getSite().getActionBars(); IToolBarManager toolBarManager = actionBars.getToolBarManager(); _toggleNonClassPropertiesAction = new ToggleNonClassPropertiesAction(); toolBarManager.add(_toggleNonClassPropertiesAction); _toggleModelGroupAction = new ToggleModelGroupAction(); toolBarManager.add(_toggleModelGroupAction); MenuManager menuManager = new MenuManager(); menuManager.setRemoveAllWhenShown(true); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager m) { m.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); } }); Tree tree = treeViewer.getTree(); _contextMenu = menuManager.createContextMenu(treeViewer.getTree()); tree.setMenu(_contextMenu); getSite().registerContextMenu("org.objectstyle.wolips.eomodeler.outline", menuManager, treeViewer); if (_editor.getModel() == null) { treeViewer.setInput(new EOModelLoading(null)); treeViewer.expandAll(); } }
From source file:org.openehealth.ipf.tools.manager.connection.ui.view.ConnectionView.java
License:Apache License
@Override public void createPartControl(Composite parent) { Activator.getDefault().info("Creating the connection editor"); IJMXConnectionManager jMXConnectionManager = Activator.getDefault().getJMXConnectionManager(); viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); drillDownAdapter = new DrillDownAdapter(viewer); // handle the content provider contentProvider = new JMXContentProvider(this.getViewSite(), jMXConnectionManager); viewer.setContentProvider(contentProvider); viewer.setUseHashlookup(true);/*from w ww . ja v a 2 s . c o m*/ viewer.getTree().setLinesVisible(true); viewer.getTree().setHeaderVisible(true); TreeViewerColumn tc0 = new TreeViewerColumn(viewer, SWT.CENTER); TreeViewerColumn tc1 = new TreeViewerColumn(viewer, SWT.CENTER); TreeViewerColumn tc2 = new TreeViewerColumn(viewer, SWT.CENTER); tc0.getColumn().setText(Messages.getLabelString("connection.name")); tc0.setLabelProvider(new JMXConnectionLabelProvider(0)); tc0.getColumn().setWidth(140); tc1.getColumn().setText(Messages.getLabelString("connection.host")); tc1.setLabelProvider(new JMXConnectionLabelProvider(1)); tc1.getColumn().setWidth(100); tc2.getColumn().setText(Messages.getLabelString("connection.port")); tc2.setLabelProvider(new JMXConnectionLabelProvider(2)); tc2.getColumn().setWidth(60); new TreeColumnViewerSorter(viewer, tc0) { @Override protected int doCompare(Viewer viewer, Object e1, Object e2) { IAdaptable adapter1 = (IAdaptable) e1; IAdaptable adapter2 = (IAdaptable) e2; IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1 .getAdapter(IConnectionConfiguration.class); IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2 .getAdapter(IConnectionConfiguration.class); return info1.getName().compareTo(info2.getName()); } }; new TreeColumnViewerSorter(viewer, tc1) { @Override protected int doCompare(Viewer viewer, Object e1, Object e2) { IAdaptable adapter1 = (IAdaptable) e1; IAdaptable adapter2 = (IAdaptable) e2; IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1 .getAdapter(IConnectionConfiguration.class); IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2 .getAdapter(IConnectionConfiguration.class); return info1.getHost().compareTo(info2.getHost()); } }; new TreeColumnViewerSorter(viewer, tc2) { @Override protected int doCompare(Viewer viewer, Object e1, Object e2) { IAdaptable adapter1 = (IAdaptable) e1; IAdaptable adapter2 = (IAdaptable) e2; IConnectionConfiguration info1 = (IConnectionConfiguration) adapter1 .getAdapter(IConnectionConfiguration.class); IConnectionConfiguration info2 = (IConnectionConfiguration) adapter2 .getAdapter(IConnectionConfiguration.class); return new Integer(info1.getPort()).compareTo(new Integer(info2.getPort())); } }; viewer.setInput(getViewSite()); viewer.getTree().addMouseListener(this); this.getSite().setSelectionProvider(viewer); viewer.addSelectionChangedListener(this); // add a popup menu createContextMenu(viewer); jMXConnectionManager.addObserver(this); }