List of usage examples for org.eclipse.jface.viewers LabelProvider LabelProvider
public LabelProvider()
From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.edit.ModifierComposite.java
License:Open Source License
private void createTreeViewer() { MenuManager modItemPopupMenu = createModItemPopupMenu(); modItemMenu = modItemPopupMenu.createContextMenu(tree); modItemMenu.setVisible(false);//from ww w .j av a2 s . c o m MenuManager allPopupMenu = createModAllPopupMenu(); modAllMenu = allPopupMenu.createContextMenu(tree); modAllMenu.setVisible(false); MenuManager modOnlyPopupMenu = createModOnlyPopupMenu(); modOnlyMenu = modOnlyPopupMenu.createContextMenu(tree); modOnlyMenu.setVisible(false); IAction lockedAction = new LockedAction(); MenuManager lockedPopupMenu = new MenuManager(); lockedPopupMenu.add(lockedAction); lockedMenu = lockedPopupMenu.createContextMenu(tree); lockedMenu.setVisible(false); // table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem(element)); Color defaultColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(defaultColor); String tooltip = ((TreeNode) element).getData().getTooltip(); if (((TreeNode) element).getData().getModifier() != null) { tooltip = ((TreeNode) element).getData().getModifier().getTooltip(); // if(System.getProperty("shortToolTip").equals("true")) // tooltip = ((TreeNode)element).getData().getModifier().getName(); } if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } if (!(tooltip.contains("\n"))) { String formattedTooltip = ""; String[] tooltips = tooltip.split(" "); int length = tooltips.length; for (int i = 0; i < length; i++) { formattedTooltip += " " + tooltips[i]; if (i > 1 && i % 10 == 0) formattedTooltip += "\n"; } tooltip = formattedTooltip; } tooltip = " " + tooltip + " "; /* if(System.getProperty("showConceptCodes").equals("true")){ if( ((TreeNode)element).getData().getModifier() != null ){ if ((((TreeNode)element).getData().getModifier().getBasecode() != null) && (!((TreeNode)element).getData().getModifier().getBasecode().equals("null")) ) { tooltip = tooltip + "(" + ((TreeNode)element).getData().getBasecode() + ")"; } } else if ((((TreeNode)element).getData().getBasecode() != null) && (!((TreeNode)element).getData().getBasecode().equals("null")) ) { tooltip = tooltip + "(" + ((TreeNode)element).getData().getBasecode() + ")"; } } */ item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getModifier() != null) { if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue if (((TreeNode) element).getData().getModifier().getSynonymCd() != null) { if (((TreeNode) element).getData().getModifier().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } return ((TreeNode) element).getData().getModifier().getName(); } else { if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } } // if element is synonym; print label in dark blue if (((TreeNode) element).getData().getSynonymCd() != null) { if (((TreeNode) element).getData().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } return ((TreeNode) element).toString(); // return ((TreeNode)element).toString(); } @Override public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); rootNode = new TreeNode(0, "Standard Modifier Items", "Standard Modifier Items", "CA"); this.viewer.setInput(rootNode); this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(true); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node // leaves that are placeholders have open==true if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getModifier().getVisualattributes().startsWith("R")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, null).start(); } // } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; String visualAttribute = null; if (node.getData().getModifier() == null) visualAttribute = node.getData().getVisualattributes(); else visualAttribute = node.getData().getModifier().getVisualattributes(); if ((visualAttribute.startsWith("F")) || (visualAttribute.startsWith("D")) || (visualAttribute.startsWith("O"))) if (node.isOpen()) { // collapsing node node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } else // expanding node { node.setOpen(true); viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getModifier().getVisualattributes().startsWith("R")) && (child.isOpen())) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, null).start(); } } viewer.refresh(); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); if (node.getData().getModifier() == null) { if (node.getData().getVisualattributes().substring(2).equals("E")) { lockedMenu.setVisible(false); modAllMenu.setVisible(false); modItemMenu.setVisible(false); modOnlyMenu.setVisible(true); } } else if (node.getData().getModifier().getVisualattributes().substring(2).equals("E")) { if ((node.getData().getModifier().getVisualattributes().startsWith("O")) || (node.getData().getModifier().getVisualattributes().startsWith("D"))) { lockedMenu.setVisible(false); modAllMenu.setVisible(true); modItemMenu.setVisible(false); modOnlyMenu.setVisible(false); } else if ((node.getData().getModifier().getVisualattributes().startsWith("R"))) { modAllMenu.setVisible(false); modItemMenu.setVisible(true); lockedMenu.setVisible(false); modOnlyMenu.setVisible(false); } else { lockedMenu.setVisible(false); modAllMenu.setVisible(false); modItemMenu.setVisible(false); modOnlyMenu.setVisible(false); } } else { modAllMenu.setVisible(false); modItemMenu.setVisible(false); lockedMenu.setVisible(true); modOnlyMenu.setVisible(false); } } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); MetadataRecord.getInstance().registerModifierViewer(viewer); }
From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.edit.NodeBrowser.java
License:Open Source License
private void createTreeViewer(Composite parent, int style, int inputFlag) { this.browser = this; Tree tree = new Tree(parent, style); GridData gridData = new GridData(GridData.FILL_BOTH); // gridData.verticalSpan = 50; gridData.horizontalSpan = 2;//from w w w. ja v a 2 s . c o m gridData.widthHint = 150; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; tree.setLayoutData(gridData); // create popup menus MenuManager modItemPopupMenu = createModItemPopupMenu(); modItemMenu = modItemPopupMenu.createContextMenu(tree); modItemMenu.setVisible(false); MenuManager itemPopupMenu = createItemPopupMenu(); itemMenu = itemPopupMenu.createContextMenu(tree); itemMenu.setVisible(false); MenuManager rootPopupMenu = createRootPopupMenu(); rootMenu = rootPopupMenu.createContextMenu(tree); rootMenu.setVisible(false); MenuManager allPopupMenu = createAllPopupMenu(); allMenu = allPopupMenu.createContextMenu(tree); allMenu.setVisible(false); IAction lockedAction = new LockedAction(); MenuManager lockedPopupMenu = new MenuManager(); lockedPopupMenu.add(lockedAction); lockedMenu = lockedPopupMenu.createContextMenu(tree); lockedMenu.setVisible(false); MenuManager viewPopupMenu = createViewPopupMenu(); viewMenu = viewPopupMenu.createContextMenu(tree); viewMenu.setVisible(false); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem(element)); Color defaultColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(defaultColor); String tooltip = ((TreeNode) element).getData().getTooltip(); if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } else { if (tooltip.contains("\n")) ; else { String formattedTooltip = ""; String[] tooltips = tooltip.split(" "); int length = tooltips.length; for (int i = 0; i < length; i++) { formattedTooltip += " " + tooltips[i]; if (i > 1 && i % 10 == 0) formattedTooltip += "\n"; } tooltip = formattedTooltip; } } tooltip = " " + tooltip + " "; item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue if (((TreeNode) element).getData().getSynonymCd() != null) { if (((TreeNode) element).getData().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } return ((TreeNode) element).toString(); } @Override public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); this.viewer.setInput(populateRootNode()); String status = System.getProperty("errorMessage"); if (status != null) { TreeNode placeholder = new TreeNode(1, "placeholder", status, "C-ERROR"); browser.rootNode.addChild(placeholder); browser.refresh(); } this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(true); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node // leaves that are placeholders have open==true if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getXMLData(viewer, browser).start(); } // } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; String visualAttribute = node.getData().getVisualattributes(); if ((visualAttribute.startsWith("F")) || (visualAttribute.startsWith("C"))) if (node.isOpen()) { // collapsing node node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } else // expanding node { node.setOpen(true); viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && (child.isOpen())) { // child is a placeholder, so remove from list // update list with real children node.getXMLData(viewer, browser).start(); } } viewer.refresh(); } } }); this.viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { // setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); if (!Boolean.parseBoolean(System.getProperty("OntDisableModifiers"))) { ModifierComposite.getInstance().enableComposite(node); if (node.getData().getVisualattributes().endsWith("E")) ModifierComposite.getInstance().addModifiers(node.getData()); else ModifierComposite.getInstance().clearTree(); } else { ModifierComposite.getInstance().disableComposite(); } setCurrentNode(node); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); if (node.getData().getVisualattributes().substring(2).equals("E")) { if (node.getData().getLevel() == 0) { lockedMenu.setVisible(false); itemMenu.setVisible(false); allMenu.setVisible(false); rootMenu.setVisible(true); modItemMenu.setVisible(false); viewMenu.setVisible(false); } else if ((node.getData().getVisualattributes().startsWith("F")) || (node.getData().getVisualattributes().startsWith("C"))) { lockedMenu.setVisible(false); rootMenu.setVisible(false); itemMenu.setVisible(false); allMenu.setVisible(true); modItemMenu.setVisible(false); viewMenu.setVisible(false); } else if ((node.getData().getVisualattributes().startsWith("L")) || (node.getData().getVisualattributes().startsWith("O")) || (node.getData().getVisualattributes().startsWith("D"))) { lockedMenu.setVisible(false); rootMenu.setVisible(false); allMenu.setVisible(false); itemMenu.setVisible(true); modItemMenu.setVisible(false); viewMenu.setVisible(false); } else if ((node.getData().getVisualattributes().startsWith("R"))) { rootMenu.setVisible(false); allMenu.setVisible(false); itemMenu.setVisible(false); modItemMenu.setVisible(true); lockedMenu.setVisible(false); viewMenu.setVisible(false); } else { lockedMenu.setVisible(false); rootMenu.setVisible(false); allMenu.setVisible(false); itemMenu.setVisible(false); modItemMenu.setVisible(false); viewMenu.setVisible(false); } } else if ((System.getProperty("OntEdit_ViewOnly") != null) && (System.getProperty("OntEdit_ViewOnly").equals("true"))) { // else if(UserInfoBean.getInstance().getCellDataParam("ont", "OntEditView") != null){ // if(UserInfoBean.getInstance().getCellDataParam("ont", "OntEditView").equals("true")); viewMenu.setVisible(true); lockedMenu.setVisible(false); rootMenu.setVisible(false); allMenu.setVisible(false); itemMenu.setVisible(false); modItemMenu.setVisible(false); } else { rootMenu.setVisible(false); allMenu.setVisible(false); itemMenu.setVisible(false); modItemMenu.setVisible(false); viewMenu.setVisible(false); lockedMenu.setVisible(true); } } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); }
From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.find.ModifierComposite.java
License:Open Source License
private void createTreeViewer() { // table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { @Override//w ww . j a v a 2 s .c om public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem(element)); Color defaultColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(defaultColor); String tooltip = ((TreeNode) element).getData().getTooltip(); if (((TreeNode) element).getData().getModifier() != null) { tooltip = ((TreeNode) element).getData().getModifier().getTooltip(); // if(System.getProperty("shortToolTip").equals("true")) // tooltip = ((TreeNode)element).getData().getModifier().getName(); } if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } tooltip = " " + tooltip + " "; /* if(System.getProperty("showConceptCodes").equals("true")){ if( ((TreeNode)element).getData().getModifier() != null ){ if ((((TreeNode)element).getData().getModifier().getBasecode() != null) && (!((TreeNode)element).getData().getModifier().getBasecode().equals("null")) ) { tooltip = tooltip + "(" + ((TreeNode)element).getData().getBasecode() + ")"; } } else if ((((TreeNode)element).getData().getBasecode() != null) && (!((TreeNode)element).getData().getBasecode().equals("null")) ) { tooltip = tooltip + "(" + ((TreeNode)element).getData().getBasecode() + ")"; } } */ item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getModifier() != null) { if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue if (((TreeNode) element).getData().getModifier().getSynonymCd() != null) { if (((TreeNode) element).getData().getModifier().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } } return ((TreeNode) element).getData().getModifier().getName(); // return ((TreeNode)element).toString(); } @Override public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); rootNode = new TreeNode(0, "Standard Modifier Items", "Standard Modifier Items", "CA"); this.viewer.setInput(rootNode); this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(true); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node // leaves that are placeholders have open==true if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getModifier().getVisualattributes().startsWith("R")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, null).start(); } // } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; String visualAttribute = node.getData().getModifier().getVisualattributes(); if ((visualAttribute.startsWith("D")) || (visualAttribute.startsWith("O"))) if (node.isOpen()) { // collapsing node node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } else // expanding node { node.setOpen(true); viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getModifier().getVisualattributes().startsWith("R")) && (child.isOpen())) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, null).start(); } } viewer.refresh(); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseDown: /* if(event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); if(node.getData().getModifier().getVisualattributes().substring(2).equals("E")){ if ((node.getData().getModifier().getVisualattributes().startsWith("O")) || (node.getData().getModifier().getVisualattributes().startsWith("D"))){ lockedMenu.setVisible(false); modAllMenu.setVisible(true); modItemMenu.setVisible(false); } else if ((node.getData().getModifier().getVisualattributes().startsWith("R"))){ modAllMenu.setVisible(false); modItemMenu.setVisible(true); lockedMenu.setVisible(false); } else{ lockedMenu.setVisible(false); modAllMenu.setVisible(false); modItemMenu.setVisible(false); } } else{ modAllMenu.setVisible(false); modItemMenu.setVisible(false); lockedMenu.setVisible(true); } } */ case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); // MetadataRecord.getInstance().registerModifierViewer(viewer); }
From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.find.NodeBrowser.java
License:Open Source License
private void createTreeViewer(Composite parent, int style, int inputFlag) { Tree tree = new Tree(parent, style); MenuManager modItemPopupMenu = createModifierPopupMenu(parent); modifierMenu = modItemPopupMenu.createContextMenu(tree); modifierMenu.setVisible(false);/*from w w w .j ava2s. c o m*/ GridData gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalSpan = 2; gridData.heightHint = 100; gridData.grabExcessHorizontalSpace = true; tree.setLayoutData(gridData); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem((TreeNode) element)); Color defaultColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(defaultColor); String tooltip = ((TreeNode) element).getData().getTooltip(); if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } tooltip = " " + tooltip + " "; if ((((TreeNode) element).getData().getBasecode() != null) && (!((TreeNode) element).getData().getBasecode().equals("null"))) { tooltip = tooltip + " (" + ((TreeNode) element).getData().getBasecode() + ")"; } if (!(tooltip.contains("\n"))) { String formattedTooltip = ""; String[] tooltips = tooltip.split(" "); int length = tooltips.length; for (int i = 0; i < length; i++) { formattedTooltip += " " + tooltips[i]; if (i > 1 && i % 10 == 0) formattedTooltip += "\n"; } tooltip = formattedTooltip; } item.setData("TOOLTIP", tooltip); // if element is inactive; display label in gray if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("I")) { Color gray = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(gray); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is error; print label in red else if (((TreeNode) element).getData().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue if (((TreeNode) element).getData().getSynonymCd() != null) { if (((TreeNode) element).getData().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } return ((TreeNode) element).toString(); } public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); this.viewer.setInput(getRootNode()); String status = System.getProperty("errorMessage"); if (status != null) { TreeNode placeholder = new TreeNode(1, "placeholder", status, "C-ERROR"); browser.rootNode.addChild(placeholder); browser.refresh(); System.setProperty("errorMessage", ""); } this.viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { // setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); ModifierComposite.getInstance().disableComposite(); } } }); this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(true); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) // && !(((TreeNode)node.getChildren().get(0)).getData().getName(). // equalsIgnoreCase("Over maximum number of child nodes"))) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children slm.setMessage("Calling WebService"); slm.update(true); node.getXMLData(viewer, browser).start(); } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(node); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; String visualAttribute = node.getData().getVisualattributes(); if ((visualAttribute.startsWith("F")) || (visualAttribute.startsWith("C"))) if (node.isOpen()) { // collapsing node node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } else // expanding node { node.setOpen(true); viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && (child.isOpen())) { // child is a placeholder, so remove from list // update list with real children node.getXMLData(viewer, browser).start(); } } viewer.refresh(); } } }); Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseExit: case SWT.MouseMove: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); if (!Boolean.parseBoolean(System.getProperty("OntDisableModifiers"))) { modifierMenu.setVisible(true); } } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); // label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); // label.addListener(SWT.MouseExit, labelListener); // label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); }
From source file:edu.harvard.i2b2.eclipse.plugins.ontology.views.NodeBrowser.java
License:Open Source License
private void createTreeViewer(Composite parent, int style, int inputFlag) { this.browser = this; Tree tree = new Tree(parent, style); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.verticalSpan = 50;//from ww w.j a v a 2 s . co m gridData.horizontalSpan = 2; gridData.widthHint = 150; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; tree.setLayoutData(gridData); MenuManager popupMenu = new MenuManager(); IAction countAction = new CountAction(); countAction.setChecked(false); // System.setProperty("getPatientCount", "false"); //System.setProperty("getPatientCount", "false"); boolean answer = Boolean.valueOf(System.getProperty("patientCountVisible")); countAction.setEnabled(answer); IAction shortTooltipAction = new ShortTooltipAction(); shortTooltipAction.setChecked(false); System.setProperty("shortToolTip", "false"); IAction conceptCodeAction = new ConceptCodeAction(); conceptCodeAction.setChecked(false); System.setProperty("showConceptCodes", "false"); IAction refreshAction = new RefreshAction(); IAction refreshAllAction = new RefreshAllAction(); // popupMenu.add(countAction); // popupMenu.add(shortTooltipAction); // popupMenu.add(conceptCodeAction); // popupMenu.add(new Separator()); popupMenu.add(refreshAction); popupMenu.add(refreshAllAction); menu = popupMenu.createContextMenu(tree); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem(element)); Color defaultColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(defaultColor); String tooltip = ((TreeNode) element).getData().getTooltip(); if (System.getProperty("shortToolTip").equals("true")) tooltip = ((TreeNode) element).getData().getName(); else if (((TreeNode) element).getData().getModifier() != null) { tooltip = ((TreeNode) element).getData().getModifier().getTooltip(); if (System.getProperty("shortToolTip").equals("true")) tooltip = ((TreeNode) element).getData().getModifier().getName(); } else if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } if (!(tooltip.contains("\n"))) { String formattedTooltip = ""; String[] tooltips = tooltip.split(" "); int length = tooltips.length; for (int i = 0; i < length; i++) { formattedTooltip += " " + tooltips[i]; if (i > 1 && i % 10 == 0) formattedTooltip += "\n"; } tooltip = formattedTooltip; } tooltip = " " + tooltip + " "; if (System.getProperty("showConceptCodes").equals("true")) { if (((TreeNode) element).getData().getModifier() != null) { if ((((TreeNode) element).getData().getModifier().getBasecode() != null) && (!((TreeNode) element).getData().getModifier().getBasecode().equals("null"))) { tooltip = tooltip + "(" + ((TreeNode) element).getData().getBasecode() + ")"; } } else if ((((TreeNode) element).getData().getBasecode() != null) && (!((TreeNode) element).getData().getBasecode().equals("null"))) { tooltip = tooltip + "(" + ((TreeNode) element).getData().getBasecode() + ")"; } } item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getModifier() != null) { if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().substring(1, 2) .equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getModifier().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in blue else if (((TreeNode) element).getData().getModifier().getSynonymCd() != null) { if (((TreeNode) element).getData().getModifier().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } } else { if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualattributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getVisualattributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue else if (((TreeNode) element).getData().getSynonymCd() != null) { if (((TreeNode) element).getData().getSynonymCd().equals("Y")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); item.setForeground(color); } } } return ((TreeNode) element).toString(); } @Override public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); this.viewer.setInput(populateRootNode()); String status = System.getProperty("errorMessage"); if (status != null) { TreeNode placeholder = new TreeNode(1, "placeholder", status, "C-ERROR"); browser.rootNode.addChild(placeholder); browser.refresh(); System.setProperty("errorMessage", ""); } this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(true); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node // leaves that are placeholders have open==true if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getXMLData(viewer, browser).start(); } if ((child.getData().getVisualattributes().startsWith("R")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, browser).start(); } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { // setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); // TableComposite.getInstance().addModifiers(node); setCurrentNode(node); } } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; String visualAttribute = node.getData().getVisualattributes(); if ((visualAttribute.startsWith("F")) || (visualAttribute.startsWith("C")) || (visualAttribute.startsWith("D")) || (visualAttribute.startsWith("O"))) if (node.isOpen()) { // collapsing node node.setOpen(false); viewer.collapseToLevel(node, 1); viewer.refresh(); } else // expanding node { viewer.expandToLevel(node, 1); viewer.refresh(node); node.setOpen(true); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() == 1) { TreeNode child = (TreeNode) (node.getChildren().get(0)); if ((child.getData().getVisualattributes().startsWith("L")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getXMLData(viewer, browser).start(); } if ((child.getData().getVisualattributes().startsWith("R")) && child.isOpen()) { // child is a placeholder, so remove from list // update list with real children node.getModXMLData(viewer, browser).start(); } } viewer.refresh(); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; // TreeNode node = (TreeNode) selection.getFirstElement(); // if( node.getData().getModifier() == null) menu.setVisible(true); // else if(node.getData().getVisualAttributes().startsWith("ZA")) // menu.setVisible(true); // else if(node.getData().getVisualAttributes().startsWith("F")) // folderMenu.setVisible(true); // else if(node.getData().getVisualAttributes().startsWith("C")) // caseMenu.setVisible(true); } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); ISelectionChangedListener findListener = new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); edu.harvard.i2b2.eclipse.plugins.ontology.views.find.TreeNode node = (edu.harvard.i2b2.eclipse.plugins.ontology.views.find.TreeNode) selection .getFirstElement(); TreeNode node1 = new TreeNode(node); String foundKey = node1.getData().getKey(); String parent = "\\\\" + StringUtil.getTableCd(foundKey) + "\\"; String fullName = StringUtil.getPath(foundKey); String[] parts = fullName.split("\\\\"); if (rootNode.getChildren().isEmpty()) log.debug("rootNode is empty"); else { viewer.getTree().setEnabled(false); rootNode.expandFindTree(viewer, parts, parent).start(); } } } }; TermSelectionProvider.getInstance().addSelectionChangedListener(findListener); }
From source file:edu.harvard.i2b2.eclipse.plugins.workplace.views.find.FindViewNodeBrowser.java
License:Open Source License
private void createTreeViewer(Composite parent, int style, int inputFlag) { Tree tree = new Tree(parent, style); GridData gridData = new GridData(GridData.FILL_BOTH); //gridData.verticalSpan = 50; gridData.horizontalSpan = 2;// w w w . j av a2 s . co m //gridData.widthHint = 150; gridData.grabExcessHorizontalSpace = true; gridData.heightHint = 100; //gridData.grabExcessVerticalSpace = true; tree.setLayoutData(gridData); MenuManager popupMenu = new MenuManager(); IAction renameAction = new RenameAction(); IAction annotateAction = new AnnotateAction(); IAction deleteAction = new DeleteAction(); IAction exportAction = new ExportAction(); popupMenu.add(renameAction); popupMenu.add(annotateAction); popupMenu.add(deleteAction); popupMenu.add(exportAction); menu = popupMenu.createContextMenu(tree); MenuManager casePopupMenu = new MenuManager(); IAction makeFolderAction = new NewFolderAction(); casePopupMenu.add(makeFolderAction); caseMenu = casePopupMenu.createContextMenu(tree); MenuManager folderPopupMenu = new MenuManager(); folderPopupMenu.add(renameAction); folderPopupMenu.add(annotateAction); folderPopupMenu.add(deleteAction); folderPopupMenu.add(makeFolderAction); folderMenu = folderPopupMenu.createContextMenu(tree); // tree.setMenu(menu); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem((TreeNode) element)); String tooltip = ((TreeNode) element).getData().getTooltip(); if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } tooltip = " " + tooltip + " "; item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getVisualAttributes().substring(1, 2).equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualAttributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getVisualAttributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is synonym; print label in dark blue // if (((TreeNode)element).getData().getSynonymCd() != null) { // if (((TreeNode)element).getData().getSynonymCd().equals("Y")) // { // Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); // item.setForeground(color); // } // } return ((TreeNode) element).toString(); } public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); this.viewer.setInput(populateRootNode()); String status = System.getProperty("errorMessage"); if (status != null) { TreeNode placeholder = new TreeNode("placeholder", status, "C-ERROR"); this.rootNode.addChild(placeholder); this.refresh(); System.setProperty("errorMessage", ""); } this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); if (node.getData().getVisualAttributes().equals("FA")) node.getData().setVisualAttributes("FAO"); else if (node.getData().getVisualAttributes().equals("CA")) node.getData().setVisualAttributes("CAO"); else if (node.getData().getVisualAttributes().equals("FH")) node.getData().setVisualAttributes("FHO"); else if (node.getData().getVisualAttributes().equals("CH")) node.getData().setVisualAttributes("CHO"); //viewer.refresh(); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() > 0) { TreeNode firstChild = (TreeNode) (node.getChildren().get(0)); if ((firstChild.getData().getVisualAttributes().equals("LAO")) || (firstChild.getData().getVisualAttributes().equals("LHO"))) { // child is a placeholder, so remove from list // update list with real children // node.getXMLData(viewer, browser).start(); node.getXMLData(viewer).start(); } else { for (int i = 0; i < node.getChildren().size(); i++) { TreeNode child = (TreeNode) (node.getChildren().get(i)); if (child.getData().getVisualAttributes().equals("FAO")) { child.getData().setVisualAttributes("FA"); } else if (child.getData().getVisualAttributes().equals("CAO")) { child.getData().setVisualAttributes("CA"); } else if (child.getData().getVisualAttributes().equals("FHO")) { child.getData().setVisualAttributes("FH"); } else if (child.getData().getVisualAttributes().equals("CHO")) { child.getData().setVisualAttributes("CH"); } } } } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); if (node.getData().getVisualAttributes().equals("FAO")) node.getData().setVisualAttributes("FA"); else if (node.getData().getVisualAttributes().equals("CAO")) node.getData().setVisualAttributes("CA"); else if (node.getData().getVisualAttributes().equals("FHO")) node.getData().setVisualAttributes("FH"); else if (node.getData().getVisualAttributes().equals("CHO")) node.getData().setVisualAttributes("CH"); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; if ((node.getData().getVisualAttributes()).equals("FA")) { node.getData().setVisualAttributes("FAO"); expand = true; } else if ((node.getData().getVisualAttributes()).equals("CA")) { node.getData().setVisualAttributes("CAO"); expand = true; } else if (node.getData().getVisualAttributes().equals("FH")) { node.getData().setVisualAttributes("FHO"); expand = true; } else if (node.getData().getVisualAttributes().equals("CH")) { node.getData().setVisualAttributes("CHO"); expand = true; } if (expand == true) { viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() > 0) { TreeNode firstChild = (TreeNode) (node.getChildren().get(0)); if ((firstChild.getData().getVisualAttributes().equals("LAO")) || (firstChild.getData().getVisualAttributes().equals("LHO"))) { // child is a placeholder, so remove from list // update list with real children //// node.getXMLData(viewer, browser).start(); node.getXMLData(viewer).start(); } else { for (int i = 0; i < node.getChildren().size(); i++) { TreeNode child = (TreeNode) (node.getChildren().get(i)); if (child.getData().getVisualAttributes().equals("FAO")) { child.getData().setVisualAttributes("FA"); } else if (child.getData().getVisualAttributes().equals("CAO")) { child.getData().setVisualAttributes("CA"); } else if (child.getData().getVisualAttributes().equals("FHO")) { child.getData().setVisualAttributes("FH"); } else if (child.getData().getVisualAttributes().equals("CHO")) { child.getData().setVisualAttributes("CH"); } } viewer.refresh(); } } } // Case where we are collapsing the node else if (node.getData().getVisualAttributes().equals("FAO")) { node.getData().setVisualAttributes("FA"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("CAO")) { node.getData().setVisualAttributes("CA"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("FHO")) { node.getData().setVisualAttributes("FH"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("CHO")) { node.getData().setVisualAttributes("CH"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); if (node.getData().getVisualAttributes().equals("LA")) menu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("ZA")) menu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("F")) folderMenu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("C")) caseMenu.setVisible(true); } case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); }
From source file:edu.harvard.i2b2.eclipse.plugins.workplace.views.NodeBrowser.java
License:Open Source License
private void createTreeViewer(Composite parent, int style, int inputFlag) { Tree tree = new Tree(parent, style); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.verticalSpan = 50;/*from w w w . j a v a 2 s . c om*/ gridData.horizontalSpan = 2; gridData.widthHint = 150; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; tree.setLayoutData(gridData); MenuManager popupMenu = new MenuManager(); IAction renameAction = new RenameAction(); IAction annotateAction = new AnnotateAction(); IAction deleteAction = new DeleteAction(); IAction exportAction = new ExportAction(); protectAction = new ProtectedAction(); popupMenu.add(renameAction); popupMenu.add(annotateAction); popupMenu.add(deleteAction); popupMenu.add(exportAction); //if (UserInfoBean.getInstance().isRoleInProject("DATA_LDS"/*"DATA_PROT"*/)) { //popupMenu.add(protectAction); // } menu = popupMenu.createContextMenu(tree); MenuManager casePopupMenu = new MenuManager(); IAction makeFolderAction = new NewFolderAction(); casePopupMenu.add(makeFolderAction); caseMenu = casePopupMenu.createContextMenu(tree); MenuManager folderPopupMenu = new MenuManager(); folderPopupMenu.add(renameAction); folderPopupMenu.add(annotateAction); folderPopupMenu.add(deleteAction); folderPopupMenu.add(makeFolderAction); //if (UserInfoBean.getInstance().isRoleInProject("DATA_LDS"/*"DATA_PROT"*/)) { //folderPopupMenu.add(protectAction); //} folderMenu = folderPopupMenu.createContextMenu(tree); // tree.setMenu(menu); this.viewer = new TreeViewer(tree); this.viewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { // Set the tooltip data // (cant be done in the lookup thread) // maps TreeViewer node to Tree item and sets item.data TreeItem item = (TreeItem) (viewer.testFindItem((TreeNode) element)); String tooltip = ((TreeNode) element).getData().getTooltip(); if ((tooltip == null) || (tooltip.equals(""))) { tooltip = ((TreeNode) element).toString(); } tooltip = " " + tooltip + " "; item.setData("TOOLTIP", tooltip); // if element is Inactive; print label in gray if (((TreeNode) element).getData().getVisualAttributes().substring(1, 2).equals("I")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY); item.setForeground(color); } // if element is Hidden; print label in red else if (((TreeNode) element).getData().getVisualAttributes().substring(1, 2).equals("H")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } // if element is undefined; print label in red else if (((TreeNode) element).getData().getVisualAttributes().equals("C-ERROR")) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_RED); item.setForeground(color); } //if((((TreeNode)element).getData().getProtectedAccess() != null) && //Boolean.parseBoolean(((TreeNode)element).getData().getProtectedAccess())) { if ((((TreeNode) element).getData().getProtectedAccess() != null) && (((TreeNode) element).getData().getProtectedAccess().equalsIgnoreCase("Y"))) {//protected_access()) { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_MAGENTA); item.setForeground(color); } else { Color color = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK); item.setForeground(color); } // if element is synonym; print label in dark blue // if (((TreeNode)element).getData().getSynonymCd() != null) { // if (((TreeNode)element).getData().getSynonymCd().equals("Y")) // { // Color color = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_BLUE); // item.setForeground(color); // } // } return ((TreeNode) element).toString(); } public Image getImage(Object element) { return imageRegistry.get(((TreeNode) element).getIconKey()); } }); this.viewer.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return ((TreeNode) parentElement).getChildren().toArray(); } public Object getParent(Object element) { return ((TreeNode) element).getParent(); } public boolean hasChildren(Object element) { return ((TreeNode) element).getChildren().size() > 0; } public Object[] getElements(Object inputElement) { return ((TreeNode) inputElement).getChildren().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); this.viewer.setInput(populateRootNode()); String version = System.getProperty("wkplServerVersion"); double vernum = Double.parseDouble(version); if ((vernum >= 1.6/*1.7*/) && UserInfoBean.getInstance().isRoleInProject("DATA_LDS"/*"DATA_PROT"*/)) { popupMenu.add(protectAction); folderPopupMenu.add(protectAction); } String status = System.getProperty("errorMessage"); if (status != null) { TreeNode placeholder = new TreeNode("placeholder", status, "C-ERROR"); this.rootNode.addChild(placeholder); this.refresh(); System.setProperty("errorMessage", ""); } this.viewer.addTreeListener(new ITreeViewerListener() { public void treeExpanded(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); if (node.getData().getVisualAttributes().equals("FA")) node.getData().setVisualAttributes("FAO"); else if (node.getData().getVisualAttributes().equals("CA")) node.getData().setVisualAttributes("CAO"); else if (node.getData().getVisualAttributes().equals("FH")) node.getData().setVisualAttributes("FHO"); else if (node.getData().getVisualAttributes().equals("CH")) node.getData().setVisualAttributes("CHO"); //viewer.refresh(); // check to see if child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() > 0) { TreeNode firstChild = (TreeNode) (node.getChildren().get(0)); //if((firstChild.getData().getVisualAttributes().equals("LAO")) || (firstChild.getData().getVisualAttributes().equals("LHO")) ) //{ // child is a placeholder, so remove from list // update list with real children // node.getXMLData(viewer, browser).start(); node.getXMLData(viewer).start(); //} /*else { for(int i=0; i<node.getChildren().size(); i++) { TreeNode child = (TreeNode)(node.getChildren().get(i)); if(child.getData().getVisualAttributes().equals("FAO")) { child.getData().setVisualAttributes("FA"); } else if (child.getData().getVisualAttributes().equals("CAO")) { child.getData().setVisualAttributes("CA"); } else if(child.getData().getVisualAttributes().equals("FHO")) { child.getData().setVisualAttributes("FH"); } else if (child.getData().getVisualAttributes().equals("CHO")) { child.getData().setVisualAttributes("CH"); } } }*/ } viewer.refresh(); viewer.expandToLevel(node, 1); } public void treeCollapsed(TreeExpansionEvent event) { final TreeNode node = (TreeNode) event.getElement(); if (node.getData().getVisualAttributes().equals("FAO")) node.getData().setVisualAttributes("FA"); else if (node.getData().getVisualAttributes().equals("CAO")) node.getData().setVisualAttributes("CA"); else if (node.getData().getVisualAttributes().equals("FHO")) node.getData().setVisualAttributes("FH"); else if (node.getData().getVisualAttributes().equals("CHO")) node.getData().setVisualAttributes("CH"); viewer.collapseToLevel(node, 1); viewer.refresh(); } }); this.viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { TreeNode node = null; // if the selection is empty clear the label if (event.getSelection().isEmpty()) { setCurrentNode(null); return; } if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); node = (TreeNode) selection.getFirstElement(); setCurrentNode(node); } // Case where we are expanding the node boolean expand = false; if ((node.getData().getVisualAttributes()).equals("FA")) { node.getData().setVisualAttributes("FAO"); expand = true; } else if ((node.getData().getVisualAttributes()).equals("CA")) { node.getData().setVisualAttributes("CAO"); expand = true; } else if (node.getData().getVisualAttributes().equals("FH")) { node.getData().setVisualAttributes("FHO"); expand = true; } else if (node.getData().getVisualAttributes().equals("CH")) { node.getData().setVisualAttributes("CHO"); expand = true; } if (expand == true) { viewer.expandToLevel(node, 1); viewer.refresh(node); // check to see if this node's child is a placeholder ('working...') // if so, make Web Service call to update children of node if (node.getChildren().size() > 0) { TreeNode firstChild = (TreeNode) (node.getChildren().get(0)); if ((firstChild.getData().getVisualAttributes().equals("LAO")) || (firstChild.getData().getVisualAttributes().equals("LHO"))) { // child is a placeholder, so remove from list // update list with real children //// node.getXMLData(viewer, browser).start(); node.getXMLData(viewer).start(); } else { for (int i = 0; i < node.getChildren().size(); i++) { TreeNode child = (TreeNode) (node.getChildren().get(i)); if (child.getData().getVisualAttributes().equals("FAO")) { child.getData().setVisualAttributes("FA"); } else if (child.getData().getVisualAttributes().equals("CAO")) { child.getData().setVisualAttributes("CA"); } else if (child.getData().getVisualAttributes().equals("FHO")) { child.getData().setVisualAttributes("FH"); } else if (child.getData().getVisualAttributes().equals("CHO")) { child.getData().setVisualAttributes("CH"); } } viewer.refresh(); } } } // Case where we are collapsing the node else if (node.getData().getVisualAttributes().equals("FAO")) { node.getData().setVisualAttributes("FA"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("CAO")) { node.getData().setVisualAttributes("CA"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("FHO")) { node.getData().setVisualAttributes("FH"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } else if (node.getData().getVisualAttributes().equals("CHO")) { node.getData().setVisualAttributes("CH"); viewer.collapseToLevel(node, 1); viewer.refresh(node); } } }); // Implement a "fake" tooltip final Listener labelListener = new Listener() { public void handleEvent(Event event) { Label label = (Label) event.widget; Shell shell = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TreeItem) label.getData("_TREEITEM"); //cdh@20060314 have to fix this for multi select in treeview // Assuming table is single select, set the selection as if // the mouse down event went through to the table (viewer.getTree()).setSelection(new TreeItem[] { (TreeItem) e.item }); (viewer.getTree()).notifyListeners(SWT.Selection, e); //table.setSelection (new TableItem [] {(TableItem) e.item}); //table.notifyListeners (SWT.Selection, e); // fall through case SWT.MouseExit: shell.dispose(); break; } } }; Listener viewerListener = new Listener() { Shell tip = null; Label label = null; public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseDown: if (event.button == 3) // right click { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (selection.size() != 1) return; TreeNode node = (TreeNode) selection.getFirstElement(); if (node.getData().getProtectedAccess() != null && node.getData().getProtectedAccess().equalsIgnoreCase("Y")) { protectAction.setText("Clear PHI Access"); } else { protectAction.setText("Set PHI Access"); } if (node.getData().getVisualAttributes().equals("LA")) menu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("ZA")) menu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("F")) folderMenu.setVisible(true); else if (node.getData().getVisualAttributes().startsWith("C")) caseMenu.setVisible(true); } case SWT.MouseMove: case SWT.MouseExit: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseHover: { TreeItem item = (viewer.getTree()).getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(Display.getCurrent().getActiveShell(), SWT.ON_TOP | SWT.TOOL); tip.setLayout(new FillLayout()); label = new Label(tip, SWT.NONE); label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TREEITEM", item); label.setText((String) item.getData("TOOLTIP")); // label.setText("Tooltip test"); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = viewer.getTree().toDisplay(event.x, event.y); tip.setBounds(pt.x + 10, pt.y + 20, size.x, size.y); tip.setVisible(true); } } } } }; viewer.getTree().addListener(SWT.MouseDown, viewerListener); viewer.getTree().addListener(SWT.Dispose, viewerListener); viewer.getTree().addListener(SWT.KeyDown, viewerListener); viewer.getTree().addListener(SWT.MouseMove, viewerListener); viewer.getTree().addListener(SWT.MouseHover, viewerListener); viewer.getTree().addListener(SWT.MouseExit, viewerListener); }
From source file:edu.illinois.ncsa.datawolf.executor.commandline.wizard.CommandLineWizardPage.java
License:Open Source License
public void createControl(Composite parent) { final Composite top = new Composite(parent, SWT.NONE); top.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); top.setLayout(new GridLayout(3, false)); Label lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); lbl.setText("Executable:"); exec = new Text(top, SWT.SINGLE | SWT.BORDER); exec.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); exec.addKeyListener(new KeyAdapter() { @Override/*from w w w . j av a 2s . com*/ public void keyReleased(KeyEvent e) { validate(); } }); Button btn = new Button(top, SWT.NONE); btn.setText("..."); btn.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); btn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog fd = new FileDialog(getShell(), SWT.OPEN); fd.setFileName(exec.getText()); String filename = fd.open(); if (filename != null) { exec.setText(filename); validate(); } } }); stdoutCheck = new Button(top, SWT.CHECK); stdoutCheck.setText("Capture stdout?"); stdoutCheck.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { validate(); } }); stdout = new Text(top, SWT.SINGLE | SWT.BORDER); stdout.setText("stdout"); stdout.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1, 1)); stdout.setEnabled(stdoutCheck.getSelection()); stdout.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { validate(); } }); joinStdoutStderrCheck = new Button(top, SWT.CHECK); joinStdoutStderrCheck.setText("also stderr?"); joinStdoutStderrCheck.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { validate(); } }); stderrCheck = new Button(top, SWT.CHECK); stderrCheck.setText("Capture stderr?"); stderrCheck.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { validate(); } }); stderr = new Text(top, SWT.SINGLE | SWT.BORDER); stderr.setText("stderr"); stderr.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1)); stderr.setEnabled(stdoutCheck.getSelection()); stderr.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { validate(); } }); lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); lbl.setText("Options:"); viewer = new ListViewer(top, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION); viewer.setUseHashlookup(true); viewer.getList().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { validate(); } }); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { CommandLineOption option = (CommandLineOption) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); switch (option.getType()) { case VALUE: if (new CommandLineValueDialog(top.getShell(), option).open() == Dialog.OK) { viewer.refresh(); validate(); } break; case PARAMETER: if (new CommandLineParameterDialog(top.getShell(), option, parameters.get(option)) .open() == Dialog.OK) { viewer.refresh(); validate(); } break; case DATA: if (new CommandLineDataDialog(top.getShell(), option, data.get(option)).open() == Dialog.OK) { viewer.refresh(); validate(); } break; } } }); // content viewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return options.toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); viewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { if (element instanceof CommandLineOption) { return getOptionString((CommandLineOption) element); } return element.toString(); } }); Composite buttons = new Composite(top, SWT.NULL); buttons.setLayout(new GridLayout()); addValue = new Button(buttons, SWT.PUSH); addValue.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); addValue.setText("Add Value"); addValue.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CommandLineOption option = new CommandLineOption(); CommandLineValueDialog dlg = new CommandLineValueDialog(top.getShell(), option); if (dlg.open() == Dialog.OK) { options.add(option); viewer.refresh(); validate(); } } }); addParam = new Button(buttons, SWT.PUSH); addParam.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); addParam.setText("Add Parameter"); addParam.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CommandLineOption option = new CommandLineOption(); WorkflowToolParameter param = new WorkflowToolParameter(); CommandLineParameterDialog dlg = new CommandLineParameterDialog(top.getShell(), option, param); if (dlg.open() == Dialog.OK) { options.add(option); parameters.put(option, param); viewer.refresh(); validate(); } } }); addData = new Button(buttons, SWT.PUSH); addData.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); addData.setText("Add Data"); addData.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CommandLineOption option = new CommandLineOption(); WorkflowToolData data = new WorkflowToolData(); CommandLineDataDialog dlg = new CommandLineDataDialog(top.getShell(), option, data); if (dlg.open() == Dialog.OK) { options.add(option); CommandLineWizardPage.this.data.put(option, data); viewer.refresh(); validate(); } } }); edit = new Button(buttons, SWT.PUSH); edit.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); edit.setText("Edit"); edit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CommandLineOption option = (CommandLineOption) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); switch (option.getType()) { case VALUE: if (new CommandLineValueDialog(top.getShell(), option).open() == Dialog.OK) { viewer.refresh(); validate(); } break; case PARAMETER: if (new CommandLineParameterDialog(top.getShell(), option, parameters.get(option)) .open() == Dialog.OK) { viewer.refresh(); validate(); } break; case DATA: if (new CommandLineDataDialog(top.getShell(), option, data.get(option)).open() == Dialog.OK) { viewer.refresh(); validate(); } break; } } }); del = new Button(buttons, SWT.PUSH); del.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); del.setText("Delete"); del.setEnabled(false); del.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Object obj = ((IStructuredSelection) viewer.getSelection()).getFirstElement(); options.remove(obj); viewer.remove(obj); validate(); } }); up = new Button(buttons, SWT.PUSH); up.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); up.setText("Up"); up.setEnabled(false); up.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int idx = viewer.getList().getSelectionIndex(); CommandLineOption o = options.get(idx); options.set(idx, options.get(idx - 1)); options.set(idx - 1, o); viewer.refresh(); validate(); } }); down = new Button(buttons, SWT.PUSH); down.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); down.setText("Down"); down.setEnabled(false); down.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { int idx = viewer.getList().getSelectionIndex(); CommandLineOption o = options.get(idx); options.set(idx, options.get(idx + 1)); options.set(idx + 1, o); viewer.refresh(); validate(); } }); commandline = new Text(top, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.WRAP); commandline.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 3, 1)); commandline.setEditable(false); // set values from old tool if (oldtool != null) { Transaction transaction = null; try { transaction = SpringData.getTransaction(); transaction.start(); CommandLineImplementation impl = SpringData.JSONToObject(oldtool.getImplementation(), CommandLineImplementation.class); exec.setText(impl.getExecutable()); // waitGUICheck.setSelection(impl.isGuiwait()); if (impl.getCaptureStdOut() != null) { stdoutCheck.setSelection(true); // oldtool.get // WorkflowToolDataBean wtdb = oldtool.getOutput(oldexternal.getCaptureStdout().getRefid()); // stdout.setText(wtdb.getTitle()); } joinStdoutStderrCheck.setSelection(impl.isJoinStdOutStdErr()); if (impl.getCaptureStdErr() != null) { stderrCheck.setSelection(true); } // ArrayList<OptionOrder> options = new ArrayList<OptionOrder>(); // for (Cmdoption cmdopt : oldexternal.getOption()) { // for (Optionvalue opt : cmdopt.getValue()) { // ToolOption to = new ToolOption(); // to.setType(ToolOptionType.VALUE); // if (opt.getFlag() != null) { // to.setFlag(opt.getFlag()); // } // if (opt.getValue() != null) { // to.setValue(opt.getValue()); // } // options.add(new OptionOrder(opt.getOrder(), to)); // } // for (Optionparameter opt : cmdopt.getParameter()) { // ToolOption to = new ToolOption(); // to.setType(ToolOptionType.PARAMETER); // if (opt.getFlag() != null) { // to.setFlag(opt.getFlag()); // } // to.setParameter(oldtool.getParameter(opt.getRefid())); // options.add(new OptionOrder(opt.getOrder(), to)); // } // for (Optiondata opt : cmdopt.getData()) { // if (opt.getInput() != null) { // ToolOption to = new ToolOption(); // to.setType(ToolOptionType.INPUT); // if (opt.getFlag() != null) { // to.setFlag(opt.getFlag()); // } // ToolInput input = new ToolInput(); // input.setCommandLine(opt.isCommandline()); // input.setInput(oldtool.getInput(opt.getInput())); // to.setInput(input); // if (opt.getOutput() != null) { // input.setAlsoOutput(true); // input.setOutput(oldtool.getOutput(opt.getOutput())); // } // options.add(new OptionOrder(opt.getOrder(), to)); // } else { // ToolOption to = new ToolOption(); // to.setType(ToolOptionType.OUTPUT); // if (opt.getFlag() != null) { // to.setFlag(opt.getFlag()); // } // ToolOutput out = new ToolOutput(); // out.setCommandLine(opt.isCommandline()); // out.setOutput(oldtool.getOutput(opt.getOutput())); // to.setOutput(out); // options.add(new OptionOrder(opt.getOrder(), to)); // } // } transaction.commit(); } catch (Exception exc) { logger.warn("Could nto get information from old tool.", exc); } } viewer.setInput(options); validate(); setControl(top); }
From source file:edu.illinois.ncsa.datawolf.executor.commandline.wizard.ToolResourceWizardPage.java
License:Open Source License
public void createControl(Composite parent) { final Composite top = new Composite(parent, SWT.NONE); top.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); top.setLayout(new GridLayout(3, false)); Label lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); lbl.setText("Files:"); filelist = new ListViewer(top); filelist.getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); filelist.setContentProvider(new IStructuredContentProvider() { public void dispose() { }/*from w w w .ja va 2 s .co m*/ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public Object[] getElements(Object inputElement) { return fileDescriptors.toArray(new FileDescriptor[fileDescriptors.size()]); } }); filelist.setInput(fileDescriptors); filelist.setLabelProvider(new LabelProvider()); filelist.getList().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { validate(); } }); if (oldtool != null) { for (FileDescriptor fd : oldtool.getBlobs()) { fileDescriptors.add(fd); } filelist.refresh(); } Composite buttons = new Composite(top, SWT.NONE); buttons.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, true)); GridLayout gl = new GridLayout(1, false); gl.marginWidth = 0; buttons.setLayout(gl); add = new Button(buttons, SWT.PUSH); add.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); add.setText("Add..."); add.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog fd = new FileDialog(top.getShell(), SWT.MULTI); fd.setFilterExtensions(ext.toArray(new String[ext.size()])); fd.setFilterNames(name.toArray(new String[name.size()])); fd.setText("Select files to add:"); if (fd.open() != null) { for (String filename : fd.getFileNames()) { boolean found = false; for (FileDescriptor desc : fileDescriptors) { if (desc.getId().equals(UNSAVED_DATA) && desc.getFilename().equals(filename)) { found = true; break; } } if (!found) { FileDescriptor desc = new FileDescriptor(); desc.setId(UNSAVED_DATA); desc.setFilename(filename); desc.setDataURL("file:" + fd.getFilterPath() + File.separator + filename); fileDescriptors.add(desc); } } } filelist.refresh(); validate(); } }); del = new Button(buttons, SWT.PUSH); del.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false)); del.setText("Remove"); del.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fileDescriptors.remove(filelist.getList().getSelectionIndices()); validate(); } }); validate(); setControl(top); }
From source file:edu.illinois.ncsa.datawolf.executor.java.wizard.ToolSelectWizardPage.java
License:Open Source License
public void createControl(Composite parent) { final Composite top = new Composite(parent, SWT.NONE); top.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true)); top.setLayout(new GridLayout(2, false)); Label lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false, 2, 1)); lbl.setText("Available tools"); int selection = (oldtool == null) ? SWT.MULTI : SWT.SINGLE; lvTools = new ListViewer(top, selection | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); lvTools.getList().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1)); lvTools.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return tools.toArray(); }/* w ww .j a va 2s . co m*/ public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); lvTools.setLabelProvider(new LabelProvider()); lvTools.setInput(tools); lvTools.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { validate(); } }); lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); lbl.setText("Tool Name"); txtName = new Text(top, SWT.NONE | SWT.BORDER | SWT.SINGLE); txtName.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); txtName.setEditable(false); lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); lbl.setText("Tool Version"); txtVersion = new Text(top, SWT.NONE | SWT.BORDER | SWT.SINGLE); txtVersion.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false)); txtVersion.setEditable(false); lbl = new Label(top, SWT.NONE); lbl.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false, 2, 1)); lbl.setText("Tool Description"); txtDescription = new Text(top, SWT.NONE | SWT.BORDER | SWT.MULTI); txtDescription.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1)); txtDescription.setEditable(false); validate(); setControl(top); }