List of usage examples for org.eclipse.jface.window Window close
public boolean close()
From source file:nu.bibi.breadcrumb.BreadcrumbItemArrow.java
License:Open Source License
/** * Create a new instance of this class with the given item parent and the * composite parent./* w w w. java 2s. co m*/ * * @param parent * the parent item. * @param parentContainer * the parent composite. */ public BreadcrumbItemArrow(final BreadcrumbItem parent, final Composite parentContainer) { this.parentItem = parent; enabled = true; menuIsShown = false; parentComposite = parentContainer; leftToRight = (parentContainer.getStyle() & SWT.RIGHT_TO_LEFT) == 0; // images rightImage = ImageFileRegistry.getResource(ImageFileRegistry.KEY_ARROW_RIGHT).createImage(); leftImage = ImageFileRegistry.getResource(ImageFileRegistry.KEY_ARROW_LEFT).createImage(); downImage = ImageFileRegistry.getResource(ImageFileRegistry.KEY_ARROW_DOWN).createImage(); imageElement = new Label(parentContainer, SWT.NONE); imageElement.setImage(getArrowImage(false)); imageElement.setToolTipText(Messages.BreadcrumbItemDropDown_Action_ToolTip); imageElement.getAccessible().addAccessibleListener(new AccessibleAdapter() { @Override public void getName(final AccessibleEvent e) { e.result = Messages.BreadcrumbItemDropDown_Action_ToolTip; } }); imageElement.addListener(SWT.FocusIn, new Listener() { public void handleEvent(final Event event) { parent.getItemDetail().setHasFocus(true); } }); imageElement.addListener(SWT.MouseDown, new Listener() { public void handleEvent(final Event event) { if (event.button == 1) { // already open ? Window window = parentItem.getDropDownWindow(); if (window != null) { return; } // other open ? window = getViewer().getDropDownWindow(); if (window != null) { window.close(); } openDropDownMenu(); } } }); imageElement.addListener(SWT.KeyDown, new Listener() { @Override public void handleEvent(final Event event) { final BreadcrumbViewer viewer = getViewer(); int index = viewer.indexOf(parentItem); switch (event.keyCode) { case SWT.ARROW_RIGHT: index++; break; case SWT.ARROW_LEFT: index--; break; case SWT.HOME: index = viewer.isRootVisible() ? 0 : 1; break; case SWT.END: index = viewer.getItemCount() - 1; break; default: return; } if (index >= 0 && index < viewer.getItemCount()) { viewer.selectItem(index); } event.doit = true; } }); }