List of usage examples for org.eclipse.jface.action ContributionItem getParent
public IContributionManager getParent()
null if this contribution item is not currently added to a contribution manager. From source file:org.eclipse.e4.ui.workbench.renderers.swt.RenderedMenuItemRenderer.java
License:Open Source License
private Object fill(IContributionItem item, Menu menu) { ContributionItem contribution = (ContributionItem) item; MenuManager manager = (MenuManager) contribution.getParent(); try {//ww w.ja v a 2 s . c om if (manager == null) { manager = new MenuManager(); manager.add(contribution); } getAboutToShow().invoke(manager, new Object[0]); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } int itemCount = menu.getItemCount(); List<MenuRecord> list = map.get(item); if (list != null) { for (int i = 0; i < list.size(); i++) { MenuRecord record = list.get(i); Menu storedMenu = record.getMenu(); if (storedMenu.isDisposed()) { list.remove(i); i--; } else if (storedMenu == menu) { record.dispose(); itemCount = menu.getItemCount(); list.remove(i); break; } } } item.fill(menu, itemCount); int endIndex = menu.getItemCount(); if (list == null) { if (itemCount != endIndex) { list = new ArrayList<MenuRecord>(); MenuRecord record = new MenuRecord(menu); for (int i = itemCount; i < endIndex; i++) { record.addItem(menu.getItem(i)); } list.add(record); map.put(item, list); } } else { for (int i = 0; i < list.size(); i++) { MenuRecord record = list.get(i); if (record.getMenu() == menu) { list.remove(i); record = new MenuRecord(menu); for (int j = itemCount; j < endIndex; j++) { record.addItem(menu.getItem(j)); } list.add(record); return null; } } MenuRecord record = new MenuRecord(menu); for (int i = itemCount; i < endIndex; i++) { record.addItem(menu.getItem(i)); } list.add(record); map.put(item, list); } return null; }
From source file:org.eclipse.pde.internal.ui.tests.macro.BooleanSelectionCommand.java
License:Open Source License
private ArrayList getPath(MenuItem item) { ArrayList segments = new ArrayList(); Object data = item.getData(); if (data instanceof ContributionItem) { ContributionItem aitem = (ContributionItem) data; MenuManager manager = (MenuManager) aitem.getParent(); while (manager != null) { String id = manager.getId(); if (id == null) break; segments.add(0, id);//from w w w .ja v a 2 s.c om manager = (MenuManager) manager.getParent(); } } return segments.size() > 0 ? segments : null; }