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

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

Introduction

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

Prototype

boolean isDynamic();

Source Link

Document

Returns whether this contribution item is dynamic.

Usage

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

License:Open Source License

private void createMenuEntries(MMenu menu, DisplayItem parent) {
    Map<IContributionItem, IContributionItem> findDynamics = new HashMap<>();
    DynamicContributionItem dynamicEntry = null;

    if (menu.getParent() != null) {
        // Search for any dynamic menu entries which will be handled later
        Object data = menuMngrRenderer.getManager(menu);
        if (data instanceof IContributionManager) {
            IContributionManager manager = (IContributionManager) data;
            IContributionItem[] items = manager.getItems();
            for (int i = 0; i < items.length; i++) {
                IContributionItem ci = items[i];
                if (ci.isDynamic()) {
                    findDynamics.put(i > 0 ? items[i - 1] : null, ci);
                }/*from w w  w .j a  v a  2  s .  c  om*/
            }
            // If there is an item with no preceding item, set it up to be
            // added first.
            if (findDynamics.containsKey(null)) {
                IContributionItem item = findDynamics.get(null);
                dynamicEntry = new DynamicContributionItem(item);
                dynamicEntry.setCheckState(getMenuItemIsVisible(dynamicEntry));
                dynamicEntry.setActionSet(idToActionSet.get(getActionSetID(item)));
                parent.addChild(dynamicEntry);
            }
        }
    }

    for (MMenuElement menuItem : menu.getChildren()) {
        dynamicEntry = createMenuEntry(parent, findDynamics, dynamicEntry, menuItem);
    }
}