FAQ How do I hook into global actions, such as Copy and Delete?
Certain standard toolbar and menu entries can be shared among several views and editors. These actions are called either global or retargetable actions and include such common tools as undo/redo, cut/copy/paste, print, find, delete, and more. Each view or editor is allowed to contribute a handler for these actions; when a new part becomes active, its handler takes control of that action.
A view typically registers its global action handlers in the createPartControl method:
IActionBars actionBars= getViewSite().getActionBars(); actionBars.setGlobalActionHandler( ActionFactory.COPY.getId(), copyAction);
You have to do this only once for each view that is created. The platform remembers your action handler and retargets the action each time the view becomes active. To unregister from a global action, simply invoke setGlobalActionHandler again and pass in a null value for the handler.
The IWorkbenchActionConstants interface in the org.eclipse.ui package contains a complete list of global actions. Look for constants in this interface with a comment saying “Global action.” In Eclipse 3.0, you can also look at the ActionFactory and IDEActionFactory classes, which define factory objects for creating a variety of common actions.
This FAQ was originally published in Official Eclipse 3.0 FAQs. Copyright 2004, Pearson Education, Inc. All rights reserved. This text is made available here under the terms of the Eclipse Public License v1.0.