protected void handleWidgetSelection(Event event) { if (widget != null && !widget.isDisposed()) { if (dropdownEvent(event)) { return; } if (modelItem.getType() == ItemType.CHECK || modelItem.getType() == ItemType.RADIO) { boolean selection = false; if (widget instanceof MenuItem) { selection = ((MenuItem) widget).getSelection(); } else if (widget instanceof ToolItem) { selection = ((ToolItem) widget).getSelection(); } modelItem.setSelected(selection); } if (canExecuteItem(event)) { executeItem(event); } } }
/** * Return a context for this part. * * @param part * the part to start searching from * @return the closest context, or global context if none in the hierarchy */ protected IEclipseContext getContext(MUIElement part) { if (part instanceof MContext) { return ((MContext) part).getContext(); } return getContextForParent(part); }
@Override public void run() throws Exception { boolean shouldEnable = canExecuteItem(null); if (shouldEnable != modelItem.isEnabled()) { modelItem.setEnabled(shouldEnable); update(); } }
item.addListener(SWT.Dispose, getItemListener()); item.addListener(SWT.Selection, getItemListener()); item.addListener(SWT.DefaultSelection, getItemListener()); widget.setData(AbstractPartRenderer.OWNING_ME, modelItem); ToolItemUpdater updater = getUpdater(); if (updater != null) { updater.registerItem(this); update(null); postToolbarFill();
protected void updateIcons() { if (!(widget instanceof Item)) { return; } Item item = (Item) widget; String iconURI = modelItem.getIconURI() != null ? modelItem.getIconURI() : ""; //$NON-NLS-1$ String disabledURI = getDisabledIconURI(modelItem); Object disabledData = item.getData(DISABLED_URI); if (disabledData == null) disabledData = ""; //$NON-NLS-1$ if (!iconURI.equals(item.getData(ICON_URI)) || !disabledURI.equals(disabledData)) { LocalResourceManager resourceManager = new LocalResourceManager(JFaceResources.getResources()); Image iconImage = getImage(iconURI, resourceManager); item.setImage(iconImage); item.setData(ICON_URI, iconURI); if (item instanceof ToolItem) { iconImage = getImage(disabledURI, resourceManager); ((ToolItem) item).setDisabledImage(iconImage); item.setData(DISABLED_URI, disabledURI); } disposeOldImages(); localResourceManager = resourceManager; } }
item.addListener(SWT.Dispose, getItemListener()); item.addListener(SWT.Selection, getItemListener()); item.addListener(SWT.DefaultSelection, getItemListener()); item.addListener(SWT.Help, getItemListener()); widget.setData(AbstractPartRenderer.OWNING_ME, modelItem); update(null); postMenuFill();
obj = RenderedElementUtil.getContributionManager(mmenu); if (obj instanceof IContextFunction) { final IEclipseContext lclContext = getContext(mmenu); obj = ((IContextFunction) obj).compute(lclContext, null); RenderedElementUtil.setContributionManager(mmenu, obj); final IEclipseContext lclContext = getContext(getModel()); IPresentationEngine engine = lclContext.get(IPresentationEngine.class); obj = engine.createGui(mmenu, toolItem.getParent(), lclContext);
/** * @param event * @return whether the event was a drop down on a toolitem */ protected boolean dropdownEvent(Event event) { if (event.detail == SWT.ARROW && modelItem instanceof MToolItem) { ToolItem ti = (ToolItem) event.widget; MMenu mmenu = ((MToolItem) modelItem).getMenu(); if (mmenu == null) { return false; } Menu menu = getMenu(mmenu, ti); if (menu == null || menu.isDisposed()) { return true; } Rectangle itemBounds = ti.getBounds(); Point displayAt = ti.getParent().toDisplay(itemBounds.x, itemBounds.y + itemBounds.height); menu.setLocation(displayAt); menu.setVisible(true); Display display = menu.getDisplay(); while (!menu.isDisposed() && menu.isVisible()) { if (!display.readAndDispatch()) { display.sleep(); } } return true; } return false; }