private static boolean hasVisibleItems(MToolBar toolBar) { for (MToolBarElement e : toolBar.getChildren()) { if (!(e instanceof MToolBarSeparator)) { return true; } } return false; }
@Override public boolean changed(IEclipseContext context) { if (!toolbarModel.isToBeRendered() || !toolbarModel.isVisible() || toolbarModel.getWidget() == null) { return false; } boolean rc = ContributionsAnalyzer.isVisible( contribution, eContext); for (MToolBarElement child : toRemove) { child.setToBeRendered(rc); } return true; } });
@Override public IContributionItem find(String id) { List<MToolBar> toolbars = modelService.findElements(window, id, MToolBar.class); if (toolbars.isEmpty()) { return null; } final MToolBar model = toolbars.get(0); if (model.getTransientData().get(OBJECT) != null) { return (IContributionItem) model.getTransientData().get(OBJECT); } ToolBarManagerRenderer renderer = (ToolBarManagerRenderer) rendererFactory.getRenderer(model, null); final ToolBarManager manager = renderer.getManager(model); if (manager != null) { final ToolBarContributionItemExtension toolBarContributionItem = new ToolBarContributionItemExtension( manager, model); model.getTransientData().put(OBJECT, toolBarContributionItem); toolbarExtensions.add(toolBarContributionItem); return toolBarContributionItem; } else if (model.getTags().contains(TOOLBAR_SEPARATOR)) { if (model.getTransientData().get(OBJECT) != null) { return (IContributionItem) model.getTransientData().get(OBJECT); } return new GroupMarker(model.getElementId()); } return null; }
@Inject @Optional private void subscribeTopicAppStartup(@UIEventTopic(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE) Event event) { List<MToolBar> toolBars = modelService.findElements(application, null, MToolBar.class); for (MToolBar mToolBar : toolBars) { if (mToolBar.getTags().contains(IPresentationEngine.HIDDEN_EXPLICITLY)) { mToolBar.setVisible(false); mToolBar.setToBeRendered(false); } } }
toolBar = modelService.createModelElement(MToolBar.class); } else { toolBar.getChildren().clear(); toolBar.setElementId(item.getId()); toolBar.getTransientData().put(OBJECT, item); String toolbarLabel = getToolbarLabel(application, item.getId()); if (toolbarLabel != null) { toolBar.getTransientData().put("Name", toolbarLabel); //$NON-NLS-1$ toolBar.setToBeRendered(true); if (!tbFound) { if (idx < 0) { toolBar = modelService.createModelElement(MToolBar.class); } else { toolBar.getChildren().clear(); toolBar.getTransientData().put(OBJECT, item); toolBar.getTags().add(TOOLBAR_SEPARATOR); toolBar.setElementId(item.getId()); toolBar.getChildren().add(separator); toolBar.setToBeRendered(false); if (!tbFound) { if (idx < 0) {
int colonIndex = partId.indexOf(':'); String descId = colonIndex == -1 ? partId : partId.substring(0, colonIndex); toolbar.setElementId(descId); toolbar.getChildren().clear(); if (toolbar.getWidget() == null) { toolbar.getTransientData().put(ToolBarManagerRenderer.POST_PROCESSING_FUNCTION, func); } else { toolbar.getTransientData().put(ToolBarManagerRenderer.POST_PROCESSING_DISPOSE, func.compute(partContext, null));
public static boolean processAddition(final MToolBar toolBarModel, MToolBarContribution toolBarContribution, List<MToolBarElement> contributions, HashSet<String> existingSeparatorNames) { int idx = getIndex(toolBarModel, toolBarContribution.getPositionInParent()); if (idx == -1) { return false; } for (MToolBarElement item : toolBarContribution.getChildren()) { if (item instanceof MToolBarSeparator && existingSeparatorNames.contains(item.getElementId())) { // skip this, it's already there continue; } MToolBarElement copy = (MToolBarElement) EcoreUtil.copy((EObject) item); if (DEBUG) { trace("addToolBarContribution " + copy, toolBarModel.getWidget(), toolBarModel); //$NON-NLS-1$ } toolBarModel.getChildren().add(idx++, copy); contributions.add(copy); if (copy instanceof MToolBarSeparator && copy.getElementId() != null) { existingSeparatorNames.add(copy.getElementId()); } } return true; }
@Override public IContributionItem remove(IContributionItem item) { final List<MToolBar> children = modelService.findElements(window, null, MToolBar.class, null); for (int i = 0; i < children.size(); i++) { final MToolBar child = children.get(i); final Object obj = child.getTransientData().get(OBJECT); if (obj != null && obj.equals(item)) { if (child instanceof MToolBarElement) { renderer.clearModelToContribution((MToolBarElement) child, item); } if (item instanceof IToolBarContributionItem) { IToolBarManager parent = ((IToolBarContributionItem) item).getToolBarManager(); if (parent instanceof ToolBarManager) { renderer.clearModelToManager(child, (ToolBarManager) parent); } } workbenchTrimElements.remove(child); child.setToBeRendered(false); child.getParent().getChildren().remove(child); return (IContributionItem) obj; } if (item.getId() != null && item.getId().equals(child.getElementId())) { throw new IllegalStateException(); } } return null; }
if (container.isVisible()) { needUpdate |= applyOverridenVisibility(toolBarElem, item, manager); continue; container.setVisible(true); container.getChildren().add(toolItem); } else { MToolItem toolItem = OpaqueElementUtil.createOpaqueToolItem(); container.getChildren().add(toolItem);
public void clearTR(CTabFolder ctf) { disposeViewMenu(ctf); ToolBar vmTB = getViewMenuTB(ctf); if (vmTB != null && !vmTB.isDisposed()) vmTB.dispose(); MToolBar viewTBModel = getViewTB(ctf); if (viewTBModel != null && viewTBModel.getWidget() != null) viewTBModel.setVisible(false); ctf.setTopRight(null); getTRComposite(ctf).setVisible(false); }
@Override public void postProcess(MUIElement element) { if (element instanceof MToolBar) { MToolBar toolbarModel = (MToolBar) element; if (toolbarModel.getTransientData().containsKey(POST_PROCESSING_FUNCTION)) { Object obj = toolbarModel.getTransientData().get(POST_PROCESSING_FUNCTION); if (obj instanceof IContextFunction) { IContextFunction func = (IContextFunction) obj; final IEclipseContext ctx = getContext(toolbarModel); toolbarModel.getTransientData().put(POST_PROCESSING_DISPOSE, func.compute(ctx, null)); } } } }
void handleToolbarRemove(@NonNull MPart parent, @NonNull MToolBar toolbar) { WPart<N, T, M> widget = getWidget(parent); if (widget == null) { return; } if (widget.getToolbar() == toolbar.getWidget()) { widget.setToolbar(null); } }
private void processTrimChildren(ArrayList<MTrimContribution> trimContributions, ArrayList<MToolBarContribution> toolBarContributions, IConfigurationElement element) { IConfigurationElement[] toolbars = element .getChildren(IWorkbenchRegistryConstants.TAG_TOOLBAR); if (toolbars.length == 0) { return; } MTrimContribution trimContribution = MenuFactoryImpl.eINSTANCE.createTrimContribution(); String idContrib = MenuHelper.getId(configElement); if (idContrib != null && idContrib.length() > 0) { trimContribution.setElementId(idContrib); } String query = location.getQuery(); boolean hasAdditions = AFTER_ADDITIONS.equals(query); processTrimLocation(trimContribution); trimContribution.getTags().add("scheme:" + location.getScheme()); //$NON-NLS-1$ for (IConfigurationElement toolbar : toolbars) { MToolBar item = MenuFactoryImpl.eINSTANCE.createToolBar(); item.setElementId(MenuHelper.getId(toolbar)); item.getTransientData().put("Name", MenuHelper.getLabel(toolbar)); //$NON-NLS-1$ processToolbarChildren(toolBarContributions, toolbar, item.getElementId(), AFTER_ADDITIONS, false); trimContribution.getChildren().add(item); } if (hasAdditions) { trimContributions.add(0, trimContribution); } else { trimContributions.add(trimContribution); } }
if (part.getToolbar() != null && part.getToolbar().isToBeRendered()) { part.getToolbar().setVisible(true); Object tbObj = renderer.createGui(part.getToolbar(), getTRComposite(ctf), part.getContext());
private ToolBarContributionItemExtension(IToolBarManager toolBarManager, MToolBar tb) { super(toolBarManager, tb.getElementId()); this.tb = tb; }
final List<MToolBar> children = modelService.findElements(winModel, null, MToolBar.class); for (MToolBar el : children) { if (!el.getTags().contains(TOOLBAR_SEPARATOR)) { if (lock) { if (!el.getTags().contains(IPresentationEngine.NO_MOVE)) { el.getTags().add(IPresentationEngine.NO_MOVE); if (el.getTags().contains(IPresentationEngine.DRAGGABLE)) { el.getTags().remove(IPresentationEngine.DRAGGABLE); if (el.getTags().contains(IPresentationEngine.NO_MOVE)) { el.getTags().remove(IPresentationEngine.NO_MOVE); if (!el.getTags().contains(IPresentationEngine.DRAGGABLE)) { el.getTags().add(IPresentationEngine.DRAGGABLE); el.setToBeRendered(false); el.setToBeRendered(true);
MPart mPart = (MPart) element; MToolBar toolbar = mPart.getToolbar(); if (toolbar != null && toolbar.getChildren() != null) { toolbar.updateLocalization(); updateLocalization(toolbar.getChildren());
private void addTrimContribution(String idContrib, ArrayList<MToolBarContribution> contributions, ArrayList<MTrimContribution> trimContributions, IConfigurationElement element, String parentId, String tpath, String tgroup) { final String elementId = MenuHelper.getId(element); MTrimContribution trimContribution = MenuFactoryImpl.eINSTANCE.createTrimContribution(); trimContribution.getTags().add(ContributionsAnalyzer.MC_TOOLBAR); trimContribution.getTags().add("scheme:toolbar"); //$NON-NLS-1$ if (idContrib != null && idContrib.length() > 0) { trimContribution.setElementId(idContrib + "/" + elementId); //$NON-NLS-1$ } else { trimContribution.setElementId(elementId); } trimContribution.setParentId(parentId); trimContribution.setPositionInParent("after=additions"); //$NON-NLS-1$ trimContribution.setVisibleWhen(createVisibleWhen()); MToolBar tb = MenuFactoryImpl.eINSTANCE.createToolBar(); tb.setElementId(tpath); tb.getTransientData().put("Name", MenuHelper.getLabel(this.configElement)); //$NON-NLS-1$ tb.getTransientData().put("ActionSet", id); //$NON-NLS-1$ trimContribution.getChildren().add(tb); trimContributions.add(trimContribution); }
protected MToolBar getToolbarModel(MApplicationElement model, ToolBarManager toolbarManager, MenuLocationURI location) { final IRendererFactory factory = e4Context.get(IRendererFactory.class); final AbstractPartRenderer obj = factory.getRenderer( MenuFactoryImpl.eINSTANCE.createToolBar(), null); if (!(obj instanceof ToolBarManagerRenderer)) { return null; } ToolBarManagerRenderer renderer = (ToolBarManagerRenderer) obj; MToolBar mToolBar = renderer.getToolBarModel(toolbarManager); if (mToolBar != null) { String tag = "toolbar:" + location.getPath(); //$NON-NLS-1$ if (!mToolBar.getTags().contains(tag)) { mToolBar.getTags().add(tag); } return mToolBar; } if (mToolBar == null) { mToolBar = MenuFactoryImpl.eINSTANCE.createToolBar(); mToolBar.setElementId(location.getPath()); mToolBar.getTags().add(ContributionsAnalyzer.MC_TOOLBAR); String tag = "toolbar:" + location.getPath(); //$NON-NLS-1$ mToolBar.getTags().add(tag); addToolbar(model, mToolBar, ((MContext) model).getContext()); } renderer.linkModelToManager(mToolBar, toolbarManager); return mToolBar; }
@Override public void setVisible(boolean visible) { super.setVisible(visible); tb.setVisible(visible); }