@Override public void removeContributionFactory(AbstractContributionFactory factory) { Object contribution; if ((contribution = factoriesToContributions.remove(factory)) != null) { MApplication app = e4Context.get(MApplication.class); if (app == null) return; if (contribution instanceof MMenuContribution) { app.getMenuContributions().remove(contribution); } else if (contribution instanceof MToolBarContribution) { app.getToolBarContributions().remove(contribution); } } }
@Override public void dispose() { ControlContributionRegistry.clear(); application.getMenuContributions().removeAll(menuContributions); application.getToolBarContributions().removeAll(toolBarContributions); application.getTrimContributions().removeAll(trimContributions); menuContributions.clear(); cacheEntries.clear(); super.dispose(); } @Override
@Override protected void read() { super.read(); readAdditions(); ArrayList<MMenuContribution> tmp = new ArrayList<>(menuContributions); menuContributions.clear(); ContributionsAnalyzer.mergeContributions(tmp, menuContributions); application.getMenuContributions().addAll(menuContributions); ArrayList<MToolBarContribution> tmpToolbar = new ArrayList<>( toolBarContributions); toolBarContributions.clear(); ContributionsAnalyzer.mergeToolBarContributions(tmpToolbar, toolBarContributions); application.getToolBarContributions().addAll(toolBarContributions); ArrayList<MTrimContribution> tmpTrim = new ArrayList<>(trimContributions); trimContributions.clear(); ContributionsAnalyzer.mergeTrimContributions(tmpTrim, trimContributions); application.getTrimContributions().addAll(trimContributions); }
/** * @param menuModel * @param isMenuBar * @param isPopup */ public void processContributions(MMenu menuModel, String elementId, boolean isMenuBar, boolean isPopup) { if (elementId == null) { return; } final ArrayList<MMenuContribution> toContribute = new ArrayList<>(); ContributionsAnalyzer.XXXgatherMenuContributions(menuModel, application.getMenuContributions(), elementId, toContribute, null, isPopup); generateContributions(menuModel, toContribute, isMenuBar); for (MMenuElement element : menuModel.getChildren()) { if (element instanceof MMenu) { processContributions((MMenu) element, element.getElementId(), false, isPopup); } } }
/** * @param menuModel * @param isMenuBar * @param isPopup */ public void processContributions(MMenu menuModel, String elementId, boolean isMenuBar, boolean isPopup) { if (elementId == null) { return; } final ArrayList<MMenuContribution> toContribute = new ArrayList<MMenuContribution>(); ContributionsAnalyzer.XXXgatherMenuContributions(menuModel, application.getMenuContributions(), elementId, toContribute, null, isPopup); generateContributions(menuModel, toContribute, isMenuBar); for (MMenuElement element : menuModel.getChildren()) { if (element instanceof MMenu) { processContributions((MMenu) element, element.getElementId(), false, isPopup); } } }
appCopy.getMenuContributions().clear(); appCopy.getToolBarContributions().clear(); appCopy.getTrimContributions().clear();
factoriesToContributions.put(factory, menuContribution); MApplication app = e4Context.get(MApplication.class); app.getMenuContributions().add(menuContribution);
@Override public void processContents(MElementContainer<MUIElement> container) { if (container.getChildren().size() == 0) { Object obj = container.getWidget(); if (obj instanceof MenuItem) { MenuItem mi = (MenuItem) obj; if (mi.getMenu() == null) { mi.setMenu(new Menu(mi)); } Menu menu = mi.getMenu(); MenuItem menuItem = new MenuItem(menu, SWT.PUSH); menuItem.setText(MenuManagerRendererFilter.NUL_MENU_ITEM); menuItem.setEnabled(false); } } super.processContents(container); Object obj = container.getWidget(); Object menuObj = container; if ((obj instanceof Menu) && (((Menu) obj).getStyle() & SWT.BAR) != 0 && (menuObj instanceof MMenu)) { MMenu menuModel = (MMenu) menuObj; IEclipseContext ctx = getContext(container); ExpressionContext eContext = new ExpressionContext(ctx); ArrayList<MMenuContribution> toContribute = new ArrayList<MMenuContribution>(); ContributionsAnalyzer.gatherMenuContributions(menuModel, application.getMenuContributions(), menuModel.getElementId(), toContribute, eContext, false); addMenuBarContributions(menuModel, toContribute, ctx, eContext); } }
.getContext()); ContributionsAnalyzer.gatherMenuContributions(menuModel, application.getMenuContributions(), location, toContribute, eContext, true); ContributionsAnalyzer.addMenuContributions(menuModel, toContribute, menuContributionsToRemove);