@Override public void widgetSelected(SelectionEvent e) { TreeViewer constTreeViewer = this.getViewPage().getConstTreeViewer(); TreeViewer varTreeViewer = this.getViewPage().getVarTreeViewer(); TreeSelection constSelect = (TreeSelection) constTreeViewer.getSelection(); TreeSelection varSelect = (TreeSelection) varTreeViewer.getSelection(); ConstBeanBridge atConst = null; VarBeanBridge beforeVar = null; // if (constSelect == null || constSelect.isEmpty() == true) return; atConst = (ConstBeanBridge) constSelect.getFirstElement(); if (varSelect != null && varSelect.isEmpty() == false) beforeVar = (VarBeanBridge) varSelect.getFirstElement(); // int index = -1; if (beforeVar != null) { atConst = beforeVar.getConst(); index = atConst.getVarRoots().indexOf(beforeVar); } // VarBeanBridge newVar = new VarBeanBridge(atConst, null, atConst.getSource()); atConst.addVar(index + 1, newVar); newVar.doEdit(); varTreeViewer.refresh(); varTreeViewer.setSelection(new TreeSelection(new TreePath(new Object[] {newVar})), true); varTreeViewer.editElement(newVar, 0); }
@Override public void fillContextMenu(IMenuManager menu) { // MOD mzhao user readonly role on svn repository mode. if (!isShowMenu()) { return; } TreeSelection treeSelection = ((TreeSelection) this.getContext().getSelection()); if (!treeSelection.isEmpty()) { Iterator iterator = treeSelection.iterator(); while (iterator.hasNext()) { Object obj = iterator.next(); if (obj instanceof ReportAnalysisRepNode) { ReportAnalysisRepNode repAnaNode = (ReportAnalysisRepNode) obj; TDQReportItem reportItem = repAnaNode.getReportItem(); if (CorePlugin.getDefault().itemIsOpening(reportItem, false)) { // if the report's editor is opening, don't show the menu return; } } else { // if include other type node, don't show the menu return; } } } // show the menu menu.add(new RemoveAnalysisAction()); }
/* * (non-Javadoc) * * @see org.talend.designer.fileoutputxml.ui.footer.AbstractTreeNodeButton#updateButtonStatus() */ @Override protected void updateStatus(TreeSelection selection) { if (selection.isEmpty()) { getButton().setEnabled(false); return; } final TreePath[] paths = selection.getPaths(); boolean sameSegment = true; for (int i = 0; i < paths.length - 1; i++) { if (paths[i].getSegmentCount() != paths[i + 1].getSegmentCount()) { sameSegment = false; } } if (sameSegment) { getButton().setEnabled(true); } else { getButton().setEnabled(false); return; } // if same segment ,they have the same parent and parent must be an element final Element parent = (Element) ((FOXTreeNode) selection.getFirstElement()).getParent(); if (parent == null) { getButton().setEnabled(false); return; } final List<? extends FOXTreeNode> attrChildren = parent.getAttributeChildren(); final List<? extends FOXTreeNode> nameSpaceChildren = parent.getNameSpaceChildren(); final List<FOXTreeNode> elementChildren = parent.getElementChildren(); final Iterator iterator = selection.iterator(); while (iterator.hasNext()) { final Object next = iterator.next(); if (next instanceof Attribute) { if (attrChildren.contains(next) && attrChildren.indexOf(next) == 0) { getButton().setEnabled(false); return; } } else if (next instanceof NameSpaceNode) { if (nameSpaceChildren.contains(next) && nameSpaceChildren.indexOf(next) == 0) { getButton().setEnabled(false); return; } } else if (next instanceof Element) { if (elementChildren.contains(next) && elementChildren.indexOf(next) == 0) { getButton().setEnabled(false); return; } } } }
/* * (non-Javadoc) * * @see org.talend.designer.fileoutputxml.ui.footer.AbstractTreeNodeButton#handleSelectionEvent() */ @Override protected void handleSelectionEvent(TreeSelection selection) { if (!selection.isEmpty()) { final Element parentNode = (Element) ((FOXTreeNode) selection.getFirstElement()).getParent(); final List<? extends FOXTreeNode> attrChildren = parentNode.getAttributeChildren(); final List<? extends FOXTreeNode> nameSpaceChildren = parentNode.getNameSpaceChildren(); final List<FOXTreeNode> elementChildren = parentNode.getElementChildren(); List<Integer> attrIndices = new ArrayList<Integer>(); List<Integer> nameSpaceIndices = new ArrayList<Integer>(); List<Integer> elementIndices = new ArrayList<Integer>(); final Iterator iterator = selection.iterator(); while (iterator.hasNext()) { final Object next = iterator.next(); if (next instanceof Attribute) { if (attrChildren.contains(next)) { attrIndices.add(attrChildren.indexOf(next)); } } else if (next instanceof NameSpaceNode) { if (nameSpaceChildren.contains(next)) { nameSpaceIndices.add(nameSpaceChildren.indexOf(next)); } } else if (next instanceof Element) { if (elementChildren.contains(next)) { elementIndices.add(elementChildren.indexOf(next)); } } } Collections.sort(attrIndices); Collections.sort(nameSpaceIndices); Collections.sort(elementIndices); swapElements(attrChildren, attrIndices); swapElements(nameSpaceChildren, nameSpaceIndices); swapElements(elementChildren, elementIndices); treeViewer.refresh(parentNode); treeViewer.expandAll(); manager.getUiManager().getFoxUI().redrawLinkers(); treeViewer.setSelection(selection); } }
@Override public void selectionChanged(SelectionChangedEvent event) { TreeSelection selection = (TreeSelection) event.getSelection(); if (selection.isEmpty()) { this.selectedTranslator = null; this.translatorNameText.setText(UNDEFINED); updateOnSelection(null); return; } Object firstElement = selection.getFirstElement(); if (!(firstElement instanceof TeiidTranslator)) { this.selectedTranslator = null; this.translatorNameText.setText(UNDEFINED); } else { this.selectedTranslator = (TeiidTranslator) selection.getFirstElement(); this.translatorNameText.setText(selectedTranslator.getName()); } updateOnSelection(firstElement); }