Interface for actions contributed via an extension point.
This interface should be implemented by clients who need to contribute actions via an extension point. The workbench will generate a proxy action object on behalf of the plug-in to avoid having to activate the plug-in until the user needs it. If the action is performed the workbench will load the class that implements this interface and create what is called an action delegate object. Then the request, and all subsequent ones, are forwarded through the proxy action to the action delegate, which does the real work.
The proxy action is the one that appears in the UI, so the action delegate will need to talk to the proxy action in order to keep up an appropriate appearance. Once the action delegate has been created, it will be notified of all selection changes, allowing it to enable or disable the proxy action appropriately.
An action delegate cannot be consulted about selection changes before the action is performed because it does not exist. For this reason, control of the action's enable state should also be exercised through simple XML rules contained in the extension. These rules allow enable state control before the action delegate's plug-in is loaded.
Clients can choose to subclass the provided abstract implementation org.eclipse.ui.actions.ActionDelegate
or implement the interface directly.
@see org.eclipse.ui.actions.ActionDelegate
@see org.eclipse.ui.IActionDelegate2