package org.eclipse.jface.action; | |
/* | |
* (c) Copyright IBM Corp. 2000, 2001. | |
* All Rights Reserved. | |
*/ | |
import org.eclipse.swt.widgets.Menu; | |
import org.eclipse.swt.widgets.MenuItem; | |
/** | |
* The <code>IMenuManager</code> interface provides protocol for managing | |
* contributions to a menu bar and its sub menus. | |
* An <code>IMenuManager</code> is also an <code>IContributionItem</code>, | |
* allowing sub-menus to be nested in parent menus. | |
* <p> | |
* This package also provides a concrete menu manager implementation, | |
* {@link MenuManager <code>MenuManager</code>}. | |
* </p> | |
*/ | |
public interface IMenuManager extends IContributionManager, IContributionItem { | |
/** | |
* Adds a menu listener to this menu. | |
* Has no effect if an identical listener is already registered. | |
* | |
* @param listener a menu listener | |
*/ | |
public void addMenuListener(IMenuListener listener); | |
/** | |
* Finds the manager for the menu at the given path. A path | |
* consists of contribution item ids separated by the separator | |
* character. The path separator character is <code>'/'</code>. | |
* <p> | |
* Convenience for <code>findUsingPath(path)</code> which | |
* extracts an <code>IMenuManager</code> if possible. | |
* </p> | |
* | |
* @param path the path string | |
* @return the menu contribution item, or <code>null</code> | |
* if there is no such contribution item or if the item does | |
* not have an associated menu manager | |
*/ | |
public IMenuManager findMenuUsingPath(String path); | |
/** | |
* Finds the contribution item at the given path. A path | |
* consists of contribution item ids separated by the separator | |
* character. The path separator character is <code>'/'</code>. | |
* | |
* @param path the path string | |
* @return the contribution item, or <code>null</code> if there is no | |
* such contribution item | |
*/ | |
public IContributionItem findUsingPath(String path); | |
/** | |
* Returns whether all items should be removed when the menu is first shown, | |
* but before notifying menu listeners. The default is <code>false</code>. | |
* | |
* @return <code>true</code> if all items should be removed when shown, <code>false</code> if not | |
*/ | |
public boolean getRemoveAllWhenShown(); | |
/** | |
* Returns whether this menu should be enabled or not. | |
* | |
* @return <code>true</code> if enabled, and | |
* <code>false</code> if disabled | |
*/ | |
public boolean isEnabled(); | |
/** | |
* Removes the given menu listener from this menu. | |
* Has no effect if an identical listener is not registered. | |
* | |
* @param listener the menu listener | |
*/ | |
public void removeMenuListener(IMenuListener listener); | |
/** | |
* Sets whether all items should be removed when the menu is first shown, | |
* but before notifying menu listeners. | |
* | |
* @param removeAll <code>true</code> if all items should be removed when shown, <code>false</code> if not | |
*/ | |
public void setRemoveAllWhenShown(boolean removeAll); | |
/** | |
* Incrementally builds the menu from the contribution items, and | |
* does so recursively for all submenus. | |
* | |
* @param force <code>true</code> means update even if not dirty, | |
* and <code>false</code> for normal incremental updating | |
*/ | |
public void updateAll(boolean force); | |
} |