Example usage for org.eclipse.jface.action ContributionItem getParent

List of usage examples for org.eclipse.jface.action ContributionItem getParent

Introduction

In this page you can find the example usage for org.eclipse.jface.action ContributionItem getParent.

Prototype

public IContributionManager getParent() 

Source Link

Document

Returns the parent contribution manager, or null if this contribution item is not currently added to a contribution manager.

Usage

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;
}