public Object createWidget(final MUIElement element, Object parent) { if (!(element instanceof MToolItem) || !(parent instanceof ToolBar)) return null; MToolItem itemModel = (MToolItem) element; // determine the index at which we should create the new item int addIndex = calcVisibleIndex(element); // OK, it's a real menu item, what kind? MMenu menu = itemModel.getMenu(); int flags = 0; if (menu != null) { flags |= SWT.DROP_DOWN; } else if (itemModel.getType() == ItemType.PUSH) flags |= SWT.PUSH; else if (itemModel.getType() == ItemType.CHECK) flags |= SWT.CHECK; else if (itemModel.getType() == ItemType.RADIO) flags |= SWT.RADIO; ToolItem newItem = new ToolItem((ToolBar) parent, flags, addIndex); if (itemModel.getLabel() != null) newItem.setText(itemModel.getLocalizedLabel()); newItem.setToolTipText(getToolTipText(itemModel)); newItem.setImage(getImage((MUILabel) element)); newItem.setEnabled(itemModel.isEnabled()); newItem.setSelection(itemModel.isSelected()); return newItem; }
public void handleEvent(Event event) { // Ensure that this event is for a MToolItem if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MToolItem)) return; MToolItem itemModel = (MToolItem) event .getProperty(UIEvents.EventTags.ELEMENT); ToolItem toolItem = (ToolItem) itemModel.getWidget(); if (toolItem != null) { toolItem.setSelection(itemModel.isSelected()); } } };
/** * Create an opaque tool item * * @return a new opaque tool item. */ public static MToolItem createOpaqueToolItem() { final MToolItem item = MMenuFactory.INSTANCE.createDirectToolItem(); item.getTags().add(OPAQUE_TAG); return item; }
public void handleEvent(Event event) { // Ensure that this event is for a MToolItem if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MToolItem)) return; MToolItem itemModel = (MToolItem) event .getProperty(UIEvents.EventTags.ELEMENT); ToolItem toolItem = (ToolItem) itemModel.getWidget(); if (toolItem != null) { toolItem.setEnabled(itemModel.isEnabled()); } } };
@Override public void doProcessContent(MToolItem element) { MMenu menu = element.getMenu(); if (menu != null) { engineCreateWidget(menu); } }
if (element == null) { MToolItem legacyItem = OpaqueElementUtil.createOpaqueToolItem(); legacyItem.setElementId(item.getId()); legacyItem.setVisible(item.isVisible()); OpaqueElementUtil.setOpaqueItem(legacyItem, item); linkModelToContribution(legacyItem, item);
@Override public void checkEnablement(final MToolItem toolbarElement) { @SuppressWarnings("unchecked") final WToolItem<N> widget = (WToolItem<N>) toolbarElement.getWidget(); // can we call canExecute in the none ui thread???? this.sync.asyncExec(new Runnable() { @Override public void run() { try { IEclipseContext context = getModelContext(toolbarElement); if (context != null && (widget.getWidgetState() == WidgetState.CREATED || widget.getWidgetState() == WidgetState.IN_SETUP)) { widget.setHandled(canExecute(toolbarElement, context)); } } catch (Throwable t) { // TODO Log it t.printStackTrace(); } } }); }
private MUIElement createToolItem(IContributionItem ici) { MToolItem opaqueItem = OpaqueElementUtil.createOpaqueToolItem(); opaqueItem.setElementId(ici.getId()); OpaqueElementUtil.setOpaqueItem(opaqueItem, ici); return opaqueItem; } }
/** * @param item * @param disabledIconURI */ public static void setDisabledIconURI(MToolItem item, String disabledIconURI) { item.getTransientData().put(IPresentationEngine.DISABLED_ICON_IMAGE_KEY, disabledIconURI); } }
private void setItemText(MToolItem model, ToolItem item) { String text = model.getLocalizedLabel(); if (text == null) { text = ""; //$NON-NLS-1$ } item.setText(text); }
private boolean dropdownEvent(Event event) { if (event.detail == SWT.ARROW && model instanceof MToolItem) { ToolItem ti = (ToolItem) event.widget; MMenu mmenu = ((MToolItem) model).getMenu(); if (mmenu == null) { return false; } Menu menu = getMenu(mmenu, ti); if (menu == null) { 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.isVisible()) { if (!display.readAndDispatch()) { display.sleep(); } } return true; } return false; }
} else { MToolItem toolItem = OpaqueElementUtil.createOpaqueToolItem(); toolItem.setElementId(item.getId()); OpaqueElementUtil.setOpaqueItem(toolItem, item); if (item instanceof AbstractGroupMarker) { toolItem.setVisible(item.isVisible());
public void handleEvent(Event event) { // Ensure that this event is for a MToolItem if (!(event.getProperty(UIEvents.EventTags.ELEMENT) instanceof MToolItem)) return; MToolItem itemModel = (MToolItem) event .getProperty(UIEvents.EventTags.ELEMENT); ToolItem toolItem = (ToolItem) itemModel.getWidget(); // No widget == nothing to update if (toolItem == null) return; String attName = (String) event .getProperty(UIEvents.EventTags.ATTNAME); if (UIEvents.UILabel.LABEL.equals(attName)) { setItemText(itemModel, toolItem); } else if (UIEvents.UILabel.ICONURI.equals(attName)) { toolItem.setImage(getImage(itemModel)); } else if (UIEvents.UILabel.TOOLTIP.equals(attName)) { toolItem.setToolTipText(getToolTipText(itemModel)); toolItem.setImage(getImage(itemModel)); } } };
/** * @param event * @return */ private boolean dropdownEvent(Event event) { if (event.detail == SWT.ARROW && model instanceof MToolItem) { ToolItem ti = (ToolItem) event.widget; MMenu mmenu = ((MToolItem) model).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; }
/** * @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; }
MMenu menu = ((MToolItem) model).getMenu(); isDropdown = menu != null;
MMenu menu = ((MToolItem) modelItem).getMenu(); isDropdown = menu != null;
MMenu menu = ((MToolItem) model).getMenu(); isDropdown = menu != null;
final MMenu mmenu = ((MToolItem) me).getMenu(); if (mmenu != null) { final ToolItem ti = (ToolItem) me.getWidget();