private void contributeToolBarGroup(ArrayList<MToolBarContribution> contributions, String parentId, String group) { if (toolbarContributionGroupIds.contains(parentId + group)) { return; } toolbarContributionGroupIds.add(parentId + group); MToolBarContribution toolBarContribution = MenuFactoryImpl.eINSTANCE .createToolBarContribution(); toolBarContribution.getTags().add(ContributionsAnalyzer.MC_MENU); toolBarContribution.getTags().add("scheme:toolbar"); //$NON-NLS-1$ toolBarContribution.setParentId(parentId); toolBarContribution.setPositionInParent("after=additions"); //$NON-NLS-1$ MToolBarSeparator sep = MenuFactoryImpl.eINSTANCE.createToolBarSeparator(); sep.setElementId(group); sep.setVisible(false); toolBarContribution.getChildren().add(sep); contributions.add(toolBarContribution); }
public ToolBarKey(MToolBarContribution mc) { super(mc.getParentId(), mc.getPositionInParent(), mc.getTags(), (MCoreExpression) mc .getVisibleWhen(), mc.getTransientData().get(FACTORY)); this.contribution = mc; mc.setWidget(this); }
public boolean anyVisibleWhen() { if (toolbarContribution.getVisibleWhen() != null) { return true; } List<MToolBarElement> childrenToInspect; if (toolbarContribution.getTransientData().get(FACTORY) != null) { // See mergeIntoModel childrenToInspect = this.generatedElements; } else { childrenToInspect = toolbarContribution.getChildren(); } for (MToolBarElement child : childrenToInspect) { if (requiresVisibilityCheck(child)) { return true; } } return false; }
public static void gatherToolBarContributions(final MToolBar toolbarModel, final List<MToolBarContribution> toolbarContributionList, final String id, final ArrayList<MToolBarContribution> toContribute, final ExpressionContext eContext) { if (id == null || id.length() == 0) { return; } for (MToolBarContribution toolBarContribution : toolbarContributionList) { String parentID = toolBarContribution.getParentId(); boolean filtered = isFiltered(toolbarModel, toolBarContribution); if (filtered || !id.equals(parentID) || !toolBarContribution.isToBeRendered()) { continue; } toContribute.add(toolBarContribution); } }
public boolean mergeIntoModel() { int idx = getIndex(toolbarModel, toolbarContribution.getPositionInParent()); if (idx == -1) { return false; if (toolbarContribution.getTransientData().get(FACTORY) != null) { copyElements = mergeFactoryIntoModel(); } else { copyElements = new ArrayList<>(); for (MToolBarElement item : toolbarContribution.getChildren()) { MToolBarElement copy = (MToolBarElement) EcoreUtil .copy((EObject) item);
private void processToolbarChildren(ArrayList<MToolBarContribution> contributions, IConfigurationElement toolbar, String parentId, String position) { MToolBarContribution toolBarContribution = MenuFactoryImpl.eINSTANCE .createToolBarContribution(); String idContrib = MenuHelper.getId(toolbar); if (idContrib != null && idContrib.length() > 0) { toolBarContribution.setElementId(idContrib); } toolBarContribution.setParentId(parentId); toolBarContribution.setPositionInParent(position); toolBarContribution.getTags().add("scheme:" + location.getScheme()); //$NON-NLS-1$ ContextFunction generator = new ContributionFactoryGenerator(configElement, 1); toolBarContribution.getTransientData().put(ToolBarContributionRecord.FACTORY, generator); contributions.add(toolBarContribution); } }
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; }
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; }
continue; Object[] array = item.getChildren().toArray(); for (int c = 0; c < array.length; c++) { MToolBarElement me = (MToolBarElement) array[c]; if (!containsMatching(toContribute.getChildren(), me)) { toContribute.getChildren().add(me); toContribute.setWidget(null); result.add(toContribute);
/** * @return */ private List<MToolBarElement> mergeFactoryIntoModel() { Object obj = toolbarContribution.getTransientData().get(FACTORY); if (!(obj instanceof IContextFunction)) { return Collections.EMPTY_LIST; } IEclipseContext staticContext = getStaticContext(); staticContext.remove(List.class); factoryDispose = (Runnable) ((IContextFunction) obj).compute( staticContext, null); return staticContext.get(List.class); }
public static boolean isVisible(MToolBarContribution contribution, ExpressionContext eContext) { if (contribution.getVisibleWhen() == null) { return true; } return isVisible((MCoreExpression) contribution.getVisibleWhen(), eContext); }
public boolean mergeIntoModel() { int idx = getIndex(toolbarModel, toolbarContribution.getPositionInParent()); if (idx == -1) { return false; if (toolbarContribution.getTransientData().get(FACTORY) != null) { copyElements = mergeFactoryIntoModel(); } else { copyElements = new ArrayList<MToolBarElement>(); for (MToolBarElement item : toolbarContribution.getChildren()) { MToolBarElement copy = (MToolBarElement) EcoreUtil .copy((EObject) item);
private void processToolbarChildren(AbstractContributionFactory factory, MenuLocationURI location, String parentId, String position) { MToolBarContribution toolBarContribution = MenuFactoryImpl.eINSTANCE .createToolBarContribution(); toolBarContribution.setElementId(factory.getNamespace() + ":" + factory.hashCode()); //$NON-NLS-1$ toolBarContribution.setParentId(parentId); toolBarContribution.setPositionInParent(position); toolBarContribution.getTags().add("scheme:" + location.getScheme()); //$NON-NLS-1$ ContextFunction generator = new ContributionFactoryGenerator(factory, 1); toolBarContribution.getTransientData().put(ToolBarContributionRecord.FACTORY, generator); factoriesToContributions.put(factory, toolBarContribution); MApplication app = e4Context.get(MApplication.class); app.getToolBarContributions().add(toolBarContribution); }
/** * @return */ private List<MToolBarElement> mergeFactoryIntoModel() { Object obj = toolbarContribution.getTransientData().get(FACTORY); if (!(obj instanceof IContextFunction)) { return Collections.EMPTY_LIST; } IEclipseContext staticContext = getStaticContext(); staticContext.remove(List.class); factoryDispose = (Runnable) ((IContextFunction) obj) .compute(staticContext, null); return staticContext.get(List.class); }
toContribute.add(contribution); } else { if (contribution.getVisibleWhen() != null) { ctx.runAndTrack(new RunAndTrack() { @Override
public static void XXXgatherToolBarContributions(final MToolBar toolbarModel, final List<MToolBarContribution> toolbarContributionList, final String id, final ArrayList<MToolBarContribution> toContribute) { if (id == null || id.length() == 0) { return; } for (MToolBarContribution toolBarContribution : toolbarContributionList) { String parentID = toolBarContribution.getParentId(); boolean filtered = isFiltered(toolbarModel, toolBarContribution); if (filtered || !id.equals(parentID) || !toolBarContribution.isToBeRendered()) { continue; } toContribute.add(toolBarContribution); } }
String idContrib = MenuHelper.getId(toolbar); if (idContrib != null && idContrib.length() > 0) { toolBarContribution.setElementId(idContrib); toolBarContribution.setParentId(parentId); toolBarContribution.setPositionInParent(position); toolBarContribution.getTags().add("scheme:" + location.getScheme()); //$NON-NLS-1$ toolBarContribution.getChildren().add(element); } else if (IWorkbenchRegistryConstants.TAG_SEPARATOR.equals(itemType)) { MToolBarElement element = createToolBarSeparatorAddition(child); toolBarContribution.getChildren().add(element); } else if (IWorkbenchRegistryConstants.TAG_CONTROL.equals(itemType)) { MToolBarElement element = createToolControlAddition(child); toolBarContribution.getChildren().add(element); } else if (IWorkbenchRegistryConstants.TAG_DYNAMIC.equals(itemType)) { ContextFunction generator = new ContextFunction() { toolBarContribution.getChildren().add(element);
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()); } }
toolBarContribution.getTags().add(ContributionsAnalyzer.MC_MENU); toolBarContribution.getTags().add("scheme:toolbar"); //$NON-NLS-1$ final String elementId = MenuHelper.getId(element); if (idContrib != null && idContrib.length() > 0) { toolBarContribution.setElementId(idContrib + "/" + elementId); //$NON-NLS-1$ toolBarContribution.getTags().add("ActionSet::" + idContrib); //$NON-NLS-1$ } else { toolBarContribution.setElementId(elementId); toolBarContribution.setParentId(tpath); toolBarContribution.setPositionInParent(positionInParent); toolBarContribution.setVisibleWhen(createVisibleWhen()); toolBarContribution.getChildren().add(action);