List of usage examples for org.eclipse.jface.action ICoolBarManager isDirty
boolean isDirty();
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); } } }