Example usage for org.eclipse.jface.action ICoolBarManager isDirty

List of usage examples for org.eclipse.jface.action ICoolBarManager isDirty

Introduction

In this page you can find the example usage for org.eclipse.jface.action ICoolBarManager isDirty.

Prototype

boolean isDirty();

Source Link

Document

Returns whether the list of contributions has recently changed and has yet to be reflected in the corresponding widgets.

Usage

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

License:Open Source License

/**
 * Activate / Deactivate the contributions.
 *///from   w  w w  .j  a va2 s.c  o  m
protected void setActive(boolean set) {
    super.setActive(set);

    ICoolBarManager coolBarManager = getCastedParent().getCoolBarManager();
    if (coolBarManager == null) {
        return;
    }

    // 1. Need to set visibility for all non-adjunct actions
    if (coolItemToolBarMgr != null) {
        IContributionItem[] items = coolItemToolBarMgr.getItems();
        for (int i = 0; i < items.length; i++) {
            IContributionItem item = items[i];
            if (item instanceof PluginActionCoolBarContributionItem) {
                PluginActionCoolBarContributionItem actionSetItem = (PluginActionCoolBarContributionItem) item;
                // Only if the action set id for this contribution item is
                // the same
                // as this object
                if (actionSetItem.getActionSetId().equals(actionSetId)) {
                    item.setVisible(set);
                    coolItemToolBarMgr.markDirty();
                    if (!coolBarManager.isDirty()) {
                        coolBarManager.markDirty();
                    }
                }
            }
        }
        // Update the manager
        coolItemToolBarMgr.update(false);
        if (toolBarContributionItem != null) {
            toolBarContributionItem.update(ICoolBarManager.SIZE);
        }
    }

    // 2. Need to set visibility for all adjunct actions
    if (adjunctContributions.size() > 0) {
        for (Iterator i = adjunctContributions.iterator(); i.hasNext();) {
            IContributionItem item = (IContributionItem) i.next();
            if (item instanceof ContributionItem) {
                item.setVisible(set);
                IContributionManager manager = ((ContributionItem) item).getParent();
                manager.markDirty();
                manager.update(false);
                if (!coolBarManager.isDirty()) {
                    coolBarManager.markDirty();
                }
                item.update(ICoolBarManager.SIZE);
            }

        }

    }
}

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

License:Open Source License

/**
 * Sets the visibility of the manager. If the visibility is
 * <code>true</code> then each item within the manager appears within the
 * parent manager. Otherwise, the items are not visible if force visibility
 * is <code>true</code>, or grayed out if force visibility is
 * <code>false</code>// w  w  w  .jav a2  s  .  c om
 * <p>
 * This is a workaround for the layout flashing when editors contribute
 * large amounts of items.
 * </p>
 * 
 * @param visible
 *            the new visibility
 * @param forceVisibility
 *            <code>true</code> to change the visibility or
 *            <code>false</code> to change just the enablement state. This
 *            parameter is ignored if visible is <code>true</code>.
 */
private void setVisible(boolean visible, boolean forceVisibility) {
    if (visible) {
        setEnabledAllowed(true);
        if (!isVisible()) {
            setVisible(true);
        }
    } else {
        if (forceVisibility) {
            // Remove the editor tool bar items
            setVisible(false);
        } else {
            // Disabled the tool bar items.
            setEnabledAllowed(false);
        }
    }

    ICoolBarManager coolBarManager = getCastedParent().getCoolBarManager();
    if ((coolItemToolBarMgr != null) && (coolBarManager != null)) {
        IContributionItem[] items = coolItemToolBarMgr.getItems();
        for (int i = 0; i < items.length; i++) {
            IContributionItem item = items[i];
            item.setVisible(visible || !forceVisibility);
            coolItemToolBarMgr.markDirty();
            if (!coolBarManager.isDirty()) {
                coolBarManager.markDirty();
            }
        }
        // Update the manager
        coolItemToolBarMgr.update(false);
        if (toolBarContributionItem != null) {
            toolBarContributionItem.setVisible(visible || !forceVisibility);
        }
        if (getCoolBarManager() != null) {
            ((SubCoolBarManager) getCoolBarManager()).setVisible(visible || !forceVisibility);
        }
    }
}