Difference between revisions of "FAQ How do I hook into global actions, such as Copy and Delete?"

From Eclipsepedia

Jump to: navigation, search
(revised constants class)
(See Also)
 
(4 intermediate revisions by 2 users not shown)
Line 12: Line 12:
 
   IActionBars actionBars= getViewSite().getActionBars();
 
   IActionBars actionBars= getViewSite().getActionBars();
 
   actionBars.setGlobalActionHandler(
 
   actionBars.setGlobalActionHandler(
       IWorkbenchActionConstants.COPY, // or ActionFactory.COPY.getId()
+
       ActionFactory.COPY.getId(),
 
       copyAction);
 
       copyAction);
 
</pre>
 
</pre>
Line 30: Line 30:
  
  
== See Also: ==
+
== See Also ==
 +
[[FAQ How do I enable global actions such as Cut, Paste, and Print in my editor?]]
  
[[FAQ_How_do_I_enable_global_actions_such_as_%3Cb%3ECut%3C%2Fb%3E%2C_%3Cb%3EPaste%3C%2Fb%3E%2C_and_%3Cb%3EPrint%3C%2Fb%3E_in_my_editor%3F]]'Cut''', '''Paste''', and '''Print''' in my editor?''
+
[[FAQ How do I add actions to the global toolbar?]]
  
<hr><font size=-2>This FAQ was originally published in [http://www.eclipsefaq.org Official Eclipse 3.0 FAQs]. Copyright 2004, Pearson Education, Inc. All rights reserved. This text is made available here under the terms of the [http://www.eclipse.org/legal/epl-v10.html Eclipse Public License v1.0].</font>
+
{{Template:FAQ_Tagline}}

Latest revision as of 13:57, 30 May 2013

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.


[edit] See Also

FAQ How do I enable global actions such as Cut, Paste, and Print in my editor?

FAQ How do I add actions to the global toolbar?


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.