private boolean isPartMenu(MMenu menuModel) { // don't want popup menus as their visibility does not need to be // tracked by a separate RunAndTrack return !(menuModel instanceof MPopupMenu) && modelService.getContainer(menuModel) instanceof MPart; }
private void cleanUp(MWindow window) { MUIElement parent = modelService.getContainer(window); if (parent instanceof MApplication) { MApplication application = (MApplication) parent; List<MWindow> children = application.getChildren(); if (children.size() > 1) { // not the last window, destroy and remove window.setToBeRendered(false); children.remove(window); } else { // last window, just destroy without changing the model engine.removeGui(window); } } else if (parent != null) { window.setToBeRendered(false); // this is a detached window, check for parts if (modelService.findElements(window, null, MPart.class) .isEmpty()) { // if no parts, remove it if (parent instanceof MWindow) { ((MWindow) parent).getWindows().remove(window); } else if (parent instanceof MPerspective) { ((MPerspective) parent).getWindows().remove(window); } } } }
@Override public Object getUIContainer(MUIElement element) { if (!(element instanceof MWindow)) return super.getUIContainer(element); MUIElement persp = modelService.getContainer(element); if (persp.getWidget() instanceof Composite) { Composite comp = (Composite) persp.getWidget(); return comp.getShell(); } return null; } }
@Override public Object getUIContainer(MUIElement element) { MUIElement parent = element.getParent(); if (parent == null) { // might be a detached window parent = modelService.getContainer(element); return parent == null ? null : parent.getWidget(); } Composite shellComp = (Composite) element.getParent().getWidget(); TrimmedPartLayout tpl = (TrimmedPartLayout) shellComp.getLayout(); return tpl.clientArea; }
@Override public Object getUIContainer(MUIElement element) { if (element instanceof MToolBar) { MUIElement container = modelService.getContainer(element); MUIElement parent = container.getParent(); if (parent == null) { MPlaceholder placeholder = container.getCurSharedRef(); if (placeholder != null) { return placeholder.getParent().getWidget(); } } else { return parent.getWidget(); } } return super.getUIContainer(element); }
@Inject @Optional void subscribeTopicChildrenChanged(@UIEventTopic(UIEvents.ElementContainer.TOPIC_CHILDREN) Event event) { Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT); // only interested in changes to toolbars if (!(changedObj instanceof MToolBar)) { return; } MUIElement container = modelService.getContainer((MUIElement) changedObj); // check if this is a part's toolbar if (container instanceof MPart) { MElementContainer<?> parent = ((MPart) container).getParent(); // only relayout if this part is the selected element and we // actually rendered this element if (parent instanceof MPartStack && parent.getSelectedElement() == container && parent.getRenderer() == StackRenderer.this) { Object widget = parent.getWidget(); if (widget instanceof CTabFolder) { adjustTopRight((CTabFolder) widget); } } } }
MUIElement menuParent = modelService.getContainer(menuModel); if (!(menuParent instanceof MPart)) return;
private ToolBar createToolbar(final MUIElement element, Composite parent) { int orientation = getOrientation(element); int style = orientation | SWT.WRAP | SWT.FLAT | SWT.RIGHT; ToolBarManager manager = getManager((MToolBar) element); if (manager == null) { manager = new ToolBarManager(style); IContributionManagerOverrides overrides = null; MApplicationElement parentElement = element.getParent(); if (parentElement == null) { parentElement = modelService.getContainer(element); } if (parentElement != null) { overrides = (IContributionManagerOverrides) parentElement.getTransientData().get( IContributionManagerOverrides.class.getName()); } manager.setOverrides(overrides); linkModelToManager((MToolBar) element, manager); } else { ToolBar toolBar = manager.getControl(); if (toolBar != null && !toolBar.isDisposed() && (toolBar.getStyle() & orientation) == 0) { toolBar.dispose(); } manager.setStyle(style); } ToolBar btoolbar = manager.createControl(parent); btoolbar.setData(manager); btoolbar.setData(AbstractPartRenderer.OWNING_ME, element); btoolbar.requestLayout(); return btoolbar; }
&& menuManager.getMenu() != null) { final MUIElement container = modelService .getContainer(popupMenu); if (container instanceof MPart) { MenuService.registerMenu(menuManager.getMenu()
&& menuManager.getMenu() != null) { final MUIElement container = modelService .getContainer(popupMenu); if (container instanceof MPart) { MenuService.registerMenu(menuManager.getMenu()
MUIElement container = modelService.getContainer(element); if (container instanceof MWindow) { menuManager = getManager(menuModel);
w.getContext().activate(); } else if (parentME == null) { parentME = modelService.getContainer(w); if (parentME instanceof MContext) { w.getContext().activate();