Example usage for org.eclipse.jface.action IContributionItem isGroupMarker

List of usage examples for org.eclipse.jface.action IContributionItem isGroupMarker

Introduction

In this page you can find the example usage for org.eclipse.jface.action IContributionItem isGroupMarker.

Prototype

boolean isGroupMarker();

Source Link

Document

Returns whether this contribution item is a group marker.

Usage

From source file:com.sap.dirigible.ide.ui.rap.managers.ContribItem.java

License:Open Source License

public boolean isVisible() {
    boolean visibleItem = false;
    if (toolBarManager != null) {
        IContributionItem[] contributionItems = toolBarManager.getItems();
        for (int i = 0; i < contributionItems.length && !visibleItem; i++) {
            IContributionItem contributionItem = contributionItems[i];
            if ((!contributionItem.isGroupMarker()) && (!contributionItem.isSeparator())
                    && (contributionItem.isVisible())) {
                visibleItem = true;/*from ww  w  . j  a va 2s.c o m*/
            }
        }
    }

    return (visibleItem || super.isVisible());
}

From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java

License:Open Source License

protected void itemAdded(IContributionItem item) {
    super.itemAdded(item);
    if (item instanceof SubContributionItem)
        item = ((SubContributionItem) item).getInnerItem();
    if (!item.isGroupMarker())
        action.setEnabled(true);/* ww  w .j a  va2 s .c om*/
}

From source file:net.enilink.komma.edit.ui.action.ActionMenuManager.java

License:Open Source License

protected void itemRemoved(IContributionItem item) {
    super.itemRemoved(item);
    if (item instanceof SubContributionItem)
        item = ((SubContributionItem) item).getInnerItem();
    if (!item.isGroupMarker()) {
        action.setEnabled(false);/*from w ww  .  j  ava  2  s .  c  o m*/
        IContributionItem[] items = getItems();
        for (int i = 0; i < items.length; i++)
            if (!items[i].isGroupMarker()) {
                action.setEnabled(true);
                break;
            }
    }
}

From source file:net.refractions.udig.internal.ui.operations.OperationMenuFactory.java

License:Open Source License

/**
 * TODO summary sentence for addActionToMenu ...
 * //w  ww.j  a v  a 2  s. c  o  m
 * @param menuBar
 * @param action
 */
private void addActionToMenu(IMenuManager menuBar, OpAction action) {
    if (action.getMenuPath() != null)
        try {
            String[] paths = action.getMenuPath().split("/"); //$NON-NLS-1$
            IMenuManager manager = menuBar.findMenuUsingPath(IWorkbenchActionConstants.MB_ADDITIONS);
            if (manager == null) {
                manager = menuBar;
            }
            String markerID = null;
            for (String path : paths) {
                markerID = null;
                IContributionItem item = manager.findUsingPath(path);
                if (item == null) {
                    UiPlugin.log(action.getMenuPath() + " is not a valid menuPath", null); //$NON-NLS-1$
                    break;
                }
                if (item instanceof IMenuManager) {
                    manager = (IMenuManager) item;
                } else if (item.isGroupMarker()) {
                    markerID = item.getId();
                } else if (item instanceof SubContributionItem) {
                    item = ((SubContributionItem) item).getInnerItem();
                    if (item instanceof IMenuManager) {
                        manager = (IMenuManager) item;
                    } else if (item.isGroupMarker()) {
                        markerID = item.getId();
                    }
                }
            }
            if (manager != null) {
                if (markerID != null)
                    manager.appendToGroup(markerID, action);
                else {
                    manager.add(action);
                }
            } else {
                UiPlugin.log(action.getMenuPath() + " is not a valid menuPath", null); //$NON-NLS-1$                                
            }
        } catch (Exception e) {
            UiPlugin.log("Error adding operation to menu", e); //$NON-NLS-1$
        }
}

From source file:net.yatomiya.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java

License:Open Source License

/**
 * @param menuManager//from  w  w w.j  a va 2s.c o  m
 * @param menuModel
 */
public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) {
    List<MMenuElement> modelChildren = menuModel.getChildren();

    HashSet<MMenuItem> oldModelItems = new HashSet<>();
    HashSet<MMenu> oldMenus = new HashSet<>();
    HashSet<MMenuSeparator> oldSeps = new HashSet<>();
    for (MMenuElement itemModel : modelChildren) {
        if (OpaqueElementUtil.isOpaqueMenuSeparator(itemModel)) {
            oldSeps.add((MMenuSeparator) itemModel);
        } else if (OpaqueElementUtil.isOpaqueMenuItem(itemModel)) {
            oldModelItems.add((MMenuItem) itemModel);
        } else if (OpaqueElementUtil.isOpaqueMenu(itemModel)) {
            oldMenus.add((MMenu) itemModel);
        }
    }

    IContributionItem[] items = menuManager.getItems();
    for (int src = 0, dest = 0; src < items.length; src++, dest++) {
        IContributionItem item = items[src];

        if (item instanceof SubContributionItem) {
            // get the wrapped contribution item
            item = ((SubContributionItem) item).getInnerItem();
        }

        if (item instanceof MenuManager) {
            MenuManager childManager = (MenuManager) item;
            MMenu childModel = getMenuModel(childManager);
            if (childModel == null) {
                MMenu legacyModel = OpaqueElementUtil.createOpaqueMenu();
                legacyModel.setElementId(childManager.getId());
                legacyModel.setVisible(childManager.isVisible());
                legacyModel.setLabel(childManager.getMenuText());

                linkModelToManager(legacyModel, childManager);
                OpaqueElementUtil.setOpaqueItem(legacyModel, childManager);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacyModel);
                } else {
                    modelChildren.add(legacyModel);
                }
                reconcileManagerToModel(childManager, legacyModel);
            } else {
                if (OpaqueElementUtil.isOpaqueMenu(childModel)) {
                    oldMenus.remove(childModel);
                }
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != childModel) {
                        modelChildren.remove(childModel);
                        modelChildren.add(dest, childModel);
                    }
                } else {
                    modelChildren.add(childModel);
                }
                if (childModel instanceof MPopupMenu) {
                    if (((MPopupMenu) childModel).getContext() == null) {
                        IEclipseContext lclContext = getContext(menuModel);
                        if (lclContext != null) {
                            ((MPopupMenu) childModel)
                                    .setContext(lclContext.createChild(childModel.getElementId()));
                        }
                    }
                }

                if (childModel.getChildren().size() != childManager.getSize()) {
                    reconcileManagerToModel(childManager, childModel);
                }
            }
        } else if (item.isSeparator() || item.isGroupMarker()) {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MMenuSeparator legacySep = OpaqueElementUtil.createOpaqueMenuSeparator();
                legacySep.setElementId(item.getId());
                legacySep.setVisible(item.isVisible());
                OpaqueElementUtil.setOpaqueItem(legacySep, item);
                linkModelToContribution(legacySep, item);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacySep);
                } else {
                    modelChildren.add(legacySep);
                }
            } else if (OpaqueElementUtil.isOpaqueMenuSeparator(menuElement)) {
                MMenuSeparator legacySep = (MMenuSeparator) menuElement;
                oldSeps.remove(legacySep);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacySep) {
                        modelChildren.remove(legacySep);
                        modelChildren.add(dest, legacySep);
                    }
                } else {
                    modelChildren.add(legacySep);
                }
            }
        } else {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MMenuItem legacyItem = OpaqueElementUtil.createOpaqueMenuItem();
                legacyItem.setElementId(item.getId());
                legacyItem.setVisible(item.isVisible());
                OpaqueElementUtil.setOpaqueItem(legacyItem, item);
                linkModelToContribution(legacyItem, item);
                if (modelChildren.size() > dest) {
                    modelChildren.add(dest, legacyItem);
                } else {
                    modelChildren.add(legacyItem);
                }
            } else if (OpaqueElementUtil.isOpaqueMenuItem(menuElement)) {
                MMenuItem legacyItem = (MMenuItem) menuElement;
                oldModelItems.remove(legacyItem);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacyItem) {
                        modelChildren.remove(legacyItem);
                        modelChildren.add(dest, legacyItem);
                    }
                } else {
                    modelChildren.add(legacyItem);
                }
            }
        }
    }
    if (!oldModelItems.isEmpty()) {
        modelChildren.removeAll(oldModelItems);
        for (MMenuItem model : oldModelItems) {
            IContributionItem ici = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model);
            clearModelToContribution(model, ici);
        }
    }
    if (!oldMenus.isEmpty()) {
        modelChildren.removeAll(oldMenus);
        for (MMenu oldMenu : oldMenus) {
            MenuManager oldManager = getManager(oldMenu);
            clearModelToManager(oldMenu, oldManager);
        }
    }
    if (!oldSeps.isEmpty()) {
        modelChildren.removeAll(oldSeps);
        for (MMenuSeparator model : oldSeps) {
            IContributionItem item = (IContributionItem) OpaqueElementUtil.getOpaqueItem(model);
            clearModelToContribution(model, item);
        }
    }
}

From source file:org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer.java

License:Open Source License

/**
 * @param menuManager/*w ww. ja v  a2  s. c o  m*/
 * @param menuModel
 */
public void reconcileManagerToModel(MenuManager menuManager, MMenu menuModel) {
    List<MMenuElement> modelChildren = menuModel.getChildren();

    HashSet<MOpaqueMenuItem> oldModelItems = new HashSet<MOpaqueMenuItem>();
    HashSet<MOpaqueMenu> oldMenus = new HashSet<MOpaqueMenu>();
    HashSet<MOpaqueMenuSeparator> oldSeps = new HashSet<MOpaqueMenuSeparator>();
    for (MMenuElement itemModel : modelChildren) {
        if (itemModel instanceof MOpaqueMenuSeparator) {
            oldSeps.add((MOpaqueMenuSeparator) itemModel);
        } else if (itemModel instanceof MOpaqueMenuItem) {
            oldModelItems.add((MOpaqueMenuItem) itemModel);
        } else if (itemModel instanceof MOpaqueMenu) {
            oldMenus.add((MOpaqueMenu) itemModel);
        }
    }

    IContributionItem[] items = menuManager.getItems();
    for (int src = 0, dest = 0; src < items.length; src++, dest++) {
        IContributionItem item = items[src];
        if (item instanceof MenuManager) {
            MenuManager childManager = (MenuManager) item;
            MMenu childModel = getMenuModel(childManager);
            if (childModel == null) {
                MMenu legacyModel = MenuFactoryImpl.eINSTANCE.createOpaqueMenu();
                legacyModel.setElementId(childManager.getId());
                legacyModel.setVisible(childManager.isVisible());
                linkModelToManager(legacyModel, childManager);
                modelChildren.add(dest, legacyModel);
                reconcileManagerToModel(childManager, legacyModel);
            } else {
                if (childModel instanceof MOpaqueMenu) {
                    oldMenus.remove(childModel);
                }
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != childModel) {
                        modelChildren.remove(childModel);
                        modelChildren.add(dest, childModel);
                    }
                } else {
                    modelChildren.add(childModel);
                }
                if (childModel instanceof MPopupMenu) {
                    if (((MPopupMenu) childModel).getContext() == null) {
                        IEclipseContext lclContext = getContext(menuModel);
                        if (lclContext != null) {
                            ((MPopupMenu) childModel)
                                    .setContext(lclContext.createChild(childModel.getElementId()));
                        }
                    }
                }
            }
        } else if (item.isSeparator() || item.isGroupMarker()) {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MOpaqueMenuSeparator legacySep = MenuFactoryImpl.eINSTANCE.createOpaqueMenuSeparator();
                legacySep.setElementId(item.getId());
                legacySep.setVisible(item.isVisible());
                legacySep.setOpaqueItem(item);
                linkModelToContribution(legacySep, item);
                modelChildren.add(dest, legacySep);
            } else if (menuElement instanceof MOpaqueMenuSeparator) {
                MOpaqueMenuSeparator legacySep = (MOpaqueMenuSeparator) menuElement;
                oldSeps.remove(legacySep);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacySep) {
                        modelChildren.remove(legacySep);
                        modelChildren.add(dest, legacySep);
                    }
                } else {
                    modelChildren.add(legacySep);
                }
            }
        } else {
            MMenuElement menuElement = getMenuElement(item);
            if (menuElement == null) {
                MOpaqueMenuItem legacyItem = MenuFactoryImpl.eINSTANCE.createOpaqueMenuItem();
                legacyItem.setElementId(item.getId());
                legacyItem.setVisible(item.isVisible());
                legacyItem.setOpaqueItem(item);
                linkModelToContribution(legacyItem, item);
                modelChildren.add(dest, legacyItem);
            } else if (menuElement instanceof MOpaqueMenuItem) {
                MOpaqueMenuItem legacyItem = (MOpaqueMenuItem) menuElement;
                oldModelItems.remove(legacyItem);
                if (modelChildren.size() > dest) {
                    if (modelChildren.get(dest) != legacyItem) {
                        modelChildren.remove(legacyItem);
                        modelChildren.add(dest, legacyItem);
                    }
                } else {
                    modelChildren.add(legacyItem);
                }
            }
        }
    }
    if (!oldModelItems.isEmpty()) {
        modelChildren.removeAll(oldModelItems);
        for (MOpaqueMenuItem model : oldModelItems) {
            clearModelToContribution(model, (IContributionItem) model.getOpaqueItem());
        }
    }
    if (!oldMenus.isEmpty()) {
        modelChildren.removeAll(oldMenus);
        for (MOpaqueMenu oldMenu : oldMenus) {
            MenuManager oldManager = getManager(oldMenu);
            clearModelToManager(oldMenu, oldManager);
        }
    }
    if (!oldSeps.isEmpty()) {
        modelChildren.removeAll(oldSeps);
        for (MOpaqueMenuSeparator model : oldSeps) {
            clearModelToContribution(model, (IContributionItem) model.getOpaqueItem());
        }
    }
}

From source file:org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.AbstractContributionItemProvider.java

License:Open Source License

/**
 * Contributes the given item to the given manager in the given path/group.
 * //from   www. j  av a  2  s.co  m
 * @param contributionItem
 *            The item to be contributed
 * @param contributionManager
 *            The manager to be contributed to
 * @param path
 *            The path of contribution within the manager
 * @param group
 *            The group of contribution within the path
 */
private void contributeItem(IAdaptable contributionItemAdapter, IContributionManager contributionManager,
        String path, String group) {

    // Find parent menu.
    if (path == null)
        return;
    IContributionManager parent = contributionManager;

    if (path.length() > 1) { // if path is more than '/'
        parent = findMenuUsingPath(parent, path.substring(1));
        if (parent == null) {
            Log.info(CommonUIServicesActionPlugin.getDefault(),
                    CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "The contribution item path is invalid"); //$NON-NLS-1$
            return;
        }
    }

    //if contributing a menu group
    if (contributionItemAdapter instanceof MenuGroupContributionItemAdapter) {
        IContributionItem contributionItem = (IContributionItem) contributionItemAdapter
                .getAdapter(IContributionItem.class);
        parent.add(contributionItem);
        return;
    }

    //if contributing an action group
    if (contributionItemAdapter instanceof ActionGroupContributionItemAdapter) {

        try {
            ActionGroup actionGroup = (ActionGroup) contributionItemAdapter.getAdapter(ActionGroup.class);

            if (parent instanceof IMenuManager) {
                actionGroup.fillContextMenu((IMenuManager) parent);
            }
        } catch (IllegalArgumentException e) {
            Trace.catching(CommonUIServicesActionPlugin.getDefault(),
                    CommonUIServicesActionDebugOptions.EXCEPTIONS_CATCHING,
                    CommonUIServicesActionPlugin.getDefault().getClass(), "Error adding contribution item", e); //$NON-NLS-1$
            Log.error(CommonUIServicesActionPlugin.getDefault(),
                    CommonUIServicesActionStatusCodes.SERVICE_FAILURE, "Error adding contribution item", e); //$NON-NLS-1$
        }

        return;
    }

    // Find reference group.
    if (group == null)
        return;
    IContributionItem sep = parent.find(group);
    if (sep == null) {
        if (group.equals(ContributionItemConstants.GROUP_ADDITIONS)) {
            sep = new Separator(group);
            parent.add(sep);
        }
        if (sep == null) {
            Log.info(CommonUIServicesActionPlugin.getDefault(),
                    CommonUIServicesActionStatusCodes.SERVICE_FAILURE,
                    "The contribution item group is invalid"); //$NON-NLS-1$
            return;
        }
    }

    // Add contribution to group
    try {
        IContributionItem contributionItem = (IContributionItem) contributionItemAdapter
                .getAdapter(IContributionItem.class);
        if (contributionItem != null) {
            if (sep.isGroupMarker())
                parent.appendToGroup(group, contributionItem);
            else
                parent.insertAfter(group, contributionItem);
        } else
            Log.info(CommonUIServicesActionPlugin.getDefault(),
                    CommonUIServicesActionStatusCodes.SERVICE_FAILURE,
                    "Failed to create the contribution with id: " //$NON-NLS-1$
                            + (String) contributionItemAdapter.getAdapter(String.class));
    } catch (IllegalArgumentException e) {
        Trace.catching(CommonUIServicesActionPlugin.getDefault(),
                CommonUIServicesActionDebugOptions.EXCEPTIONS_CATCHING,
                CommonUIServicesActionPlugin.getDefault().getClass(), "Error adding contribution item", e); //$NON-NLS-1$
        Log.error(CommonUIServicesActionPlugin.getDefault(), CommonUIServicesActionStatusCodes.SERVICE_FAILURE,
                "Error adding contribution item", e); //$NON-NLS-1$
    }
}

From source file:org.eclipse.rap.internal.design.example.managers.ViewToolBarManager.java

License:Open Source License

private void updateItemsData() {
    ToolBar toolBar = getControl();/* ww  w  .  ja  v a2 s. c o m*/
    ToolItem[] items = toolBar.getItems();
    List<ItemData> data = new ArrayList<ItemData>();
    for (int i = 0; i < items.length; i++) {
        IContributionItem contributionItem = (IContributionItem) items[i].getData();
        if (!contributionItem.isGroupMarker() && !contributionItem.isSeparator()) {
            ItemData itemData = new ItemData(contributionItem.getId(), items[i].getText(),
                    items[i].getToolTipText(), items[i].getImage());
            data.add(itemData);
        }
    }
    itemsData = data.toArray(new ItemData[0]);
}

From source file:org.eclipse.ui.internal.ActionSetActionBars.java

License:Open Source License

/**
 * Returns the contribution item that the given contribution item should be
 * inserted after./*from  w  w  w  .  j a  va  2s  .  c o  m*/
 * 
 * @param startId
 *            the location to start looking alphabetically.
 * @param itemId
 *            the target item id.
 * @param mgr
 *            the contribution manager.
 * @return the contribution item that the given items should be returned
 *         after.
 * 
 * @since 3.0
 */
private IContributionItem findAlphabeticalOrder(String startId, String itemId, IContributionManager mgr) {
    IContributionItem[] items = mgr.getItems();
    int insertIndex = 0;

    // look for starting point
    while (insertIndex < items.length) {
        IContributionItem item = items[insertIndex];
        if (item.getId() != null && item.getId().equals(startId)) {
            break;
        }
        ++insertIndex;
    }

    // Find the index that this item should be inserted in
    for (int i = insertIndex + 1; i < items.length; i++) {
        IContributionItem item = items[i];
        String testId = item.getId();

        if (item.isGroupMarker()) {
            break;
        }

        if (itemId != null && testId != null) {
            if (itemId.compareTo(testId) < 1) {
                break;
            }
        }
        insertIndex = i;
    }
    // Should be inserted at the end
    if (insertIndex >= items.length) {
        return null;
    }
    return items[insertIndex];
}

From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java

License:Open Source License

private static boolean isGroupOrSeparator(MToolBarElement element, IContributionItem contributionItem) {
    return element instanceof MToolBarSeparator
            || (contributionItem == null || contributionItem.isGroupMarker() || contributionItem.isSeparator());
}