List of usage examples for org.eclipse.jface.viewers TreeViewer getTree
public Tree getTree()
From source file:net.rim.ejde.internal.ui.editors.model.BlackBerryProjectOutlinePage.java
License:Open Source License
public void updateTreeSelection(Control control) { TreeViewer viewer = getTreeViewer(); Tree tree = viewer.getTree(); TreeItem item = null;/*w w w . jav a 2s. c om*/ if (tree.getSelection() == null) { return; } if (control instanceof Table) { Table table = (Table) control; TableItem selections[] = table.getSelection(); if (selections.length > 0) { item = getTableItem(tree, selections[0].getText(2)); } } else { item = getControlItem(tree, control.getData(BlackBerryProjectPropertiesPage.CONTROL_TITLE_KEY).toString()); } if (item != null) { TreeItem selectedItem[] = tree.getSelection(); if ((selectedItem.length > 0) && selectedItem[0].equals(item)) { return; } tree.deselectAll(); tree.select(item); } }
From source file:net.rim.ejde.internal.ui.editors.model.BlackBerryProjectOutlinePage.java
License:Open Source License
public void updateTreeSelection(BlackBerryProjectPropertiesPage page) { TreeViewer viewer = getTreeViewer(); Tree tree = viewer.getTree(); TreeItem item = getPageItem(tree, page.getTitle()); if (item != null) { TreeItem selectedItem[] = tree.getSelection(); if ((selectedItem.length > 0) && selectedItem[0].equals(item)) { return; }/*w w w .j a v a 2s . c om*/ tree.deselectAll(); tree.select(item); } }
From source file:net.sf.eclipsensis.help.NSISHTMLHelp.java
License:Open Source License
private Composite createContentsTab(Composite parent) { Composite contentsComposite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(1, false); contentsComposite.setLayout(layout); Tree tree = new Tree(contentsComposite, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); mContentsViewer = new TreeViewer(tree); final ITreeContentProvider contentProvider = new EmptyContentProvider() { @Override/* w w w . j a va 2 s .com*/ public Object[] getChildren(Object parentElement) { if (parentElement instanceof NSISHelpTOC) { return ((NSISHelpTOC) parentElement).getChildren().toArray(); } else if (parentElement instanceof NSISHelpTOCNode) { return ((NSISHelpTOCNode) parentElement).getChildren().toArray(); } return null; } @Override public Object getParent(Object element) { if (element instanceof NSISHelpTOCNode) { return ((NSISHelpTOCNode) element).getParent(); } return null; } @Override public boolean hasChildren(Object element) { if (element instanceof NSISHelpTOC) { return !Common.isEmptyCollection(((NSISHelpTOC) element).getChildren()); } else if (element instanceof NSISHelpTOCNode) { return !Common.isEmptyCollection(((NSISHelpTOCNode) element).getChildren()); } return false; } @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof NSISHelpTOC) { return getChildren(inputElement); } return null; } }; mContentsViewer.setContentProvider(contentProvider); ImageManager imageManager = EclipseNSISPlugin.getImageManager(); final Image helpClosed = imageManager.getImage(EclipseNSISPlugin.getResourceString("help.closed.icon")); //$NON-NLS-1$ final Image helpOpen = imageManager.getImage(EclipseNSISPlugin.getResourceString("help.open.icon")); //$NON-NLS-1$ final Image helpPage = imageManager.getImage(EclipseNSISPlugin.getResourceString("help.page.icon")); //$NON-NLS-1$ mContentsViewer.setLabelProvider(new LabelProvider() { @Override public Image getImage(Object element) { if (element instanceof NSISHelpTOCNode) { NSISHelpTOCNode node = (NSISHelpTOCNode) element; if (Common.isEmptyCollection(node.getChildren())) { return helpPage; } else { if (mContentsViewer.getExpandedState(element)) { return helpOpen; } else { return helpClosed; } } } return super.getImage(element); } @Override public String getText(Object element) { if (element instanceof NSISHelpTOCNode) { return ((NSISHelpTOCNode) element).getName(); } return super.getText(element); } }); mContentsViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (!event.getSelection().isEmpty()) { Object element = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (element instanceof NSISHelpTOCNode) { String url = ((NSISHelpTOCNode) element).getURL(); if (!Common.stringsAreEqual(url, mBrowser.getUrl(), true)) { mBrowser.setUrl(url); } } } } }); mContentsViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { updateLabels(mContentsViewer, event); } /** * @param treeViewer * @param event */ private void updateLabels(final TreeViewer treeViewer, TreeExpansionEvent event) { final Object element = event.getElement(); if (element instanceof NSISHelpTOCNode) { treeViewer.getTree().getDisplay().asyncExec(new Runnable() { public void run() { treeViewer.update(element, null); } }); } } public void treeExpanded(TreeExpansionEvent event) { updateLabels(mContentsViewer, event); } }); return contentsComposite; }
From source file:net.sf.eclipsensis.wizard.NSISWizardContentsPage.java
License:Open Source License
private void configureDND(final TreeViewer tv) { Transfer[] types = new Transfer[] { ContentsTransfer.INSTANCE }; int operations = DND.DROP_MOVE | DND.DROP_COPY; tv.addDragSupport(operations, types, new DragSourceListener() { public void dragFinished(DragSourceEvent event) { }// w ww. jav a2 s . co m public void dragSetData(DragSourceEvent event) { List<INSISInstallElement> selection = getSelectionList(tv); INSISInstallElement parent = getSelectionParent(selection); if (parent == null) { event.data = null; } else { event.data = new ContentsTransferData(parent, selection); } } public void dragStart(DragSourceEvent event) { List<INSISInstallElement> selection = getSelectionList(tv); INSISInstallElement parent = getSelectionParent(selection); if (parent == null) { event.doit = false; } } }); tv.addDropSupport(operations, new Transfer[] { ContentsTransfer.INSTANCE, FileTransfer.getInstance() }, new DropTargetAdapter() { private int determineOperation(String[] files, String[] types, INSISInstallElement target, DropTargetEvent event, int defaultFeedback) { if (target == null) { return DND.DROP_NONE; } int operation = DND.DROP_COPY; boolean filesOnly = true; for (int i = 0; i < files.length; i++) { if (IOUtility.isValidFile(files[i])) { if (files[i].regionMatches(true, files[i].length() - REG_FILE_EXTENSION.length(), REG_FILE_EXTENSION, 0, REG_FILE_EXTENSION.length())) { types[i] = NSISInstallRegistryValue.TYPE; } else { types[i] = NSISInstallFile.TYPE; } } else { //Directory filesOnly = false; types[i] = NSISInstallDirectory.TYPE; } } NSISInstallFiles.FileItem fileItem = null; if (filesOnly) { fileItem = new NSISInstallFiles.FileItem(); } for (int i = 0; i < types.length; i++) { if (!target.acceptsChildType(types[i])) { if (types[i].equals(NSISInstallRegistryValue.TYPE)) { types[i] = NSISInstallFile.TYPE; if (target.acceptsChildType(types[i])) { continue; } } if (fileItem != null && types[i].equals(NSISInstallFile.TYPE) && filesOnly) { fileItem.setName(files[i]); if (target.canAddChild(fileItem)) { types[i] = NSISInstallFiles.FileItem.FILEITEM_TYPE; continue; } } operation = DND.DROP_NONE; break; } } return operation; } private int determineOperation(List<INSISInstallElement> selection, INSISInstallElement oldParent, INSISInstallElement newParent, DropTargetEvent event, int defaultFeedback) { int operation = DND.DROP_NONE; if (newParent != null) { boolean shift = WinAPI.INSTANCE.getKeyState(WinAPI.VK_SHIFT) < 0; boolean ctrl = WinAPI.INSTANCE.getKeyState(WinAPI.VK_CTRL) < 0; if (ctrl && shift) { operation = DND.DROP_NONE; } else { if (ctrl) { operation = DND.DROP_COPY; } else if (shift) { operation = DND.DROP_MOVE; } else { operation = DND.DROP_DEFAULT; } } if (newParent != oldParent || operation == DND.DROP_COPY) { for (Iterator<INSISInstallElement> iter = selection.iterator(); iter.hasNext();) { if (!newParent.canAddChild(iter.next())) { operation = DND.DROP_NONE; break; } } } if (operation != DND.DROP_NONE && event != null) { event.feedback |= defaultFeedback; } } return operation; } @Override public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; int detail = DND.DROP_NONE; if (event.item instanceof TreeItem) { Tree tree = tv.getTree(); TreeItem item = (TreeItem) event.item; Object data = item.getData(); if (data instanceof INSISInstallElement) { INSISInstallElement element = (INSISInstallElement) data; if (ContentsTransfer.INSTANCE.isSupportedType(event.currentDataType)) { ContentsTransferData transferData = (ContentsTransferData) ContentsTransfer.INSTANCE .nativeToJava(event.currentDataType); if (transferData.parent != null) { Point pt = tree.getDisplay().map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { detail = determineOperation(transferData.selection, transferData.parent, element.getParent(), event, DND.FEEDBACK_INSERT_BEFORE); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { detail = determineOperation(transferData.selection, transferData.parent, element.getParent(), event, DND.FEEDBACK_INSERT_AFTER); } else { detail = determineOperation(transferData.selection, transferData.parent, element, event, DND.FEEDBACK_SELECT); } } } else if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { Object transferData = FileTransfer.getInstance() .nativeToJava(event.currentDataType); if (transferData instanceof String[]) { String[] files = (String[]) transferData; String[] types = new String[files.length]; Point pt = tree.getDisplay().map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { detail = determineOperation(files, types, element.getParent(), event, DND.FEEDBACK_INSERT_BEFORE); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { detail = determineOperation(files, types, element.getParent(), event, DND.FEEDBACK_INSERT_AFTER); } else { detail = determineOperation(files, types, element, event, DND.FEEDBACK_SELECT); } } } } } event.detail = detail; } private void doDrop(List<INSISInstallElement> selection, int detail, INSISInstallElement oldParent, INSISInstallElement newParent, int index) { int index2 = index; try { for (Iterator<INSISInstallElement> iter = selection.iterator(); iter.hasNext();) { INSISInstallElement el = iter.next(); switch (detail) { case DND.DROP_COPY: el = (INSISInstallElement) el.clone(); //$FALL-THROUGH$ case DND.DROP_DEFAULT: case DND.DROP_MOVE: if (oldParent == newParent) { int n = oldParent.indexOf(el); if (n < index2) { index2--; } oldParent.removeChild(el); } newParent.addChild(index2++, el); } } setPageComplete(validatePage(VALIDATE_ALL)); } catch (Exception ex) { delayedValidateAfterError(ex.getLocalizedMessage(), 2000); } finally { tv.refresh(true); if (newParent instanceof AbstractNSISInstallGroup) { ((AbstractNSISInstallGroup) newParent).setExpanded(true); expandGroup(tv, (AbstractNSISInstallGroup) newParent); } } } private void doDrop(String[] files, String[] types, INSISInstallElement target, int index) { int index2 = index; try { RegistryImporter importer = null; RegistryImportStrategy strategy = null; for (int i = 0; i < files.length; i++) { INSISInstallElement el = null; if (types[i].equals(NSISInstallFile.TYPE)) { el = new NSISInstallFile(); ((NSISInstallFile) el).setName(files[i]); } else if (types[i].equals(NSISInstallDirectory.TYPE)) { el = new NSISInstallDirectory(); ((NSISInstallDirectory) el).setName(files[i]); } else if (types[i].equals(NSISInstallFiles.FileItem.FILEITEM_TYPE)) { el = new NSISInstallFiles.FileItem(); ((NSISInstallFiles.FileItem) el).setName(files[i]); } else if (types[i].equals(NSISInstallRegistryValue.TYPE)) { try { if (importer == null || strategy == null) { importer = new RegistryImporter(); strategy = new RegistryImportStrategy(); } else { strategy.reset(); } importer.importRegFile(getShell(), files[i], strategy); List<NSISInstallRegistryItem> list = strategy.getRegistryItems(); if (!Common.isEmptyCollection(list)) { for (Iterator<NSISInstallRegistryItem> iter = list.iterator(); iter .hasNext();) { NSISInstallRegistryItem element = iter.next(); target.addChild(index2++, element); } } continue; } catch (Exception ex) { } el = new NSISInstallFile(); ((NSISInstallFile) el).setName(files[i]); } if (el != null) { target.addChild(index2++, el); } } setPageComplete(validatePage(VALIDATE_ALL)); } catch (Exception ex) { delayedValidateAfterError(ex.getLocalizedMessage(), 2000); } finally { tv.refresh(true); if (target instanceof AbstractNSISInstallGroup) { ((AbstractNSISInstallGroup) target).setExpanded(true); expandGroup(tv, (AbstractNSISInstallGroup) target); } } } @Override public void drop(DropTargetEvent event) { int detail = DND.DROP_NONE; if (event.item instanceof TreeItem) { Tree tree = tv.getTree(); TreeItem item = (TreeItem) event.item; Object data = item.getData(); if (data instanceof INSISInstallElement) { INSISInstallElement element = (INSISInstallElement) data; if (ContentsTransfer.INSTANCE.isSupportedType(event.currentDataType)) { if (event.data instanceof ContentsTransferData) { ContentsTransferData transferData = (ContentsTransferData) event.data; if (transferData.parent != null) { Point pt = tree.getDisplay().map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { detail = determineOperation(transferData.selection, transferData.parent, element.getParent(), null, 0); if (detail != DND.DROP_NONE) { doDrop(transferData.selection, detail, transferData.parent, element.getParent(), element.getParent().indexOf(element)); } } else if (pt.y > bounds.y + 2 * bounds.height / 3) { detail = determineOperation(transferData.selection, transferData.parent, element.getParent(), null, 0); if (detail != DND.DROP_NONE) { doDrop(transferData.selection, detail, transferData.parent, element.getParent(), element.getParent().indexOf(element) + 1); } } else { detail = determineOperation(transferData.selection, transferData.parent, element, null, 0); if (detail != DND.DROP_NONE) { doDrop(transferData.selection, detail, transferData.parent, element, element.getChildCount()); } } } } } else if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { if (event.data instanceof String[]) { String[] files = (String[]) event.data; String[] types = new String[files.length]; Point pt = tree.getDisplay().map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { detail = determineOperation(files, types, element.getParent(), event, DND.FEEDBACK_INSERT_BEFORE); if (detail != DND.DROP_NONE) { doDrop(files, types, element.getParent(), element.getParent().indexOf(element)); } } else if (pt.y > bounds.y + 2 * bounds.height / 3) { detail = determineOperation(files, types, element.getParent(), event, DND.FEEDBACK_INSERT_AFTER); if (detail != DND.DROP_NONE) { doDrop(files, types, element.getParent(), element.getParent().indexOf(element) + 1); } } else { detail = determineOperation(files, types, element, event, DND.FEEDBACK_SELECT); if (detail != DND.DROP_NONE) { doDrop(files, types, element, element.getChildCount()); } } } } } } event.detail = detail; } }); }
From source file:net.sourceforge.sqlexplorer.oracle.actions.explain.ExplainExecution.java
License:Open Source License
private void displayResults(final ExplainNode node, final Query query) { getEditor().getSite().getShell().getDisplay().asyncExec(new Runnable() { public void run() { CTabItem resultsTab = allocateResultsTab(query); try { Composite composite = resultsTab.getParent(); GridLayout gLayout = new GridLayout(); gLayout.numColumns = 2;// w ww . ja va 2 s . co m gLayout.marginLeft = 0; gLayout.horizontalSpacing = 0; gLayout.verticalSpacing = 0; gLayout.marginWidth = 0; gLayout.marginHeight = 0; composite.setLayout(gLayout); composite.setData("parenttab", resultsTab.getParent()); Composite pp = new Composite(composite, SWT.NULL); pp.setLayout(new FillLayout()); pp.setLayoutData(new GridData(GridData.FILL_BOTH)); TreeViewer tv = new TreeViewer(pp, SWT.BORDER | SWT.FULL_SELECTION); Tree table = tv.getTree(); table.setLinesVisible(true); table.setHeaderVisible(true); TreeColumn tc = new TreeColumn(table, SWT.NULL); tc.setText(""); tc = new TreeColumn(table, SWT.NULL); tc.setText("Cost"); tc = new TreeColumn(table, SWT.NULL); tc.setText("Cardinality"); TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(6, 150, true)); tableLayout.addColumnData(new ColumnWeightData(1, 50, true)); tableLayout.addColumnData(new ColumnWeightData(1, 50, true)); table.setLayout(tableLayout); tv.setContentProvider(new ITreeContentProvider() { public void dispose() { } public Object[] getChildren(Object parentElement) { return ((ExplainNode) parentElement).getChildren(); } public Object[] getElements(Object inputElement) { ExplainNode nd = ((ExplainNode) inputElement); return nd.getChildren(); } public Object getParent(Object element) { return ((ExplainNode) element).getParent(); } public boolean hasChildren(Object element) { if (((ExplainNode) element).getChildren().length > 0) return true; return false; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); tv.setLabelProvider(new TreeLabelProvider() { }); tv.setInput(node); tv.refresh(); tv.expandAll(); // make columns full size for (int i = 0; i < table.getColumnCount(); i++) { table.getColumn(i).pack(); } /* final Composite parent = composite; table.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { switch (e.keyCode) { case SWT.F5: // refresh SQL Results try { Object o = parent.getData("parenttab"); if (o != null) { AbstractSQLExecution sqlExec = (AbstractSQLExecution) ((TabItem) o).getData(); if (sqlExec != null) { sqlExec.startExecution(); } } } catch (Exception e1) { SQLExplorerPlugin.error("Error refreshing", e1); } break; } } });*/ // add context menu to table & cursor final ExplainPlanActionGroup actionGroup = new ExplainPlanActionGroup(tv, node.getChildren()[0]); MenuManager menuManager = new MenuManager("ExplainPlanContextMenu"); menuManager.setRemoveAllWhenShown(true); Menu contextMenu = menuManager.createContextMenu(table); tv.getControl().setMenu(contextMenu); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { actionGroup.fillContextMenu(manager); } }); composite.layout(); composite.redraw(); } catch (Exception e) { // add message if (resultsTab != null) { Composite composite = resultsTab.getParent(); String message = e.getMessage(); Label errorLabel = new Label(composite, SWT.FILL); errorLabel.setText(message); errorLabel.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); } SQLExplorerPlugin.error("Error creating explain tab", e); } }; }); }
From source file:net.sourceforge.sqlexplorer.plugin.views.DatabaseStructureView.java
License:Open Source License
/** * Add a new session to the database structure view. This will create a new tab for the session. * /*w w w .j a va 2s .c o m*/ * @param session */ private void addSession(final MetaDataSession session) throws SQLCannotConnectException { if (_allSessions.contains(session)) { return; } try { session.getMetaData(); session.setAutoCommit(true); } catch (SQLCannotConnectException e) { SQLExplorerPlugin.error(e); throw e; } catch (SQLException e) { SQLExplorerPlugin.error(e); MessageDialog.openError(getSite().getShell(), "Cannot connect", e.getMessage()); } DatabaseNode rootNode = session.getRoot(); if (rootNode == null) { return; } _allSessions.add(session); if (_filterAction != null) { _filterAction.setEnabled(true); } if (_tabFolder == null || _tabFolder.isDisposed()) { clearParent(); // create tab folder for different sessions _tabFolder = new CTabFolder(_parent, SWT.TOP | SWT.CLOSE); // add listener to keep both views on the same active tab _tabFolder.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // set the selected node in the detail view. DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage() .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL); synchronizeDetailView(detailView); } }); // Set up a gradient background for the selected tab Display display = getSite().getShell().getDisplay(); _tabFolder.setSelectionBackground( new Color[] { display.getSystemColor(SWT.COLOR_WHITE), new Color(null, 211, 225, 250), new Color(null, 175, 201, 246), IConstants.TAB_BORDER_COLOR }, new int[] { 25, 50, 75 }, true); // Add a listener to handle the close button on each tab _tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() { @Override public void close(CTabFolderEvent event) { CTabItem tabItem = (CTabItem) event.item; TabData tabData = (TabData) tabItem.getData(); _allSessions.remove(tabData.session); event.doit = true; } }); _parent.layout(); _parent.redraw(); } // create tab final CTabItem tabItem = new CTabItem(_tabFolder, SWT.NULL); TabData tabData = new TabData(); tabItem.setData(tabData); tabData.session = session; // set tab text String labelText = session.getUser().getDescription(); tabItem.setText(labelText); // create composite for our outline Composite composite = new Composite(_tabFolder, SWT.NULL); composite.setLayout(new FillLayout()); tabItem.setControl(composite); // create outline final TreeViewer treeViewer = new TreeViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.BORDER); tabData.treeViewer = treeViewer; // add drag support // TODO improve drag support options Transfer[] transfers = new Transfer[] { TableNodeTransfer.getInstance() }; treeViewer.addDragSupport(DND.DROP_COPY, transfers, new DragSourceListener() { public void dragFinished(DragSourceEvent event) { System.out.println("$drag finished"); TableNodeTransfer.getInstance().setSelection(null); } public void dragSetData(DragSourceEvent event) { Object sel = ((IStructuredSelection) treeViewer.getSelection()).getFirstElement(); event.data = sel; } public void dragStart(DragSourceEvent event) { event.doit = !treeViewer.getSelection().isEmpty(); if (event.doit) { Object sel = ((IStructuredSelection) treeViewer.getSelection()).getFirstElement(); if (!(sel instanceof TableNode)) { event.doit = false; } else { TableNode tn = (TableNode) sel; TableNodeTransfer.getInstance().setSelection(tn); if (!tn.isTable()) { event.doit = false; } } } } }); // use hash lookup to improve performance treeViewer.setUseHashlookup(true); // add content and label provider treeViewer.setContentProvider(new DBTreeContentProvider()); treeViewer.setLabelProvider(new DBTreeLabelProvider()); // set input session treeViewer.setInput(rootNode); // add selection change listener, so we can update detail view as // required. treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent ev) { // set the selected node in the detail view. DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage() .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL); synchronizeDetailView(detailView); } }); // bring detail to front on doubleclick of node treeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { try { // find view DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage() .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL); if (detailView == null) { getSite().getPage().showView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL); } getSite().getPage().bringToTop(detailView); synchronizeDetailView(detailView); } catch (Exception e) { // fail silent } } }); // add expand/collapse listener treeViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { // refresh the node to change image INode node = (INode) event.getElement(); node.setExpanded(false); TreeViewer viewer = (TreeViewer) event.getSource(); viewer.update(node, null); } public void treeExpanded(TreeExpansionEvent event) { // refresh the node to change image INode node = (INode) event.getElement(); node.setExpanded(true); TreeViewer viewer = (TreeViewer) event.getSource(); viewer.update(node, null); } }); // set new tab as the active one _tabFolder.setSelection(_tabFolder.getItemCount() - 1); // update detail view DatabaseDetailView detailView = (DatabaseDetailView) getSite().getPage() .findView(SqlexplorerViewConstants.SQLEXPLORER_DBDETAIL); if (detailView != null) { // synchronze detail view with new session synchronizeDetailView(detailView); // bring detail to top of the view stack getSite().getPage().bringToTop(detailView); } // refresh view composite.layout(); _tabFolder.layout(); _tabFolder.redraw(); // bring this view to top of the view stack, above detail if needed.. getSite().getPage().bringToTop(this); // add context menu final DBTreeActionGroup actionGroup = new DBTreeActionGroup(treeViewer); MenuManager menuManager = new MenuManager("DBTreeContextMenu"); menuManager.setRemoveAllWhenShown(true); Menu contextMenu = menuManager.createContextMenu(treeViewer.getTree()); treeViewer.getTree().setMenu(contextMenu); menuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { actionGroup.fillContextMenu(manager); } }); // if (sessionSelectionMap.containsKey(tabData.session)) { // tabData.treeViewer.setSelection(sessionSelectionMap.get(tabData.session)); // sessionSelectionMap.remove(tabData.session); // _allSessions.remove(tabData.session); // } }
From source file:net.sourceforge.tagsea.core.ui.internal.actions.TagRenameAction.java
License:Open Source License
public TagRenameAction(TreeViewer treeViewer, ICellModifier modifier, String[] columnProperties) { this.tree = treeViewer.getTree(); this.modifier = modifier; this.columnProperties = columnProperties; this.editor = new TextCellEditor(tree, SWT.BORDER); this.editor.getControl().addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { }//from ww w. java 2 s.c om public void keyReleased(KeyEvent e) { if (e.character == SWT.ESC) { TagRenameAction.this.editor.deactivate(); TagRenameAction.this.treeEditor.setEditor(null); } } }); this.treeEditor = new TreeEditor(tree); this.editor.addListener(new CellListener()); tree.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { treeEditor.dispose(); editor.dispose(); } }); }
From source file:net.sourceforge.tagsea.resources.synchronize.ui.WaypointSynchronizePage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite page = new Composite(parent, SWT.NONE); page.setLayout(new GridLayout()); page.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); TreeViewer viewer = new TreeViewer(page, SWT.SINGLE); viewer.setContentProvider(new ProjectWaypointContentProvider()); viewer.setLabelProvider(new WaypointSynchronizeLabelProvider()); viewer.setInput(ResourcesPlugin.getWorkspace().getRoot()); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.getTree().addMouseListener(new MouseAdapter() { @Override/*ww w. jav a 2 s . c o m*/ public void mouseDoubleClick(MouseEvent e) { openEditor(); } }); viewer.getTree().addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e) { refreshEditor(); } }); this.control = page; this.viewer = viewer; TagSEAPlugin.addWaypointChangeListener(this); WaypointSynchronizerHelp.INSTANCE.addSynchronizeListener(this); }
From source file:net.sourceforge.texlipse.outline.TexOutlinePage.java
License:Open Source License
/** * Updates the outline with new content. Called by TexDocumentModel * through the editor. Saves the visible state of the outline, * sets the new content and restores the state. * * @param input the new outline input//from w w w . j a v a2 s . c o m */ public void update(TexOutlineInput input) { this.input = input; TreeViewer viewer = getTreeViewer(); if (viewer != null) { Control control = viewer.getControl(); if (control != null && !control.isDisposed()) { control.setRedraw(false); //First try smart update boolean succUpdate = ((TexContentProvider) viewer.getContentProvider()).updateElements(viewer, input.getRootNodes()); if (!succUpdate) { viewer.getTree().deselectAll(); // save viewer state Object[] expandedElements = viewer.getExpandedElements(); // set new input viewer.setInput(input.getRootNodes()); /*viewer.getContentProvider().inputChanged(viewer, null, input.getRootNodes()); viewer.refresh(true);*/ // restore viewer state viewer.setExpandedElements(expandedElements); } control.setRedraw(true); // disable the refresh button, enable context stuff outlineActions.get(ACTION_UPDATE).setEnabled(false); outlineActions.get(ACTION_COPY).setEnabled(true); outlineActions.get(ACTION_CUT).setEnabled(true); outlineActions.get(ACTION_PASTE).setEnabled(true); outlineActions.get(ACTION_DELETE).setEnabled(true); } } }
From source file:net.sourceforge.veditor.editor.HdlContentOutlinePage.java
License:Open Source License
public void createControl(Composite parent) { super.createControl(parent); TreeViewer viewer = getTreeViewer(); viewer.setContentProvider(new HdlContentOutlineProvider()); viewer.setLabelProvider(editor.getOutlineLabelProvider()); viewer.addSelectionChangedListener(this); viewer.addDoubleClickListener(this); viewer.addFilter(new SignalFilter()); viewer.addFilter(new PortFilter()); if (enableSort) { viewer.setSorter(new Sorter()); }/* w w w. j av a 2 s .c om*/ createToolbar(); createContextMenu(viewer.getTree()); IDocument doc = editor.getDocument(); if (doc != null) { viewer.setInput(doc); } }