Class KeyHandler

java.lang.Object
org.eclipse.gef.KeyHandler
Direct Known Subclasses:
GraphicalViewerKeyHandler

public class KeyHandler extends Object
The KeyHandler should handle all normal keystrokes on an EditPartViewer. Normal is simply defined as keystrokes which are not associated with an Accelerator on the Menu. The KeyHandler will be forwarded KeyEvents by the active Tool, which is usually the SelectionTool. The Tool may be in a state where keystrokes should not be processed, in which case it will not forward the keystrokes. For this reason, it is important to always handle KeyEvents by using a KeyHandler.

KeyHandlers can be chained by calling setParent(KeyHandler). If this KeyHandler does not handle the keystroke, it will pass the keystroke to its parent KeyHandler.

KeyHandlers can be implemented using two stragegies. One is to map KeyStrokes to Actions using the put(KeyStroke, IAction) and remove(KeyStroke) API. The other is to subclass KeyHandler, and override various methods. A combination of the two is also useful.

Since:
2.0
  • Constructor Details

    • KeyHandler

      public KeyHandler()
  • Method Details

    • keyPressed

      public boolean keyPressed(KeyEvent event)
      Processes a key pressed event. This method is called by the Tool whenever a key is pressed, and the Tool is in the proper state.
      Parameters:
      event - the KeyEvent
      Returns:
      true if KeyEvent was handled in some way
    • keyReleased

      public boolean keyReleased(KeyEvent event)
      Processes a key released event. This method is called by the Tool whenever a key is released, and the Tool is in the proper state.
      Parameters:
      event - the KeyEvent
      Returns:
      true if KeyEvent was handled in some way
    • put

      public void put(KeyStroke keystroke, IAction action)
      Maps a specified KeyStroke to an IAction. When a KeyEvent occurs matching the given KeyStroke, the Action will be run() iff it is enabled.
      Parameters:
      keystroke - the KeyStroke
      action - the Action to run
    • remove

      public void remove(KeyStroke keystroke)
      Removed a mapped IAction for the specified KeyStroke.
      Parameters:
      keystroke - the KeyStroke to be unmapped
    • setParent

      public KeyHandler setParent(KeyHandler parent)
      Sets a parent KeyHandler to which this KeyHandler will forward un-consumed KeyEvents. This KeyHandler will first attempt to handle KeyEvents. If it does not recognize a given KeyEvent, that event is passed to its parent
      Parameters:
      parent - the parent KeyHandler
      Returns:
      this for convenience