List of usage examples for org.eclipse.jface.viewers TreeViewerEditor create
public static void create(TreeViewer viewer, ColumnViewerEditorActivationStrategy editorActivationStrategy, int feature)
From source file:au.gov.ga.earthsci.application.parts.layer.LayerTreePart.java
License:Apache License
@PostConstruct public void init(Composite parent, EMenuService menuService) { LayerOpacityToolControl.setPartContext(context); viewer = new CheckboxTreeViewer(parent, SWT.MULTI); viewer.getTree().setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT)); context.set(TreeViewer.class, viewer); clipboard = new Clipboard(shell.getDisplay()); context.set(Clipboard.class, clipboard); IListProperty childrenProperty = new MultiListProperty( new IListProperty[] { BeanProperties.list("children") }); //$NON-NLS-1$ ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider( childrenProperty.listFactory(), null); viewer.setContentProvider(contentProvider); //TreeViewerEditor.create(viewer, new SecondClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT); IObservableSet knownElements = contentProvider.getKnownElements(); IObservableMap enabledMap = BeanProperties.value("enabled").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap opacityMap = BeanProperties.value("opacity").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap nameMap = BeanProperties.value("name").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap labelMap = BeanProperties.value("label").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap statusMap = BeanProperties.value("status").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap anyChildrenEnabledMap = BeanProperties.value("anyChildrenEnabled") //$NON-NLS-1$ .observeDetail(knownElements); IObservableMap allChildrenEnabledMap = BeanProperties.value("allChildrenEnabled") //$NON-NLS-1$ .observeDetail(knownElements); IObservableMap childrenMap = BeanProperties.value("children").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap expandedMap = BeanProperties.value("expanded").observeDetail(knownElements); //$NON-NLS-1$ IObservableMap[] labelAttributeMaps = new IObservableMap[] { enabledMap, opacityMap, nameMap, labelMap, anyChildrenEnabledMap, allChildrenEnabledMap, statusMap }; labelProvider = new LayerTreeLabelProvider(labelAttributeMaps); viewer.setLabelProvider(labelProvider); viewer.setCheckStateProvider(new LayerTreeCheckStateProvider()); viewer.setInput(model.getRootNode()); viewer.setExpandedElements(getExpandedNodes()); IMapChangeListener childrenListener = new IMapChangeListener() { @Override/*from w ww .j av a2 s . com*/ public void handleMapChange(MapChangeEvent event) { //for any children added, expand the nodes Set<?> addedKeys = event.diff.getAddedKeys(); for (Object o : addedKeys) { if (o instanceof ILayerTreeNode) { ((ILayerTreeNode) o).getParent().getValue().setExpanded(true); } } } }; IMapChangeListener expandedListener = new IMapChangeListener() { @Override public void handleMapChange(MapChangeEvent event) { //ensure the expanded elements are kept in sync with the model viewer.getTree().getDisplay().asyncExec(new Runnable() { @Override public void run() { if (!viewer.getTree().isDisposed()) { viewer.setExpandedElements(getExpandedNodes()); } } }); } }; childrenMap.addMapChangeListener(childrenListener); childrenMap.addMapChangeListener(expandedListener); expandedMap.addMapChangeListener(expandedListener); viewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { Object element = event.getElement(); if (element instanceof ILayerTreeNode) { ILayerTreeNode node = (ILayerTreeNode) element; node.enableChildren(event.getChecked()); } } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); List<?> list = selection.toList(); ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]); selectionService.setSelection(array.length == 1 ? array[0] : array); } }); viewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(true); } @Override public void treeCollapsed(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(false); } }); viewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDoubleClick(MouseEvent e) { ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); if (cell == null) return; ILayerTreeNode layer = (ILayerTreeNode) cell.getElement(); selectLayer(layer); } @Override public void mouseDown(MouseEvent e) { ViewerCell cell = viewer.getCell(new Point(e.x, e.y)); if (cell == null) { viewer.setSelection(StructuredSelection.EMPTY); } } }); viewer.getTree().addTraverseListener(new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_RETURN) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() == 1) { ILayerTreeNode layer = (ILayerTreeNode) selection.getFirstElement(); selectLayer(layer); } } } }); viewer.setCellEditors(new CellEditor[] { new TextCellEditor(viewer.getTree(), SWT.BORDER) }); viewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$ viewer.setCellModifier(new ICellModifier() { @Override public void modify(Object element, String property, Object value) { if (element instanceof Item) { element = ((Item) element).getData(); } ((ILayerTreeNode) element).setLabel((String) value); } @Override public Object getValue(Object element, String property) { if (element instanceof Item) { element = ((Item) element).getData(); } return ((ILayerTreeNode) element).getLabelOrName(); } @Override public boolean canModify(Object element, String property) { return true; } }); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); //add drag and drop support int ops = DND.DROP_COPY | DND.DROP_MOVE; viewer.addDragSupport(ops, new Transfer[] { LayerTransfer.getInstance() }, new LayerTreeDragSourceListener(viewer)); viewer.addDropSupport(ops, new Transfer[] { LayerTransfer.getInstance(), FileTransfer.getInstance() }, new LayerTreeDropAdapter(viewer, model, context)); //add context menu menuService.registerContextMenu(viewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$ }
From source file:au.gov.ga.earthsci.layer.ui.LayerTreePart.java
License:Apache License
protected void createStructureViewer(Composite parent, EMenuService menuService, CTabItem tabItem) { structureViewer = new CheckboxTreeViewer(parent, SWT.MULTI); tabItem.setControl(structureViewer.getControl()); structureViewer.getTree()//from w ww. j av a2 s . c o m .setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT)); context.set(TreeViewer.class, structureViewer); clipboard = new Clipboard(parent.getDisplay()); context.set(Clipboard.class, clipboard); //create a property change listener for updating the labels whenever a property //changes on an ILayerTreeNode instance final PropertyChangeListener anyChangeListener = new PropertyChangeListener() { @Override public void propertyChange(final PropertyChangeEvent evt) { updateElementLabel(evt.getSource()); } }; //create a property change listener that ensures the expanded state of the tree //is kept in sync with the value of the expanded property for each node final PropertyChangeListener expandedChangeListener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { syncExpandedNodes(); } }; //setup the label provider labelProvider = new LayerTreeLabelProvider(); //create a bean list property associated with ILayerTreeNode's children property IBeanListProperty<ILayerTreeNode, ILayerTreeNode> childrenProperty = BeanProperties .list(ILayerTreeNode.class, "children", ILayerTreeNode.class); //$NON-NLS-1$ //setup a factory for creating observables observing ILayerTreeNodes IObservableFactory<ILayerTreeNode, IObservableList<ILayerTreeNode>> observableFactory = childrenProperty .listFactory(); //listen for any changes (additions/removals) to any of the children in the tree observableListTreeSupport = new ObservableListTreeSupport<ILayerTreeNode>(observableFactory); observableListTreeSupport.addListener(new ITreeChangeListener<ILayerTreeNode>() { @Override public void elementAdded(ILayerTreeNode element) { element.addPropertyChangeListener(anyChangeListener); element.addPropertyChangeListener("expanded", expandedChangeListener); //$NON-NLS-1$ } @Override public void elementRemoved(ILayerTreeNode element) { element.removePropertyChangeListener(anyChangeListener); element.removePropertyChangeListener("expanded", expandedChangeListener); //$NON-NLS-1$ } }); //create a content provider that listens for changes to any children in the tree ObservableListTreeContentProvider<ILayerTreeNode> contentProvider = new ObservableListTreeContentProvider<ILayerTreeNode>( observableFactory, null); //set the viewer's providers structureViewer.setContentProvider(contentProvider); structureViewer.setLabelProvider(labelProvider); structureViewer.setCheckStateProvider(new LayerTreeCheckStateProvider()); //set the viewer and listener inputs structureViewer.setInput(model.getRootNode()); observableListTreeSupport.setInput(model.getRootNode()); //Listen for any additions to the tree, and expand added node's parent, so that //added nodes are always visible. This is done after the input is set up, so that //we don't expand all the nodes that are already in the tree. observableListTreeSupport.addListener(new TreeChangeAdapter<ILayerTreeNode>() { @Override public void elementAdded(ILayerTreeNode element) { //for any children added, expand the nodes if (!element.isRoot()) { element.getParent().setExpanded(true); } //if the nodes were already expanded, the expanded property change event //is not fired, so we need to sync the expanded state anyway syncExpandedNodes(); //when a layer is added, we should activate this part and select the added element activateAndSelectElement(element); } }); //expand any nodes that should be expanded after unpersisting syncExpandedNodes(); //enable/disable any nodes that are checked/unchecked structureViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { Object element = event.getElement(); if (element instanceof ILayerTreeNode) { ILayerTreeNode node = (ILayerTreeNode) element; node.enableChildren(event.getChecked()); } } }); //setup the selection tracking structureViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) structureViewer.getSelection(); List<?> list = selection.toList(); ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]); settingSelection = true; selectionService.setSelection(array.length == 1 ? array[0] : array); settingSelection = false; } }); structureViewer.getTree().addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) structureViewer.getSelection(); ILayerTreeNode firstElement = (ILayerTreeNode) selection.getFirstElement(); if (firstElement != null) { selectLayer(firstElement); } } }); //setup tree expansion/collapse listening structureViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(true); } @Override public void treeCollapsed(TreeExpansionEvent event) { ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement(); layerNode.setExpanded(false); } }); //make tree cells unselectable by selecting outside structureViewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { ViewerCell cell = structureViewer.getCell(new Point(e.x, e.y)); if (cell == null) { structureViewer.setSelection(StructuredSelection.EMPTY); } } }); //setup cell editing structureViewer .setCellEditors(new CellEditor[] { new TextCellEditor(structureViewer.getTree(), SWT.BORDER) }); structureViewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$ structureViewer.setCellModifier(new ICellModifier() { @Override public void modify(Object element, String property, Object value) { if (element instanceof Item) { element = ((Item) element).getData(); } ((ILayerTreeNode) element).setLabel((String) value); } @Override public Object getValue(Object element, String property) { if (element instanceof Item) { element = ((Item) element).getData(); } return ((ILayerTreeNode) element).getLabelOrName(); } @Override public boolean canModify(Object element, String property) { return true; } }); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( structureViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(structureViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); //add drag and drop support int ops = DND.DROP_COPY | DND.DROP_MOVE; structureViewer.addDragSupport(ops, new Transfer[] { LocalLayerTransfer.getInstance(), LayerTransfer.getInstance() }, new LayerTreeDragSourceListener(structureViewer)); structureViewer .addDropSupport(ops, new Transfer[] { LocalLayerTransfer.getInstance(), LayerTransfer.getInstance(), FileTransfer.getInstance() }, new LayerTreeDropAdapter(structureViewer, model, context)); //add context menu menuService.registerContextMenu(structureViewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$ }
From source file:com.nokia.carbide.remoteconnections.view.ConnectionsView.java
License:Open Source License
public void createPartControl(Composite parent) { viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL); TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT); nameColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new NameLabelProvider())); nameColumn.getColumn().setText(Messages.getString("ConnectionsView.NameColumnHeader")); //$NON-NLS-1$ nameColumn.setEditingSupport(new NameEditingSupport(nameColumn.getViewer())); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( nameColumn.getViewer()) {// w w w . j a v a2 s . com @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.DEFAULT); boldViewerFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT); TreeViewerColumn typeColumn = new TreeViewerColumn(viewer, SWT.LEFT); typeColumn.setLabelProvider(new TypeLabelProvider()); typeColumn.getColumn().setText(Messages.getString("ConnectionsView.TypeColumnHeader")); //$NON-NLS-1$ TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT); statusColumn.setLabelProvider(new StatusLabelProvider()); statusColumn.getColumn().setText(Messages.getString("ConnectionsView.StatusColumnHeader")); //$NON-NLS-1$ TreeViewerColumn descriptionColumn = new TreeViewerColumn(viewer, SWT.LEFT); descriptionColumn.setLabelProvider(new DescriptionLabelProvider(this, descriptionColumn)); descriptionColumn.getColumn().setText(Messages.getString("ConnectionsView.DescriptionColumnHeader")); //$NON-NLS-1$ viewer.setContentProvider(new TreeNodeContentProvider()); viewer.setInput(loadConnections()); viewer.expandAll(); viewer.getTree().setHeaderVisible(true); viewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$ viewer.setSorter(new ViewerSorter() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return getNodeDisplayName(e1).compareToIgnoreCase(getNodeDisplayName(e2)); } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { enableConnectionSelectedActions(false); enableServiceSelectedActions(false); ISelection selection = event.getSelection(); if (!selection.isEmpty()) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement(); Object value = treeNode.getValue(); if (value instanceof IConnection) { enableConnectionSelectedActions(true); } else if (value instanceof IConnectedService) { enableServiceSelectedActions(true); } } } }); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { ISelection selection = event.getSelection(); if (!selection.isEmpty()) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement(); Object value = treeNode.getValue(); if (value instanceof IConnection) { SettingsWizard wizard = new SettingsWizard((IConnection) value); wizard.open(getViewSite().getShell()); } else if (value instanceof IConnectedService) { if (RemoteConnectionsActivator.getDefault().getShouldTestServices()) { IConnectedService connectedService = (IConnectedService) value; connectedService.setEnabled(true); connectedService.testStatus(); ((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel(); } } } } }); packColumns(); makeActions(); hookContextMenu(); contributeToActionBars(); hookAccelerators(); connectionStoreChangedListener = new IConnectionsManagerListener() { public void connectionStoreChanged() { Display.getDefault().asyncExec(new Runnable() { public void run() { viewer.setInput(loadConnections()); viewer.expandAll(); packColumns(); if (viewer.getSelection().isEmpty() && viewer.getTree().getItemCount() > 0) { TreeItem item = viewer.getTree().getItem(0); if (item != null) { viewer.getTree().select(item); } } viewer.setSelection(viewer.getSelection()); // force selection changed } }); } public void displayChanged() { refreshViewer(); } }; Registry.instance().addConnectionStoreChangedListener(connectionStoreChangedListener); connectionListener = new IConnectionListener() { public void currentConnectionSet(IConnection connection) { refreshViewer(); } public void connectionRemoved(IConnection connection) { // presumably the viewer itself handles this... } public void connectionAdded(IConnection connection) { // presumably the viewer itself handles this... } }; Registry.instance().addConnectionListener(connectionListener); RemoteConnectionsActivator.setHelp(parent, ".connections_view"); //$NON-NLS-1$ }
From source file:eu.scasefp7.eclipse.servicecomposition.views.ServiceCompositionView.java
public void updateRightComposite(edu.uci.ics.jung.graph.Graph jungGraph) { final Display display = Display.getCurrent(); final Graph graph = viewer.getGraphControl(); if (sc != null) { sc.dispose();//www . j av a 2 s . com } // Create the ScrolledComposite to scroll horizontally and vertically sc = new ScrolledComposite(sashForm, SWT.H_SCROLL | SWT.V_SCROLL); sc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); rightComposite.dispose(); rightComposite = new Composite(sc, SWT.FILL); sc.setContent(rightComposite); sc.setExpandHorizontal(true); sc.setExpandVertical(true); sc.setMinSize(300, 600); // runWorkflowAction.setEnabled(false); Listener inputListener = new Listener() { @Override public void handleEvent(Event event) { TreeItem treeItem = (TreeItem) event.item; final TreeColumn[] treeColumns = treeItem.getParent().getColumns(); // final Display display = Display.getCurrent(); display.asyncExec(new Runnable() { @Override public void run() { for (TreeColumn treeColumn : treeColumns) { treeColumn.pack(); } } }); } }; // create inputs composite rightComposite.setLayout(new GridLayout()); Composite inputsLabelComposite = new Composite(rightComposite, SWT.FILL); inputsLabelComposite.setLayout(new GridLayout(1, false)); Label label1 = new Label(inputsLabelComposite, SWT.NONE); label1.setText("Workflow Inputs:"); label1.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label1.setFont(JFaceResources.getFontRegistry().getBold("")); inputsComposite = new Tree(rightComposite, SWT.BORDER | SWT.FILL | SWT.MULTI); inputsComposite.setLayout(new GridLayout(2, false)); inputsTreeViewer = new TreeViewer(inputsComposite); TreeViewerEditor.create(inputsTreeViewer, new ColumnViewerEditorActivationStrategy(inputsTreeViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION; } }, ColumnViewerEditor.TABBING_HORIZONTAL); columna = new TreeViewerColumn(inputsTreeViewer, SWT.NONE); columna.getColumn().setWidth(200); columna.getColumn().setText("Columna"); columna.getColumn().setResizable(true); columnb = new TreeViewerColumn(inputsTreeViewer, SWT.NONE); columnb.getColumn().setText("Columnb"); columnb.getColumn().setWidth(300); columnb.getColumn().setResizable(true); Vector<Node> InputNodes = new Vector<Node>(); // get matched io Object[] vertices1 = (Object[]) jungGraph.getVertices().toArray(); ArrayList<OwlService> matchedNodes = new ArrayList<OwlService>(); for (int i = 0; i < vertices1.length; i++) { final OwlService node = (OwlService) vertices1[i]; if (node.getisMatchedIO()) { matchedNodes.add(node); } } // get all inputs Object[] vertices = (Object[]) jungGraph.getVertices().toArray(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action")) { Node n = new Node(node.getName().toString(), null, node, null); Collection<OwlService> predecessors = (Collection<OwlService>) jungGraph.getPredecessors(node); for (OwlService predecessor : predecessors) { if (predecessor.getType().contains("Property")) { showInputs(predecessor, n, InputNodes, jungGraph, matchedNodes); } } InputNodes.add(n); } } inputsComposite.setSize(300, 200); inputsTreeViewer.setContentProvider(new MyTreeContentProvider()); columna.setLabelProvider(new MyLabelProvider()); columnb.setLabelProvider(createColumnLabelProvider()); final TextCellEditor cellEditor = new MyTextCellEditor(inputsTreeViewer.getTree()); columnb.setEditingSupport(new EditingSupport(inputsTreeViewer) { @Override protected void setValue(Object element, Object value) { if (((Node) element).getOwlService().getArgument() != null && ((Node) element).getOwlService().getArgument().getSubtypes().isEmpty()) ((Node) element).setValue(value.toString()); getViewer().update(element, null); } @Override protected Object getValue(Object element) { return ((Node) element).getValue(); } @Override protected TextCellEditor getCellEditor(Object element) { return cellEditor; } @Override protected boolean canEdit(Object element) { if (((Node) element).getOwlService().getArgument() != null && ((Node) element).getOwlService().getArgument().getSubtypes().isEmpty() && !((Node) element).getOwlService().getisMatchedIO()) return true; else return false; } }); inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.expandToLevel(2); final Action a = new Action("Add new element") { public void run() { try { int length = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getSubCategories() .size(); addTreeNode(((Node) ((TreeSelection) inputSelection).getFirstElement()).getOwlService(), ((Node) ((TreeSelection) inputSelection).getFirstElement()), length); // Updating the display in the view // inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.refresh(); } catch (Exception e) { Activator.log("Error while running the workflow", e); e.printStackTrace(); } } }; final Action b = new Action("Remove element") { public void run() { try { Node n = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getParent(); n.getSubCategories().remove(((Node) ((TreeSelection) inputSelection).getFirstElement())); // Updating the display in the view // inputsTreeViewer.setInput(InputNodes); inputsTreeViewer.refresh(); } catch (Exception e) { Activator.log("Error while running the workflow", e); e.printStackTrace(); } } }; final MenuManager mgr = new MenuManager(); mgr.setRemoveAllWhenShown(true); mgr.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(IMenuManager manager) { inputSelection = inputsTreeViewer.getSelection(); Node n = ((Node) ((TreeSelection) inputSelection).getFirstElement()); if (!inputSelection.isEmpty()) { if (n.getOwlService().getArgument() != null && n.getOwlService().getArgument().isArray() && n.getName().toString().replaceAll("[^\\d.]", "").isEmpty()) { boolean notMatched = true; // check if the array of primitive or array of objects // is matched if (n.getSubCategories().get(0).getValue().equals("matched") || (!n.getOwlService().getArgument().getSubtypes().isEmpty() && (n.getOwlService().getArgument().getSubtypes().get(0)).getOwlService() .getisMatchedIO())) { notMatched = false; } if (notMatched) { a.setText("Add new element for " + ((Node) ((TreeSelection) inputSelection).getFirstElement()).getName() .toString()); a.setToolTipText("Right click to add new element"); a.setEnabled(true); mgr.add(a); } } if (n.getOwlService().getArgument() != null && n.getOwlService().getArgument().isArray() && !n.getName().toString().replaceAll("[^\\d.]", "").isEmpty()) { int nodeNum = Integer.parseInt(n.getName().toString().replaceAll("[^\\d.]", "")); Node parent = ((Node) ((TreeSelection) inputSelection).getFirstElement()).getParent(); if (nodeNum == parent.getSubCategories().size() - 1 && nodeNum != 0) { b.setText( "Remove element " + ((Node) ((TreeSelection) inputSelection).getFirstElement()) .getName().toString()); b.setToolTipText("Right click to remove element"); b.setEnabled(true); mgr.add(b); } } } } }); inputsTreeViewer.getControl().setMenu(mgr.createContextMenu(inputsTreeViewer.getControl())); inputsComposite.addListener(SWT.Collapse, inputListener); inputsComposite.addListener(SWT.Expand, inputListener); inputsTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() != null) { for (int i = 0; i < graph.getNodes().size(); i++) { GraphNode graphNode = (GraphNode) graph.getNodes().get(i); if (((OwlService) ((MyNode) graphNode.getData()).getObject()) .equals(((Node) selection.getFirstElement()).getOwlService())) { graphNode.highlight(); } else graphNode.unhighlight(); } } } } }); // create authentication Params composite rightComposite.setLayout(new GridLayout()); Composite authenticationLabelComposite = new Composite(rightComposite, SWT.FILL); authenticationLabelComposite.setLayout(new GridLayout()); Label label4 = new Label(authenticationLabelComposite, SWT.FILL); label4.setText("Workflow Authentication Parameters:"); label4.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label4.setFont(JFaceResources.getFontRegistry().getBold("")); authParamsComposite = new Composite(rightComposite, SWT.FILL); authParamsComposite.setLayout(new GridLayout(2, false)); // get all authParams ArrayList<String> baseURIs = new ArrayList<String>(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action") && node.getOperation().getDomain() != null) { if (node.getOperation().getDomain().getSecurityScheme() != null) { if (node.getOperation().getDomain().getSecurityScheme().equalsIgnoreCase("Basic Authentication") && !baseURIs.contains(node.getOperation().getDomain().getURI())) { showBasicAuthenticationParams(); baseURIs.add(node.getOperation().getDomain().getURI()); } } } } // create authentication Params composite rightComposite.setLayout(new GridLayout()); Composite requestHeaderLabelComposite = new Composite(rightComposite, SWT.FILL); requestHeaderLabelComposite.setLayout(new GridLayout()); Label label5 = new Label(requestHeaderLabelComposite, SWT.FILL); label5.setText("Workflow Request Headers:"); label5.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label5.setFont(JFaceResources.getFontRegistry().getBold("")); requestHeadersComposite = new Composite(rightComposite, SWT.FILL); requestHeadersComposite.setLayout(new GridLayout(2, false)); // get all request headers for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action") && node.getOperation().getRequestHeaders() != null) { for (RequestHeader header : node.getOperation().getRequestHeaders()) { showRequestHeaders(node.getName().toString(), header.getName()); } } } Listener outputListener = new Listener() { @Override public void handleEvent(Event event) { TreeItem treeItem = (TreeItem) event.item; final TreeColumn[] treeColumns = treeItem.getParent().getColumns(); display.asyncExec(new Runnable() { @Override public void run() { for (TreeColumn treeColumn : treeColumns) treeColumn.pack(); } }); } }; // create outputs composite Composite outputsLabelComposite = new Composite(rightComposite, SWT.FILL); outputsLabelComposite.setLayout(new GridLayout(1, false)); Label label2 = new Label(outputsLabelComposite, SWT.NONE); label2.setText("Workflow Outputs:"); label2.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); label2.setFont(JFaceResources.getFontRegistry().getBold("")); outputsComposite = new Tree(rightComposite, SWT.BORDER | SWT.FILL | SWT.MULTI); outputsComposite.setLayout(new GridLayout(2, false)); treeViewer = new TreeViewer(outputsComposite); column1 = new TreeViewerColumn(treeViewer, SWT.NONE); column1.getColumn().setWidth(300); column1.getColumn().setText("Column1"); column1.getColumn().setResizable(true); // column1.getColumn().pack(); column2 = new TreeViewerColumn(treeViewer, SWT.NONE); column2.getColumn().setText("Column2"); column2.getColumn().setWidth(300); column2.getColumn().setResizable(true); // column2.getColumn().pack(); // get all outputs Vector<Node> nodes = new Vector<Node>(); for (int i = 0; i < vertices.length; i++) { final OwlService node = (OwlService) vertices[i]; if (node.getType().contains("Action")) { Collection<OwlService> successors = (Collection<OwlService>) jungGraph.getSuccessors(node); for (OwlService successor : successors) { if (successor.getType().contains("Property")) { showOutputs(successor, null, nodes, jungGraph); } } } } treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); outputsComposite.setSize(300, 200); treeViewer.setContentProvider(new MyTreeContentProvider()); // sort alphabetically based on operation name treeViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { Node t1 = (Node) e1; Node t2 = (Node) e2; int order = ((t1.getOwlService().getArgument().getBelongsToOperation().getName().toString()) .compareTo(t2.getOwlService().getArgument().getBelongsToOperation().getName().toString())); return order; }; }); column1.setLabelProvider(new MyLabelProvider()); column2.setLabelProvider(createColumnLabelProvider()); treeViewer.setInput(nodes); // // outputsComposite.setSize(300, nodes.size() * 10); // treeViewer.expandAll(); // outputsComposite.addListener(SWT.Collapse, outputListener); outputsComposite.addListener(SWT.Expand, outputListener); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() != null) { for (int i = 0; i < graph.getNodes().size(); i++) { GraphNode graphNode = (GraphNode) graph.getNodes().get(i); if (((OwlService) ((MyNode) graphNode.getData()).getObject()) .equals(((Node) selection.getFirstElement()).getOwlService())) { graphNode.highlight(); } else graphNode.unhighlight(); } } } } }); graph.update(); graph.redraw(); inputsLabelComposite.redraw(); outputsLabelComposite.redraw(); treeViewer.refresh(); inputsTreeViewer.refresh(); outputsComposite.redraw(); inputsComposite.redraw(); rightComposite.layout(); rightComposite.update(); rightComposite.redraw(); sc.update(); sc.redraw(); sashForm.update(); sashForm.redraw(); sashForm.layout(true); this.showBusy(false); }
From source file:org.eclipse.epf.authoring.ui.views.ProcessTreeViewer.java
License:Open Source License
/** * Changes default behavior of activating text cell editor from single mouse click to double mouse click *//*from ww w . j a v a 2s.c o m*/ @Override protected void hookEditingSupport(Control control) { try { TreeViewerEditor.create(this, new ColumnViewerEditorActivationStrategy(this) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL; } }, ColumnViewerEditor.DEFAULT); } catch (NullPointerException e) { // work-around for a bug in org.eclipse.jface.viewers.TreeViewerEditor.create(TreeViewer, SWTFocusCellManager, ColumnViewerEditorActivationStrategy, int) // that tried to call SWTFocusCellManager.init() even SWTFocusCellManager is null } super.hookEditingSupport(control); }
From source file:org.eclipse.jface.snippets.viewers.Snippet053StartEditorWithContextMenu.java
License:Open Source License
public Snippet053StartEditorWithContextMenu(Shell shell) { viewer = new TreeViewer(shell, SWT.BORDER); viewer.setContentProvider(new MyContentProvider()); TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE); viewerColumn.getColumn().setWidth(200); viewerColumn.setEditingSupport(new MyEditingSupport(viewer)); viewerColumn.setLabelProvider(new ColumnLabelProvider()); TreeViewerEditor.create(viewer, new ColumnViewerEditorActivationStrategy(viewer) { @Override// ww w . ja va2 s . c o m protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }, ColumnViewerEditor.DEFAULT); Menu menu = new Menu(viewer.getControl()); MenuItem renameItem = new MenuItem(menu, SWT.PUSH); renameItem.addSelectionListener(this); renameItem.setText("Rename"); viewer.getTree().setMenu(menu); viewer.setInput(createModel()); }
From source file:org.eclipse.paho.mqtt.ui.support.tree.TreeViewerBuilder.java
License:Open Source License
/** * @param activationStrategy/*ww w . j av a2s . co m*/ * @param feature */ public TreeViewerBuilder makeEditable(ColumnViewerEditorActivationStrategy activationStrategy, int feature) { ColumnViewerEditorActivationStrategy defaultActivationStrategy = new ColumnViewerEditorActivationStrategy( viewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(viewer, activationStrategy == null ? defaultActivationStrategy : activationStrategy, feature < 0 ? ColumnViewerEditor.DEFAULT : feature); return this; }
From source file:org.eclipse.rap.examples.pages.TreeViewerExample.java
License:Open Source License
private static void addCellEditor(TreeViewer viewer) { CellEditor[] editors = new CellEditor[] { new TextCellEditor(viewer.getTree()), new TextCellEditor(viewer.getTree()), new TextCellEditor(viewer.getTree()) }; viewer.setCellEditors(editors);// w w w . j av a 2 s . com viewer.setCellModifier(new CellModifier(viewer)); String[] columnProperties = new String[] { "Name", "Timezone", "Offset" }; viewer.setColumnProperties(columnProperties); ColumnViewerEditorActivationStrategy activationStrategy = new CellEditorActivationStrategy(viewer); TreeViewerEditor.create(viewer, activationStrategy, EDITOR_ACTIVATE); }
From source file:org.eclipse.rcptt.ctx.filesystem.ui.FilesystemContextEditor.java
License:Open Source License
private void createTree(FormToolkit toolkit, Composite client) { final Tree tree = new Tree(client, SWT.BORDER | SWT.MULTI); GridDataFactory.fillDefaults().grab(true, true).span(1, 1).hint(100, 50).applyTo(tree); viewer = new TreeViewer(tree); viewer.setLabelProvider(new FilesystemContextLabelProvider()); viewer.setContentProvider(new FilesystemContextContentProvider()); viewer.setInput(getContextElement()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); Object[] res = sel.toArray(); FSResource[] resources = new FSResource[res.length]; for (int i = 0; i < res.length; i++) resources[i] = (FSResource) res[i]; setSelection(resources);// w w w.j ava2s . c o m } }); viewer.addDoubleClickListener(new IDoubleClickListener() { /** * Opens file or expands/collapses folder. */ public void doubleClick(DoubleClickEvent event) { if (openFileAction.isEnabled()) { openFileAction.run(); } else { TreeViewer viewer = (TreeViewer) event.getViewer(); IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object selectedNode = selection.getFirstElement(); viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } } }); // Setups renaming TreeViewerEditor.create(viewer, new DefaultTreeViewerEditStrategy(viewer), ColumnViewerEditor.DEFAULT); viewer.setCellEditors(new CellEditor[] { new TextCellEditor(tree) }); viewer.setCellModifier(new ICellModifier() { public void modify(Object element, String property, Object value) { TreeItem item = (TreeItem) element; FSResource res = (FSResource) item.getData(); EObject parent = res.eContainer(); Set<String> allNames = getAllNames(parent); allNames.remove(res.getName()); String newValue = (String) value; if (allNames.contains(newValue)) { return; } if (newValue != null && !newValue.isEmpty() && !newValue.equals(res.getName())) { res.setName(newValue); } } public Object getValue(Object element, String property) { return ((FSResource) element).getName(); } public boolean canModify(Object element, String property) { return true; } }); viewer.setColumnProperties(new String[] { "" }); viewer.getControl().addKeyListener(new KeyListener() { public void keyReleased(KeyEvent e) { } public void keyPressed(KeyEvent e) { if ((SWT.DEL == e.character) && (0 == e.stateMask)) { if (removeAction.isEnabled()) { removeAction.run(); e.doit = false; } } } }); UIContentAdapter adapter = new UIContentAdapter() { @Override protected void changed(Notification notification) { if (viewer.getControl().isDisposed()) { return; } viewer.refresh(); } }; getContextElement().eAdapters().add(adapter); }
From source file:org.eclipse.rcptt.ui.resources.viewers.WorkspaceContextEditor.java
License:Open Source License
private Tree createTree(Composite parent, FormToolkit toolkit) { Tree tree = new Tree(parent, SWT.BORDER | SWT.MULTI); GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(tree); viewer = new TreeViewer(tree); TreeViewerEditor.create(viewer, new DefaultTreeViewerEditStrategy(viewer), ColumnViewerEditor.DEFAULT); viewer.setCellEditors(new CellEditor[] { new TextCellEditor(tree) }); viewer.setCellModifier(new ICellModifier() { public void modify(Object element, String property, Object value) { TreeItem item = (TreeItem) element; WSResource res = (WSResource) item.getData(); WSContainer parent = (WSContainer) res.eContainer(); Set<String> allNames = getAllNames(parent); allNames.remove(res.getName()); String newValue = (String) value; if (allNames.contains(newValue)) { return; }//from w w w .ja v a2s. c om if (newValue != null && !newValue.equals(res.getName())) { try { IPersistenceModel model = getElement().getPersistenceModel(); if (res instanceof WSFile) { String oldName = ImportUtils.getName((WSFile) res); res.setName(newValue); String newName = ImportUtils.getName((WSFile) res); model.rename(oldName, newName); } else if (res instanceof WSContainer) { // Rename all stored files. List<String> oldNames = new ArrayList<String>(); List<WSFile> allFiles = findChildFiles((WSContainer) res); for (WSFile wsFile : allFiles) { oldNames.add(ImportUtils.getName(wsFile)); } res.setName(newValue); for (int i = 0; i < oldNames.size(); i++) { String oldName = oldNames.get(i); WSFile file = allFiles.get(i); String newName = ImportUtils.getName(file); model.rename(oldName, newName); } } // viewer.update(res, null); } catch (Exception e) { Q7UIPlugin.log(e); } } } public Object getValue(Object element, String property) { return ((WSResource) element).getName(); } public boolean canModify(Object element, String property) { return true; } }); viewer.setColumnProperties(new String[] { "o" }); viewer.setContentProvider(new WorkspaceContentProvider()); ILabelDecorator decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(); viewer.setLabelProvider( new DecoratingStyledCellLabelProvider(new WorkspaceLabelProvider(), decorator, null)); viewer.setInput(getContextElement()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); Object[] res = sel.toArray(); WSResource[] resources = new WSResource[res.length]; for (int i = 0; i < res.length; i++) resources[i] = (WSResource) res[i]; setSelection(resources); } }); viewer.addDoubleClickListener(new IDoubleClickListener() { /** * Opens file or expands/collapses folder. */ public void doubleClick(DoubleClickEvent event) { if (openFileAction.isEnabled()) { openFileAction.run(); } else { TreeViewer viewer = (TreeViewer) event.getViewer(); IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object selectedNode = selection.getFirstElement(); viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode)); } } }); viewer.getControl().addKeyListener(new KeyListener() { public void keyReleased(KeyEvent e) { } public void keyPressed(KeyEvent e) { if ((SWT.DEL == e.character) && (0 == e.stateMask)) { if (removeAction.isEnabled()) { removeAction.run(); e.doit = false; } } } }); adapter = new UIContentAdapter() { protected void changed(Notification notification) { if (viewer.getControl().isDisposed()) { return; } viewer.refresh(); } }; getContextElement().eAdapters().add(adapter); toolkit.adapt(tree); return tree; }