List of usage examples for org.eclipse.jface.util OpenStrategy SINGLE_CLICK
int SINGLE_CLICK
To view the source code for org.eclipse.jface.util OpenStrategy SINGLE_CLICK.
Click Source Link
From source file:com.google.gwt.eclipse.oophm.breadcrumbs.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.// ww w . java 2 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.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. * // w w w . j a va 2 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:de.walware.ecommons.ui.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu./*from w w w . j av a2 s .co m*/ */ 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./*w w w . ja v a2 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:org.dawnsci.common.widgets.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.//from www . jav a2 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, 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(); }
From source file:org.eclipse.birt.report.designer.internal.ui.editors.breadcrumb.BreadcrumbItemDropDown.java
License:Open Source License
/** * Opens the drop down menu.//from w ww .j a va2 s. com */ public void showMenu() { if (!fEnabled || fMenuIsShown) return; fMenuIsShown = true; fShell = new Shell(fToolBar.getShell(), SWT.RESIZE | SWT.TOOL | SWT.ON_TOP); 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 TreeViewer(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) { 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 (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 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:org.eclipse.debug.internal.ui.viewers.breadcrumb.TreeViewerDropDown.java
License:Open Source License
/** * Creates the viewer and installs the listeners. * /*from w ww. jav a2s . co m*/ * @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(Composite composite, IBreadcrumbDropDownSite site, TreePath path) { fDropDownSite = site; fDropDownViewer = createTreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL, path); fDropDownViewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { if (DEBUG) System.out.println("BreadcrumbItemDropDown.showMenu()$treeViewer>open"); //$NON-NLS-1$ openElement(event.getSelection()); } }); final Tree tree = fDropDownViewer.getTree(); 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; TreeItem item = tree.getItem(new Point(e.x, e.y)); if (item == null) return; List pathElements = new LinkedList(); while (item != null) { Object data = item.getData(); if (data == null) return; pathElements.add(0, data); item = item.getParentItem(); } openElement(new TreeSelection(new TreePath(pathElements.toArray()))); } public void mouseDown(MouseEvent e) { } public void mouseDoubleClick(MouseEvent e) { } }); tree.addMouseMoveListener(new MouseMoveListener() { TreeItem fLastItem = null; long fLastScrollTime = 0; public void mouseMove(MouseEvent e) { if (tree.equals(e.getSource())) { Object o = tree.getItem(new Point(e.x, e.y)); if (fLastItem == null ^ o == null) { tree.setCursor(o == null ? null : tree.getDisplay().getSystemCursor(SWT.CURSOR_HAND)); } if (o instanceof TreeItem) { TreeItem currentItem = (TreeItem) o; if (!o.equals(fLastItem)) { fLastItem = (TreeItem) o; tree.setSelection(new TreeItem[] { fLastItem }); } else if (System.currentTimeMillis() > (fLastScrollTime + MOUSE_MOVE_SCROLL_DELAY)) { if (e.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); fLastScrollTime = System.currentTimeMillis(); if (item instanceof TreeItem) { fLastItem = (TreeItem) item; tree.setSelection(new TreeItem[] { fLastItem }); } } } else if (e.y > tree.getBounds().height - 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); fLastScrollTime = System.currentTimeMillis(); 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) { // No elements in the tree (bug 262961). if (tree.getItemCount() == 0) { fDropDownSite.close(); return; } TreeItem[] selection = tree.getSelection(); if (selection.length != 1) return; int selectionIndex = tree.indexOf(selection[0]); if (selectionIndex != 0) return; fDropDownSite.close(); } } public void keyReleased(KeyEvent e) { } }); fDropDownViewer.addTreeListener(new ITreeViewerListener() { public void treeCollapsed(TreeExpansionEvent event) { } public void treeExpanded(TreeExpansionEvent event) { tree.setRedraw(false); new UIJob(tree.getDisplay(), IInternalDebugCoreConstants.EMPTY_STRING) { { setSystem(true); } public IStatus runInUIThread(IProgressMonitor monitor) { if (!tree.isDisposed()) { try { fDropDownSite.updateSize(); } finally { tree.setRedraw(true); } } return Status.OK_STATUS; } }.schedule(); } }); return tree; }
From source file:org.eclipse.rcptt.ctx.preferences.impl.PreferencesContextProcessor.java
License:Open Source License
private void processOpenStrategy(Preferences preferences) { // Check some special cases boolean openOnSingleClick = preferences.getBoolean("OPEN_ON_SINGLE_CLICK", false); boolean selectOnHover = preferences.getBoolean("SELECT_ON_HOVER", false); boolean openAfterDelay = preferences.getBoolean("OPEN_AFTER_DELAY", false); int singleClickMethod = openOnSingleClick ? OpenStrategy.SINGLE_CLICK : OpenStrategy.DOUBLE_CLICK; if (openOnSingleClick) { if (selectOnHover) { singleClickMethod |= OpenStrategy.SELECT_ON_HOVER; }//from ww w . j av a 2s . co m if (openAfterDelay) { singleClickMethod |= OpenStrategy.ARROW_KEYS_OPEN; } } OpenStrategy.setOpenMethod(singleClickMethod); }
From source file:org.eclipse.rcptt.tesla.recording.core.swt.JFaceRecordingProcessor.java
License:Open Source License
public void recordOpenStrategyEvent(OpenStrategy str, SelectionEvent e) { if (OpenStrategy.getOpenMethod() == OpenStrategy.SINGLE_CLICK) { if (e.widget != null) { FindResult element = getSWTProcessor().getLocator().findElement(e.widget, false, false, false); if (element != null) { ControlUIElement el = new ControlUIElement(element.element, getRecorder()); el.click();//from www. j a v a2 s . c om } } } }
From source file:org.eclipse.ui.internal.dialogs.WorkbenchPreferencePage.java
License:Open Source License
/** * The user has pressed Ok. Store/apply this page's values appropriately. *//*from w w w. j a v a 2s. c o m*/ public boolean performOk() { IPreferenceStore store = getPreferenceStore(); // store the keep cycle part dialogs sticky preference store.setValue(IPreferenceConstants.STICKY_CYCLE, stickyCycleButton.getSelection()); store.setValue(IPreferenceConstants.OPEN_ON_SINGLE_CLICK, openOnSingleClick); store.setValue(IPreferenceConstants.SELECT_ON_HOVER, selectOnHover); store.setValue(IPreferenceConstants.OPEN_AFTER_DELAY, openAfterDelay); store.setValue(IPreferenceConstants.RUN_IN_BACKGROUND, showUserDialogButton.getSelection()); store.setValue(IPreferenceConstants.WORKBENCH_SAVE_INTERVAL, saveInterval.getIntValue()); PrefUtil.getAPIPreferenceStore().setValue(IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, showHeapStatusButton.getSelection()); updateHeapStatus(showHeapStatusButton.getSelection()); int singleClickMethod = openOnSingleClick ? OpenStrategy.SINGLE_CLICK : OpenStrategy.DOUBLE_CLICK; if (openOnSingleClick) { if (selectOnHover) { singleClickMethod |= OpenStrategy.SELECT_ON_HOVER; } if (openAfterDelay) { singleClickMethod |= OpenStrategy.ARROW_KEYS_OPEN; } } OpenStrategy.setOpenMethod(singleClickMethod); PrefUtil.savePrefs(); return true; }