List of usage examples for org.eclipse.jface.util OpenStrategy getOpenMethod
public static int getOpenMethod()
From source file:com.google.dart.tools.search.ui.text.AbstractTextSearchViewPage.java
License:Open Source License
private void createViewer(Composite parent, int layout) { if ((layout & FLAG_LAYOUT_FLAT) != 0) { TableViewer viewer = createTableViewer(parent); fViewer = viewer;/*from w w w . j av a2 s. c o m*/ configureTableViewer(viewer); } else if ((layout & FLAG_LAYOUT_TREE) != 0) { TreeViewer viewer = createTreeViewer(parent); fViewer = viewer; configureTreeViewer(viewer); fCollapseAllAction.setViewer(viewer); fExpandAllAction.setViewer(viewer); } fCopyToClipboardAction.setViewer(fViewer); fSelectAllAction.setViewer(fViewer); IToolBarManager tbm = getSite().getActionBars().getToolBarManager(); tbm.removeAll(); SearchView.createToolBarGroups(tbm); fillToolbar(tbm); tbm.update(false); new OpenAndLinkWithEditorHelper(fViewer) { @Override protected void activate(ISelection selection) { final int currentMode = OpenStrategy.getOpenMethod(); try { OpenStrategy.setOpenMethod(OpenStrategy.DOUBLE_CLICK); handleOpen(new OpenEvent(fViewer, selection)); } finally { OpenStrategy.setOpenMethod(currentMode); } } @Override protected void linkToEditor(ISelection selection) { // not supported by this part } @Override protected void open(ISelection selection, boolean activate) { handleOpen(new OpenEvent(fViewer, selection)); } }; fViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { fCurrentMatchIndex = -1; } }); fViewer.addSelectionChangedListener(fViewerAdapter); Menu menu = fMenu.createContextMenu(fViewer.getControl()); fViewer.getControl().setMenu(menu); updateLayoutActions(); getViewPart().updateLabel(); }
From source file:com.google.dart.tools.ui.internal.libraryview.LibraryExplorerActionGroup.java
License:Open Source License
/** * This handles double click actions to expand or collapse expandable elements in the Library * Explorer./*from w ww . j a v a2s .c om*/ */ void handleDoubleClick(DoubleClickEvent event) { TreeViewer viewer = part.getTreeViewer(); IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object element = selection.getFirstElement(); if (viewer.isExpandable(element)) { IAction openAction = navigateActionGroup.getEditAction(); if (openAction != null && openAction.isEnabled() && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK) { return; } if (selection instanceof ITreeSelection) { TreePath[] paths = ((ITreeSelection) selection).getPathsFor(element); for (int i = 0; i < paths.length; i++) { viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i])); } } else { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } } // if the Library Explorer ever has projects as top level elements, we may need to revisit this // else if (element instanceof IProject && !((IProject) element).isOpen()) { // OpenProjectAction openProjectAction = fProjectActionGroup.getOpenProjectAction(); // if (openProjectAction.isEnabled()) { // openProjectAction.run(); // } // } }
From source file:com.google.gwt.eclipse.oophm.breadcrumbs.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.//ww w. j a va 2 s . c om */ public void showMenu() { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()"); //$NON-NLS-1$ if (!fEnabled || fMenuIsShown) return; fMenuIsShown = true; fShell = new Shell(fToolBar.getShell(), SWT.TOOL | SWT.ON_TOP); if (DEBUG) System.out.println(" creating new shell"); //$NON-NLS-1$ GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; fShell.setLayout(layout); Composite composite = new Composite(fShell, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout gridLayout = new GridLayout(1, false); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; composite.setLayout(gridLayout); fDropDownViewer = new ProblemTreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); fDropDownViewer.setUseHashlookup(true); final Tree tree = (Tree) fDropDownViewer.getControl(); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Object input = fParent.getData(); fParent.getViewer().configureDropDownViewer(fDropDownViewer, input); fDropDownViewer.setInput(input); setShellBounds(fShell); fDropDownViewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ ISelection selection = event.getSelection(); if (!(selection instanceof IStructuredSelection)) return; Object element = ((IStructuredSelection) selection).getFirstElement(); if (element == null) return; openElement(element); } }); tree.addMouseListener(new MouseListener() { public void mouseDoubleClick(MouseEvent e) { } public void mouseDown(MouseEvent e) { } public void mouseUp(MouseEvent e) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$ if (e.button != 1) return; if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0) return; Item item = tree.getItem(new Point(e.x, e.y)); if (item == null) return; openElement(item.getData()); } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; public void mouseMove(MouseEvent e) { if (tree.equals(e.getSource())) { Object o = tree.getItem(new Point(e.x, e.y)); if (o instanceof TreeItem) { Rectangle clientArea = tree.getClientArea(); TreeItem currentItem = (TreeItem) o; if (!o.equals(fLastItem)) { fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { fLastItem }); } else if (e.y - clientArea.y < tree.getItemHeight() / 4) { // Scroll up if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index < 1) return; fLastItem = tree.getItem(index - 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollUp(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } else if (clientArea.y + clientArea.height - e.y < tree.getItemHeight() / 4) { // Scroll down if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index >= tree.getItemCount() - 1) return; fLastItem = tree.getItem(index + 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollDown(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } } } } }); tree.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { TreeItem[] selection = tree.getSelection(); if (selection.length != 1) return; int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) return; fShell.close(); } } public void keyReleased(KeyEvent e) { } }); fDropDownViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { tree.setRedraw(false); fShell.getDisplay().asyncExec(new Runnable() { public void run() { if (fShell.isDisposed()) return; try { resizeShell(fShell); } finally { tree.setRedraw(true); } } }); } }); int index = fParent.getViewer().getIndexOfItem(fParent); if (index < fParent.getViewer().getItemCount() - 1) { BreadcrumbItem childItem = fParent.getViewer().getItem(index + 1); Object child = childItem.getData(); fDropDownViewer.setSelection(new StructuredSelection(child), true); TreeItem[] selection = tree.getSelection(); if (selection.length > 0) { tree.setTopItem(selection[0]); } } fShell.setVisible(true); installCloser(fShell); }
From source file:com.jointlogic.breadcrumbs.sampleapp.api.TreeViewerDropDown.java
License:Open Source License
/** * Creates the viewer and installs the listeners. * /*from w ww .j av a2 s. c om*/ * @param composite * Parent control of the viewer. * @param site * Breadcrumb site for the viewer. * @param path * Path to the element for which the drop-down is being opened. * @return The control created for the viewer. */ public Control createDropDown(final Composite composite, final IBreadcrumbDropDownSite site, final TreePath path) { this.fDropDownSite = site; this.fDropDownViewer = createTreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL, path); this.fDropDownViewer.addOpenListener(new IOpenListener() { @Override public void open(final OpenEvent event) { if (DEBUG) { System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ } openElement(event.getSelection()); } }); final Tree tree = this.fDropDownViewer.getTree(); tree.addMouseListener(new MouseListener() { @Override public void mouseUp(final MouseEvent e) { if (DEBUG) { System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$ } if (e.button != 1) { return; } if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0) { return; } TreeItem item = tree.getItem(new Point(e.x, e.y)); if (item == null) { return; } final List pathElements = new LinkedList(); while (item != null) { final Object data = item.getData(); if (data == null) { return; } pathElements.add(0, data); item = item.getParentItem(); } openElement(new TreeSelection(new TreePath(pathElements.toArray()))); } @Override public void mouseDown(final MouseEvent e) { } @Override public void mouseDoubleClick(final MouseEvent e) { } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; long fLastScrollTime = 0; @Override public void mouseMove(final MouseEvent e) { if (tree.equals(e.getSource())) { final Object o = tree.getItem(new Point(e.x, e.y)); if (this.fLastItem == null ^ o == null) { tree.setCursor(o == null ? null : tree.getDisplay().getSystemCursor(SWT.CURSOR_HAND)); } if (o instanceof TreeItem) { final TreeItem currentItem = (TreeItem) o; if (!o.equals(this.fLastItem)) { this.fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { this.fLastItem }); } else if (System.currentTimeMillis() > this.fLastScrollTime + MOUSE_MOVE_SCROLL_DELAY) { if (e.y < tree.getItemHeight() / 4) { // Scroll up if (currentItem.getParentItem() == null) { final int index = tree.indexOf((TreeItem) o); if (index < 1) { return; } this.fLastItem = tree.getItem(index - 1); tree.setSelection(new TreeItem[] { this.fLastItem }); } else { final Point p = tree.toDisplay(e.x, e.y); final Item item = TreeViewerDropDown.this.fDropDownViewer.scrollUp(p.x, p.y); this.fLastScrollTime = System.currentTimeMillis(); if (item instanceof TreeItem) { this.fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { this.fLastItem }); } } } else if (e.y > tree.getBounds().height - tree.getItemHeight() / 4) { // Scroll down if (currentItem.getParentItem() == null) { final int index = tree.indexOf((TreeItem) o); if (index >= tree.getItemCount() - 1) { return; } this.fLastItem = tree.getItem(index + 1); tree.setSelection(new TreeItem[] { this.fLastItem }); } else { final Point p = tree.toDisplay(e.x, e.y); final Item item = TreeViewerDropDown.this.fDropDownViewer.scrollDown(p.x, p.y); this.fLastScrollTime = System.currentTimeMillis(); if (item instanceof TreeItem) { this.fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { this.fLastItem }); } } } } } else if (o == null) { this.fLastItem = null; } } } }); tree.addKeyListener(new KeyListener() { @Override public void keyPressed(final KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { // No elements in the tree (bug 262961). if (tree.getItemCount() == 0) { TreeViewerDropDown.this.fDropDownSite.close(); return; } final TreeItem[] selection = tree.getSelection(); if (selection.length != 1) { return; } final int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) { return; } TreeViewerDropDown.this.fDropDownSite.close(); } } @Override public void keyReleased(final KeyEvent e) { } }); this.fDropDownViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeCollapsed(final TreeExpansionEvent event) { } @Override public void treeExpanded(final TreeExpansionEvent event) { tree.setRedraw(false); new UIJob(tree.getDisplay(), "") { { setSystem(true); } @Override public IStatus runInUIThread(final IProgressMonitor monitor) { if (!tree.isDisposed()) { try { TreeViewerDropDown.this.fDropDownSite.updateSize(); } finally { tree.setRedraw(true); } } return Status.OK_STATUS; } }.schedule(); } }); return tree; }
From source file:com.puppetlabs.geppetto.pp.dsl.ui.editor.findrefs.PPReferenceSearchViewPage.java
License:Open Source License
protected OpenAndLinkWithEditorHelper createOpenAndLinkWithEditorHandler() { return new OpenAndLinkWithEditorHelper(viewer) { @Override/*from ww w . j a v a 2s.c o m*/ protected void activate(ISelection selection) { final int currentMode = OpenStrategy.getOpenMethod(); try { OpenStrategy.setOpenMethod(OpenStrategy.DOUBLE_CLICK); handleOpen(new OpenEvent(viewer, selection)); } finally { OpenStrategy.setOpenMethod(currentMode); } } @Override protected void linkToEditor(ISelection selection) { // not supported by this part } @Override protected void open(ISelection selection, boolean activate) { handleOpen(new OpenEvent(viewer, selection)); } }; }
From source file:com.puppetlabs.geppetto.puppetdb.ui.views.PuppetResourceEventsView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { Composite treeComp = new Composite(parent, SWT.NONE); viewer = new TreeViewer(treeComp, SWT.VIRTUAL | SWT.V_SCROLL); viewer.setContentProvider(new TreeNodeContentProvider(viewer)); viewer.addDoubleClickListener(this); viewer.getTree().addKeyListener(this); ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); new OpenAndLinkWithEditorHelper(viewer) { @Override//from w w w . j ava 2s . co m protected void activate(ISelection selection) { final int currentMode = OpenStrategy.getOpenMethod(); try { OpenStrategy.setOpenMethod(OpenStrategy.DOUBLE_CLICK); handleOpen(selection); } finally { OpenStrategy.setOpenMethod(currentMode); } } @Override protected void linkToEditor(ISelection selection) { // not supported by this part } @Override protected void open(ISelection selection, boolean activate) { handleOpen(selection); } }; viewer.addSelectionChangedListener(this); Tree tree = viewer.getTree(); TreeColumnLayout layout = new TreeColumnLayout(); treeComp.setLayout(layout); tree.setLinesVisible(true); tree.setHeaderVisible(true); createColumn("_UI_Description_title", layout, 600, new TreeNodeLabelProvider(0), true, LEFT); createColumn("_UI_Type_title", layout, 100, new TreeNodeLabelProvider(1), false, LEFT); createColumn("_UI_Title_title", layout, 150, new TreeNodeLabelProvider(2), true, LEFT); createColumn("_UI_Path_title", layout, 300, new TreeNodeLabelProvider(3), true, LEFT); createColumn("_UI_Line_title", layout, 50, new TreeNodeLabelProvider(4), false, RIGHT); createColumn("_UI_Timestamp_title", layout, 130, new TreeNodeLabelProvider(5), false, LEFT); createActions(tree); viewer.setInput(getPuppetDBConnections(viewer, puppetDBManager)); }
From source file:de.walware.ecommons.ui.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.//from w ww. jav a2 s .c om */ public void showMenu() { if (DEBUG) { System.out.println("BreadcrumbItemDropDown.showMenu()"); //$NON-NLS-1$ } if (!fEnabled || fMenuIsShown) { return; } fShell = new Shell(fToolBar.getShell(), SWT.RESIZE | SWT.TOOL | SWT.ON_TOP); if (DEBUG) { System.out.println(" creating new shell"); //$NON-NLS-1$ } try { fMenuIsShown = true; final GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; fShell.setLayout(layout); final Composite composite = new Composite(fShell, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final GridLayout gridLayout = new GridLayout(1, false); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; composite.setLayout(gridLayout); fDropDownViewer = createViewer(composite); fDropDownViewer.setUseHashlookup(true); final Tree tree = (Tree) fDropDownViewer.getControl(); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final Object input = fParent.getData(); fParent.getViewer().configureDropDownViewer(fDropDownViewer, input); fDropDownViewer.setInput(input); setShellBounds(fShell); fDropDownViewer.addOpenListener(new IOpenListener() { @Override public void open(final OpenEvent event) { if (DEBUG) { System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ } final ISelection selection = event.getSelection(); if (!(selection instanceof IStructuredSelection)) { return; } final Object element = ((IStructuredSelection) selection).getFirstElement(); if (element == null) { return; } openElement(element); } }); tree.addMouseListener(new MouseListener() { @Override public void mouseUp(final MouseEvent e) { if (DEBUG) { System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$ } if (e.button != 1) { return; } if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0) { return; } final Item item = tree.getItem(new Point(e.x, e.y)); if (item == null) { return; } openElement(item.getData()); } @Override public void mouseDown(final MouseEvent e) { } @Override public void mouseDoubleClick(final MouseEvent e) { } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; @Override public void mouseMove(final MouseEvent e) { if (tree.equals(e.getSource())) { final Object o = tree.getItem(new Point(e.x, e.y)); if (o instanceof TreeItem) { final Rectangle clientArea = tree.getClientArea(); final TreeItem currentItem = (TreeItem) o; if (!o.equals(fLastItem)) { fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { fLastItem }); } else if (e.y - clientArea.y < tree.getItemHeight() / 4) { // Scroll up if (currentItem.getParentItem() == null) { final int index = tree.indexOf((TreeItem) o); if (index < 1) { return; } fLastItem = tree.getItem(index - 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { final Point p = tree.toDisplay(e.x, e.y); final Item item = fDropDownViewer.scrollUp(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } else if (clientArea.y + clientArea.height - e.y < tree.getItemHeight() / 4) { // Scroll down if (currentItem.getParentItem() == null) { final int index = tree.indexOf((TreeItem) o); if (index >= tree.getItemCount() - 1) { return; } fLastItem = tree.getItem(index + 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { final Point p = tree.toDisplay(e.x, e.y); final Item item = fDropDownViewer.scrollDown(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } } } } }); tree.addKeyListener(new KeyListener() { @Override public void keyPressed(final KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { final TreeItem[] selection = tree.getSelection(); if (selection.length != 1) { return; } final int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) { return; } fShell.close(); } } @Override public void keyReleased(final KeyEvent e) { } }); tree.setMenu(fDropDownMenuManager.createContextMenu(tree)); fDropDownViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeCollapsed(final TreeExpansionEvent event) { } @Override public void treeExpanded(final TreeExpansionEvent event) { tree.setRedraw(false); fShell.getDisplay().asyncExec(new Runnable() { @Override public void run() { if (fShell.isDisposed()) { return; } try { resizeShell(fShell); } finally { tree.setRedraw(true); } } }); } }); final int index = fParent.getViewer().getIndexOfItem(fParent); if (index < fParent.getViewer().getItemCount() - 1) { final BreadcrumbItem childItem = fParent.getViewer().getItem(index + 1); final Object child = childItem.getData(); fDropDownViewer.setSelection(new StructuredSelection(child), true); final TreeItem[] selection = tree.getSelection(); if (selection.length > 0) { tree.setTopItem(selection[0]); } } fShell.setVisible(true); installCloser(fShell); } catch (final RuntimeException e) { fMenuIsShown = false; fShell.close(); throw e; } }
From source file:ext.org.eclipse.jdt.internal.ui.javaeditor.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu./*from w ww . j a va2 s . c o m*/ */ public void showMenu() { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()"); //$NON-NLS-1$ if (!fEnabled || fMenuIsShown) return; fMenuIsShown = true; fShell = new Shell(fToolBar.getShell(), SWT.RESIZE | SWT.TOOL | SWT.ON_TOP); if (DEBUG) System.out.println(" creating new shell"); //$NON-NLS-1$ GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; fShell.setLayout(layout); Composite composite = new Composite(fShell, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout gridLayout = new GridLayout(1, false); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; composite.setLayout(gridLayout); fDropDownViewer = new ProblemTreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); fDropDownViewer.setUseHashlookup(true); final Tree tree = (Tree) fDropDownViewer.getControl(); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Object input = fParent.getData(); fParent.getViewer().configureDropDownViewer(fDropDownViewer, input); fDropDownViewer.setInput(input); setShellBounds(fShell); fShell.addControlListener(new ControlAdapter() { /* * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent) */ @Override public void controlResized(ControlEvent e) { if (isResizingProgrammatically) return; Point size = fShell.getSize(); getDialogSettings().put(DIALOG_HEIGHT, size.y); } }); fDropDownViewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ ISelection selection = event.getSelection(); if (!(selection instanceof IStructuredSelection)) return; Object element = ((IStructuredSelection) selection).getFirstElement(); if (element == null) return; openElement(element); } }); tree.addMouseListener(new MouseListener() { public void mouseUp(MouseEvent e) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$ if (e.button != 1) return; if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0) return; Item item = tree.getItem(new Point(e.x, e.y)); if (item == null) return; openElement(item.getData()); } public void mouseDown(MouseEvent e) { } public void mouseDoubleClick(MouseEvent e) { } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; public void mouseMove(MouseEvent e) { if (tree.equals(e.getSource())) { Object o = tree.getItem(new Point(e.x, e.y)); if ((o != null && !o.equals(fLastItem)) || (fLastItem != null && o == null)) { boolean showHandPointer = false; if (o instanceof TreeItem) { Object itemData = ((TreeItem) o).getData(); if (itemData instanceof IJavaElement) { int elementType = ((IJavaElement) itemData).getElementType(); if (elementType != IJavaElement.JAVA_PROJECT && elementType != IJavaElement.PACKAGE_FRAGMENT && elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT) { showHandPointer = true; } } else if (itemData instanceof IFile) { showHandPointer = true; } else if (itemData instanceof IJarEntryResource) { showHandPointer = ((IJarEntryResource) itemData).isFile(); } } tree.setCursor(showHandPointer ? tree.getDisplay().getSystemCursor(SWT.CURSOR_HAND) : null); } if (o instanceof TreeItem) { Rectangle clientArea = tree.getClientArea(); TreeItem currentItem = (TreeItem) o; if (!o.equals(fLastItem)) { fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { fLastItem }); } else if (e.y - clientArea.y < tree.getItemHeight() / 4) { // Scroll up if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index < 1) return; fLastItem = tree.getItem(index - 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollUp(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } else if (clientArea.y + clientArea.height - e.y < tree.getItemHeight() / 4) { // Scroll down if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index >= tree.getItemCount() - 1) return; fLastItem = tree.getItem(index + 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollDown(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } } else if (o == null) { fLastItem = null; } } } }); tree.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { TreeItem[] selection = tree.getSelection(); if (selection.length != 1) return; int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) return; fShell.close(); } } public void keyReleased(KeyEvent e) { } }); fDropDownViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { tree.setRedraw(false); fShell.getDisplay().asyncExec(new Runnable() { public void run() { if (fShell.isDisposed()) return; try { resizeShell(fShell); } finally { tree.setRedraw(true); } } }); } }); int index = fParent.getViewer().getIndexOfItem(fParent); if (index < fParent.getViewer().getItemCount() - 1) { BreadcrumbItem childItem = fParent.getViewer().getItem(index + 1); Object child = childItem.getData(); fDropDownViewer.setSelection(new StructuredSelection(child), true); TreeItem[] selection = tree.getSelection(); if (selection.length > 0) { tree.setTopItem(selection[0]); } } fShell.setVisible(true); installCloser(fShell); }
From source file:ext.org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.java
License:Open Source License
void handleDoubleClick(DoubleClickEvent event) { TreeViewer viewer = fPart.getTreeViewer(); IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object element = selection.getFirstElement(); if (viewer.isExpandable(element)) { if (doubleClickGoesInto()) { // don't zoom into compilation units and class files if (element instanceof ICompilationUnit || element instanceof IClassFile) return; if (element instanceof IOpenable || element instanceof IContainer || element instanceof IWorkingSet) { fZoomInAction.run();// ww w. java2s . c o m } } else { IAction openAction = fNavigateActionGroup.getOpenAction(); if (openAction != null && openAction.isEnabled() && OpenStrategy.getOpenMethod() == OpenStrategy.DOUBLE_CLICK) return; if (selection instanceof ITreeSelection) { TreePath[] paths = ((ITreeSelection) selection).getPathsFor(element); for (int i = 0; i < paths.length; i++) { viewer.setExpandedState(paths[i], !viewer.getExpandedState(paths[i])); } } else { viewer.setExpandedState(element, !viewer.getExpandedState(element)); } } } else if (element instanceof IProject && !((IProject) element).isOpen()) { OpenProjectAction openProjectAction = fProjectActionGroup.getOpenProjectAction(); if (openProjectAction.isEnabled()) { openProjectAction.run(); } } }
From source file:org.dawnsci.common.widgets.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.// w w w . j av a2s.co m */ public void showMenu() { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()"); //$NON-NLS-1$ if (!fEnabled || fMenuIsShown) return; fMenuIsShown = true; fShell = new Shell(fToolBar.getShell(), SWT.RESIZE | SWT.TOOL | SWT.ON_TOP); if (DEBUG) System.out.println(" creating new shell"); //$NON-NLS-1$ GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; fShell.setLayout(layout); Composite composite = new Composite(fShell, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout gridLayout = new GridLayout(1, false); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; composite.setLayout(gridLayout); fDropDownViewer = new ProblemTreeViewer(composite, treeSwitches); fDropDownViewer.setUseHashlookup(true); final Tree tree = (Tree) fDropDownViewer.getControl(); tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Object input = fParent.getData(); fParent.getViewer().configureDropDownViewer(fDropDownViewer, input); fDropDownViewer.setInput(input); setShellBounds(fShell); fShell.addControlListener(new ControlAdapter() { /* * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent) */ @Override public void controlResized(ControlEvent e) { if (isResizingProgrammatically) return; Point size = fShell.getSize(); getDialogSettings().put(DIALOG_HEIGHT, size.y); } }); fDropDownViewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ ISelection selection = event.getSelection(); if (!(selection instanceof IStructuredSelection)) return; Object element = ((IStructuredSelection) selection).getFirstElement(); if (element == null) return; openElement(element); } }); tree.addMouseListener(new MouseListener() { public void mouseUp(MouseEvent e) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>mouseUp"); //$NON-NLS-1$ if (e.button != 1) return; if ((OpenStrategy.getOpenMethod() & OpenStrategy.SINGLE_CLICK) != 0) return; Item item = tree.getItem(new Point(e.x, e.y)); if (item == null) return; openElement(item.getData()); } public void mouseDown(MouseEvent e) { } public void mouseDoubleClick(MouseEvent e) { } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; public void mouseMove(MouseEvent e) { if (tree.equals(e.getSource())) { Object o = tree.getItem(new Point(e.x, e.y)); if ((o != null && !o.equals(fLastItem)) || (fLastItem != null && o == null)) { boolean showHandPointer = false; if (o instanceof TreeItem) { Object itemData = ((TreeItem) o).getData(); if (itemData instanceof IJavaElement) { int elementType = ((IJavaElement) itemData).getElementType(); if (elementType != IJavaElement.JAVA_PROJECT && elementType != IJavaElement.PACKAGE_FRAGMENT && elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT) { showHandPointer = true; } } else if (itemData instanceof IFile) { showHandPointer = true; } else if (itemData instanceof IJarEntryResource) { showHandPointer = ((IJarEntryResource) itemData).isFile(); } } tree.setCursor(showHandPointer ? tree.getDisplay().getSystemCursor(SWT.CURSOR_HAND) : null); } if (o instanceof TreeItem) { Rectangle clientArea = tree.getClientArea(); TreeItem currentItem = (TreeItem) o; if (!o.equals(fLastItem)) { fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { fLastItem }); } else if (e.y - clientArea.y < tree.getItemHeight() / 4) { // Scroll up if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index < 1) return; fLastItem = tree.getItem(index - 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollUp(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } else if (clientArea.y + clientArea.height - e.y < tree.getItemHeight() / 4) { // Scroll down if (currentItem.getParentItem() == null) { int index = tree.indexOf((TreeItem) o); if (index >= tree.getItemCount() - 1) return; fLastItem = tree.getItem(index + 1); tree.setSelection(new TreeItem[] { fLastItem }); } else { Point p = tree.toDisplay(e.x, e.y); Item item = fDropDownViewer.scrollDown(p.x, p.y); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } } else if (o == null) { fLastItem = null; } } } }); tree.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { TreeItem[] selection = tree.getSelection(); if (selection.length != 1) return; int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) return; fShell.close(); } } public void keyReleased(KeyEvent e) { } }); fDropDownViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { tree.setRedraw(false); fShell.getDisplay().asyncExec(new Runnable() { public void run() { if (fShell.isDisposed()) return; try { resizeShell(fShell); } finally { tree.setRedraw(true); } } }); } }); int index = fParent.getViewer().getIndexOfItem(fParent); if (index < fParent.getViewer().getItemCount() - 1) { BreadcrumbItem childItem = fParent.getViewer().getItem(index + 1); Object child = childItem.getData(); fDropDownViewer.setSelection(new StructuredSelection(child), true); TreeItem[] selection = tree.getSelection(); if (selection.length > 0) { tree.setTopItem(selection[0]); } } fShell.setVisible(true); installCloser(fShell); tree.setFocus(); }