public ToolBarManager getManagerForModel() { return renderer.getManager(toolbarModel); }
public ToolBarManager getManagerForModel() { return renderer.getManager(toolbarModel); }
private void generateContributions(MToolBar toolbarModel, List<MToolBarContribution> toContribute) { ToolBarManager manager = getManager(toolbarModel); boolean done = toContribute.isEmpty(); while (!done) { ArrayList<MToolBarContribution> curList = new ArrayList<>(toContribute); int retryCount = toContribute.size(); toContribute.clear(); for (final MToolBarContribution contribution : curList) { if (!processAddition(toolbarModel, manager, contribution)) { toContribute.add(contribution); } } // We're done if the retryList is now empty (everything done) or // if the list hasn't changed at all (no hope) done = toContribute.isEmpty() || toContribute.size() == retryCount; } }
/** * @param toolbarModel * @param toContribute */ private void generateContributions(MToolBar toolbarModel, ArrayList<MToolBarContribution> toContribute) { ToolBarManager manager = getManager(toolbarModel); boolean done = toContribute.size() == 0; while (!done) { ArrayList<MToolBarContribution> curList = new ArrayList<MToolBarContribution>( toContribute); int retryCount = toContribute.size(); toContribute.clear(); for (final MToolBarContribution contribution : curList) { if (!processAddition(toolbarModel, manager, contribution)) { toContribute.add(contribution); } } // We're done if the retryList is now empty (everything done) or // if the list hasn't changed at all (no hope) done = (toContribute.size() == 0) || (toContribute.size() == retryCount); } }
/** * @param model * @param manager */ public void clearModelToManager(MToolBar model, ToolBarManager manager) { for (MToolBarElement element : model.getChildren()) { if (element instanceof MToolBar) { clearModelToManager((MToolBar) element, getManager((MToolBar) element)); } IContributionItem ici = getContribution(element); clearModelToContribution(element, ici); } ToolBarManager removed = modelToManager.remove(model); if (manager == null) { managerToModel.remove(removed); } else { managerToModel.remove(manager); } if (Policy.DEBUG_RENDERER) { logger.debug("\nTBMR:clearModelToManager: modelToManager size = {0}, managerToModel size = {1}", //$NON-NLS-1$ modelToManager.size(), managerToModel.size()); } }
@Override public IContributionItem[] getItems() { ArrayList<IContributionItem> items = new ArrayList<>(); List<MToolBar> toolBars = modelService.findElements(window, null, MToolBar.class); for (final MToolBar tb : toolBars) { if (tb.getTransientData().get(OBJECT) != null) { items.add((IContributionItem) tb.getTransientData().get(OBJECT)); } else { ToolBarManagerRenderer renderer = (ToolBarManagerRenderer) rendererFactory.getRenderer(tb, null); final ToolBarManager manager = renderer.getManager(tb); if (manager != null) { ToolBarContributionItemExtension toolBarContributionItem = new ToolBarContributionItemExtension( manager, tb); tb.getTransientData().put(OBJECT, toolBarContributionItem); toolbarExtensions.add(toolBarContributionItem); items.add(toolBarContributionItem); } else if (tb.getTags().contains(TOOLBAR_SEPARATOR)) { if (tb.getTransientData().get(OBJECT) != null) { items.add((IContributionItem) tb.getTransientData().get(OBJECT)); } items.add(new GroupMarker(tb.getElementId())); } } } return items.toArray(new IContributionItem[items.size()]); }
ToolBarManager manager = renderer.getManager(ext.tb); if (manager != null) { manager.dispose(); ToolBarManager manager = renderer.getManager(mToolBar); if (manager != null) { manager.dispose();
@Override public boolean changed(IEclipseContext context) { if (getManager(toolbarModel) == null) { // tool bar no longer being managed, ignore it return false; } record.updateVisibility(parentContext.getActiveLeaf()); runExternalCode(new Runnable() { public void run() { manager.update(false); } }); // disposeToolbarIfNecessary(toolbarModel); return true; } });
private void releaseToolbar(IRendererFactory rendererFactory, ToolBarImpl tb) { AbstractPartRenderer apr = rendererFactory.getRenderer(tb, null); if (apr instanceof ToolBarManagerRenderer) { ToolBarManagerRenderer tbmr = (ToolBarManagerRenderer) apr; ToolBarManager tbm = tbmr.getManager(tb); tbmr.clearModelToManager(tb, null); if (tbm != null) { tbm.dispose(); tbm.removeAll(); } } } }
@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; }
/** * @param toolbarModel * @param elementId */ public void processContribution(MToolBar toolbarModel, String elementId) { ToolBarManager manager = getManager(toolbarModel); if (manager != null && manager.getControl() != null) { addCleanupDisposeListener(toolbarModel, manager.getControl()); } final ArrayList<MToolBarContribution> toContribute = new ArrayList<>(); ContributionsAnalyzer.XXXgatherToolBarContributions(toolbarModel, application.getToolBarContributions(), elementId, toContribute); generateContributions(toolbarModel, toContribute); }
@Override public void processContents(MElementContainer<MUIElement> container) { // I can either simply stop processing, or we can walk the model // ourselves like the "old" days // EMF gives us null lists if empty if (container == null) { return; } Object obj = container; ToolBarManager parentManager = getManager((MToolBar) obj); if (parentManager == null) { return; } // Process any contents of the newly created ME List<MUIElement> parts = container.getChildren(); if (parts != null) { MUIElement[] plist = parts.toArray(new MUIElement[parts.size()]); for (MUIElement childME : plist) { modelProcessSwitch(parentManager, (MToolBarElement) childME); } } parentManager.update(true); ToolBar toolbar = getToolbarFrom(container.getWidget()); if (toolbar != null) { toolbar.requestLayout(); } }
@Override public void processContents(MElementContainer<MUIElement> container) { // I can either simply stop processing, or we can walk the model // ourselves like the "old" days // EMF gives us null lists if empty if (container == null) return; Object obj = container; ToolBarManager parentManager = getManager((MToolBar) obj); if (parentManager == null) { return; } // Process any contents of the newly created ME List<MUIElement> parts = container.getChildren(); if (parts != null) { MUIElement[] plist = parts.toArray(new MUIElement[parts.size()]); for (int i = 0; i < plist.length; i++) { MUIElement childME = plist[i]; modelProcessSwitch(parentManager, (MToolBarElement) childME); } } parentManager.update(true); ToolBar tb = getToolbarFrom(container.getWidget()); if (tb != null) { tb.pack(true); tb.getShell().layout(new Control[] { tb }, SWT.DEFER); } }
/** * @param force */ public void updateAll(boolean force) { final List<MToolBar> children = modelService.findElements(window, null, MToolBar.class, null); for (MToolBar mToolbar : children) { if (mToolbar == null) { continue; } ToolBarManagerRenderer renderer = (ToolBarManagerRenderer) rendererFactory.getRenderer(mToolbar, null); final ToolBarManager manager = renderer.getManager(mToolbar); if (manager != null) { manager.update(true); // TODO: Hack to work around Bug 370961 ToolBar toolbar = manager.getControl(); if (toolbar != null && !toolbar.isDisposed()) { toolbar.requestLayout(); } } } }
@Override public boolean changed(IEclipseContext context) { if (getManager(toolbarModel) == null) { // tool bar no longer being managed, ignore it return false; } record.updateVisibility(parentContext.getActiveLeaf()); runExternalCode(() -> { manager.update(false); getUpdater().updateContributionItems(e -> { if (e instanceof MToolBarElement) { if (((MUIElement) ((MToolBarElement) e).getParent()) == toolbarModel) { return true; } } return false; }); }); return true; } });
private ToolBar createToolbar(final MUIElement element, Composite parent) { int orientation = getOrientation(element); ToolBarManager manager = getManager((MToolBar) element); if (manager == null) { manager = new ToolBarManager(orientation | SWT.WRAP | SWT.FLAT
ToolBarManager manager = toolbarMngrRenderer.getManager(toolBar); if (manager != null) { toolbarMngrRenderer.reconcileManagerToModel(manager, toolBar);
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; }
return; ToolBarManager parent = getManager((MToolBar) obj); if (itemModel.isToBeRendered()) { if (parent != null) {
final ToolBarManager manager = renderer.getManager(el); if (manager != null) { boolean wasVisible = el.isVisible();