private static boolean containsMatching(List<MToolBarElement> children, MToolBarElement me) { for (MToolBarElement element : children) { if (Util.equals(me.getElementId(), element.getElementId()) && element.getClass().isInstance(me) && (element instanceof MToolBarSeparator || element instanceof MToolBar)) { return true; } } return false; }
@Override public void handleChildrenRemove(MToolBar parent, Collection<MToolBarElement> elements) { Iterator<MToolBarElement> iterator = elements.iterator(); while (iterator.hasNext()) { MToolBarElement element = iterator.next(); if (element.isToBeRendered() && element.getWidget() != null) { hideChild(parent, element); } } } }
boolean needUpdate = false; Boolean overridenVisibility = getOverridenVisibility(item, manager); Boolean prevChildVisible = (Boolean) modelItem.getTransientData().get(PREV_CHILD_VISIBLE); boolean modelVisible = modelItem.isVisible(); boolean itemVisible = item.isVisible(); if (modelVisible != overridenVisibility || itemVisible != overridenVisibility) { needUpdate = true; modelItem.getTransientData().put(PREV_CHILD_VISIBLE, itemVisible); modelItem.setVisible(overridenVisibility); } else { return needUpdate; boolean oldVisible = modelItem.isVisible(); if (oldVisible != prevChildVisible) { needUpdate = true; modelItem.setVisible(prevChildVisible); modelItem.getTransientData().remove(PREV_CHILD_VISIBLE); } else { return needUpdate;
private boolean requiresVisibilityCheck(MToolBarElement toolBarElement) { return toolBarElement.getVisibleWhen() != null || toolBarElement.getPersistedState().get(MenuManagerRenderer.VISIBILITY_IDENTIFIER) != null; }
private MToolBarElement createToolBarSeparatorAddition(final IConfigurationElement sepAddition) { String name = MenuHelper.getName(sepAddition); MToolBarElement element = MenuFactoryImpl.eINSTANCE.createToolBarSeparator(); element.setElementId(name); if (!MenuHelper.isSeparatorVisible(sepAddition)) { element.setToBeRendered(false); element.setVisible(false); element.getTags().add(MenuManagerRenderer.GROUP_MARKER); } return element; }
String attName = (String) event.getProperty(UIEvents.EventTags.ATTNAME); if (UIEvents.UIElement.TOBERENDERED.equals(attName)) { Object obj = itemModel.getParent(); if (!(obj instanceof MToolBar)) { return; if (itemModel.isToBeRendered()) { if (parent != null) { modelProcessSwitch(parent, itemModel); ici.setVisible(itemModel.isVisible()); return; ici.setVisible(itemModel.isVisible()); } else { Boolean visible = ov.getVisible(ici); ici.setVisible(itemModel.isVisible());
/** * @param context */ public void updateVisibility(IEclipseContext context) { ExpressionContext exprContext = new ExpressionContext(context); updateIsVisible(exprContext); HashSet<ToolBarContributionRecord> recentlyUpdated = new HashSet<ToolBarContributionRecord>(); recentlyUpdated.add(this); boolean changed = false; for (MToolBarElement item : generatedElements) { boolean currentVisibility = computeVisibility(recentlyUpdated, item, exprContext); if (item.isVisible() != currentVisibility) { item.setVisible(currentVisibility); changed = true; } } for (MToolBarElement item : sharedElements) { boolean currentVisibility = computeVisibility(recentlyUpdated, item, exprContext); if (item.isVisible() != currentVisibility) { item.setVisible(currentVisibility); changed = true; } } if (changed) { getManagerForModel().markDirty(); } }
copy.setVisible(!requiresVisibilityCheck(copy)); if (copy instanceof MToolBarSeparator) { MToolBarSeparator shared = findExistingSeparator(copy .getElementId()); if (shared == null) { shared = (MToolBarSeparator) copy;
private void addToManager(ToolBarManager parentManager, MToolBarElement model, IContributionItem ci) { MElementContainer<MUIElement> parent = model.getParent(); // technically this shouldn't happen if (parent == null) { parentManager.add(ci); } else { int index = parent.getChildren().indexOf(model); // shouldn't be -1, but better safe than sorry if (index > parentManager.getSize() || index == -1) { parentManager.add(ci); } else { parentManager.insert(index, ci); } } }
@Override public void doProcessContent(MToolBar element) { WToolBar<N> toolbar = getWidget(element); if( toolbar == null ) { getLogger().error("Could not find widget for '"+element+"'"); //$NON-NLS-1$//$NON-NLS-2$ return; } for (MToolBarElement item : element.getChildren()) { if (item.isToBeRendered()) { WWidget<MToolBarElement> itemWidget = engineCreateWidget(item); if (itemWidget != null && isChildRenderedAndVisible(item)) { toolbar.addChild(itemWidget); } } } }
public void collectInfo(ExpressionInfo info) { ContributionsAnalyzer.collectInfo(info, toolbarContribution.getVisibleWhen()); for (MToolBarElement item : generatedElements) { ContributionsAnalyzer.collectInfo(info, item.getVisibleWhen()); } for (MToolBarElement item : sharedElements) { ContributionsAnalyzer.collectInfo(info, item.getVisibleWhen()); } }
@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; } });
.getProperty(UIEvents.EventTags.ATTNAME); if (UIEvents.UIElement.TOBERENDERED.equals(attName)) { Object obj = itemModel.getParent(); if (!(obj instanceof MToolBar)) { return; if (itemModel.isToBeRendered()) { if (parent != null) { modelProcessSwitch(parent, itemModel); return; ici.setVisible(itemModel.isVisible()); ToolBarManager parent = (ToolBarManager) ((ContributionItem) ici) .getParent();
boolean currentVisibility = computeVisibility(recentlyUpdated, item, exprContext); if (item.isVisible() != currentVisibility) { item.setVisible(currentVisibility); changed = true; boolean currentVisibility = computeVisibility(recentlyUpdated, item, exprContext); if (item.isVisible() != currentVisibility) { item.setVisible(currentVisibility); changed = true;
copy.setVisible(!anyVisibleWhen()); if (copy instanceof MToolBarSeparator) { MToolBarSeparator shared = findExistingSeparator(copy .getElementId()); if (shared == null) { shared = (MToolBarSeparator) copy;
public boolean anyVisibleWhen() { if (toolbarContribution.getVisibleWhen() != null) { return true; } for (MToolBarElement child : toolbarContribution.getChildren()) { if (child.getVisibleWhen() != null || child.getPersistedState().get( MenuManagerRenderer.VISIBILITY_IDENTIFIER) != null) { return true; } } return false; }
/** * @param parentManager * @param itemModel * @param ci */ private void addToManager(ToolBarManager parentManager, MToolBarElement model, IContributionItem ci) { MElementContainer<MUIElement> parent = model.getParent(); // technically this shouldn't happen if (parent == null) { parentManager.add(ci); } else { int index = parent.getChildren().indexOf(model); // shouldn't be -1, but better safe than sorry if (index > parentManager.getSize() || index == -1) { parentManager.add(ci); } else { parentManager.insert(index, ci); } } }
&& item.getPersistedState().get( MenuManagerRenderer.VISIBILITY_IDENTIFIER) != null) { String identifier = item.getPersistedState().get( MenuManagerRenderer.VISIBILITY_IDENTIFIER); Object rc = exprContext.eclipseContext.get(identifier); if (currentVisibility && item.getVisibleWhen() != null) { boolean val = ContributionsAnalyzer.isVisible(item.getVisibleWhen(), exprContext); currentVisibility = val;
@Override public void handleChildrenAddition(MToolBar parent, Collection<MToolBarElement> elements) { Iterator<MToolBarElement> iterator = elements.iterator(); while (iterator.hasNext()) { MToolBarElement element = iterator.next(); if (element.isToBeRendered() ) { if (element.getWidget() == null) { engineCreateWidget(element); } else { childRendered(parent, element); } } } }