private static boolean containsMatching(List<MMenuElement> children, MMenuElement me) { for (MMenuElement element : children) { if (Util.equals(me.getElementId(), element.getElementId()) && element.getClass().isInstance(me) && (element instanceof MMenuSeparator || element instanceof MMenu)) { return true; } } return false; }
MMenuSeparator findExistingSeparator(String id) { if (id == null) { return null; } for (MMenuElement item : menuModel.getChildren()) { if (item instanceof MMenuSeparator && id.equals(item.getElementId())) { return (MMenuSeparator) item; } } return null; }
MMenu findExistingMenu(String id) { if (id == null) { return null; } for (MMenuElement item : menuModel.getChildren()) { if (item instanceof MMenu && id.equals(item.getElementId())) { return (MMenu) item; } } return null; }
MMenuSeparator findExistingSeparator(String id) { if (id == null) { return null; } for (MMenuElement item : menuModel.getChildren()) { if (item instanceof MMenuSeparator && id.equals(item.getElementId())) { return (MMenuSeparator) item; } } return null; }
MMenu findExistingMenu(String id) { if (id == null) { return null; } for (MMenuElement item : menuModel.getChildren()) { if (item instanceof MMenu && id.equals(item.getElementId())) { return (MMenu) item; } } return null; }
public static int indexForId(MElementContainer<MMenuElement> parentMenu, String id) { if (id == null || id.length() == 0) { return -1; } int i = 0; for (MMenuElement item : parentMenu.getChildren()) { if (id.equals(item.getElementId())) { return i; } i++; } return -1; }
if (item instanceof MMenu && existingMenuIds.contains(item.getElementId())) { && existingSeparatorNames.contains(item.getElementId())) { if (copy instanceof MMenu && copy.getElementId() != null) { existingMenuIds.add(copy.getElementId()); } else if (copy instanceof MMenuSeparator && copy.getElementId() != null) { existingSeparatorNames.add(copy.getElementId());
public static void addMenuContributions(final MMenu menuModel, final ArrayList<MMenuContribution> toContribute, final ArrayList<MMenuElement> menuContributionsToRemove) { HashSet<String> existingMenuIds = new HashSet<>(); HashSet<String> existingSeparatorNames = new HashSet<>(); for (MMenuElement child : menuModel.getChildren()) { String elementId = child.getElementId(); if (child instanceof MMenu && elementId != null) { existingMenuIds.add(elementId); } else if (child instanceof MMenuSeparator && elementId != null) { existingSeparatorNames.add(elementId); } } boolean done = toContribute.size() == 0; while (!done) { ArrayList<MMenuContribution> curList = new ArrayList<>(toContribute); int retryCount = toContribute.size(); toContribute.clear(); for (MMenuContribution menuContribution : curList) { if (!processAddition(menuModel, menuContributionsToRemove, menuContribution, existingMenuIds, existingSeparatorNames)) { toContribute.add(menuContribution); } } // 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); } }
HashSet<String> existingSeparatorNames = new HashSet<>(); for (MMenuElement child : menuModel.getChildren()) { String elementId = child.getElementId(); if (child instanceof MMenu && elementId != null) { existingMenuIds.add(elementId);
HashSet<String> existingSeparatorNames = new HashSet<String>(); for (MMenuElement child : menuModel.getChildren()) { String elementId = child.getElementId(); if (child instanceof MMenu && elementId != null) { existingMenuIds.add(elementId);
HashSet<String> existingSeparatorNames = new HashSet<String>(); for (MMenuElement child : menuModel.getChildren()) { String elementId = child.getElementId(); if (child instanceof MMenu && elementId != null) { existingMenuIds.add(elementId);
/** * @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); } } }
if (menuElement.getElementId() == null || menuElement.getElementId().length() < 1) { menuElement.setElementId(currentMenuElement .getElementId() + "." + j); //$NON-NLS-1$
if (menuElement.getElementId() == null || menuElement.getElementId().length() < 1) { menuElement.setElementId(currentMenuElement .getElementId() + "." + j); //$NON-NLS-1$
MMenu shared = findExistingMenu(copy.getElementId()); if (shared == null) { shared = (MMenu) copy; } else if (copy instanceof MMenuSeparator) { MMenuSeparator shared = findExistingSeparator(copy .getElementId()); if (shared == null) { shared = (MMenuSeparator) copy;
MMenu shared = findExistingMenu(copy.getElementId()); if (shared == null) { shared = (MMenu) copy; } else if (copy instanceof MMenuSeparator) { MMenuSeparator shared = findExistingSeparator(copy .getElementId()); if (shared == null) { shared = (MMenuSeparator) copy;