Class AWTEventDispatcher

java.lang.Object
org.apache.batik.gvt.event.AWTEventDispatcher
All Implemented Interfaces:
KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, EventListener, EventDispatcher

public class AWTEventDispatcher extends Object implements EventDispatcher, MouseListener, MouseMotionListener, MouseWheelListener, KeyListener
An EventDispatcher implementation based on AWT events.

Mouse events are dispatched to their "containing" node (the GraphicsNode corresponding to the mouse event coordinate). Searches for containment are performed from the EventDispatcher's "root" node.

Version:
$Id: AWTEventDispatcher.java 1831615 2018-05-15 09:50:53Z ssteiner $
  • Field Details

    • root

      protected GraphicsNode root
      The root GraphicsNode as determined by setRootNode().
    • baseTransform

      protected AffineTransform baseTransform
      The base AffineTransform for InputEvent-to-GraphicsNodeEvent coordinates as determined by setBaseTransform().
    • glisteners

      protected EventListenerList glisteners
      The global listener list.
    • lastHit

      protected GraphicsNode lastHit
      The lastest node which has been targeted by an event.
    • currentKeyEventTarget

      protected GraphicsNode currentKeyEventTarget
      The current GraphicsNode targeted by an key events.
    • eventQueue

      protected List eventQueue
      These are used to queue events while a rendering event is in progress.
    • eventDispatchEnabled

      protected boolean eventDispatchEnabled
    • eventQueueMaxSize

      protected int eventQueueMaxSize
    • MAX_QUEUE_SIZE

      static final int MAX_QUEUE_SIZE
      default max size of the event queue.
      See Also:
    • nodeIncrementEventID

      private int nodeIncrementEventID
    • nodeIncrementEventCode

      private int nodeIncrementEventCode
    • nodeIncrementEventModifiers

      private int nodeIncrementEventModifiers
    • nodeDecrementEventID

      private int nodeDecrementEventID
    • nodeDecrementEventCode

      private int nodeDecrementEventCode
    • nodeDecrementEventModifiers

      private int nodeDecrementEventModifiers
  • Constructor Details

    • AWTEventDispatcher

      public AWTEventDispatcher()
      Constructs a new event dispatcher.
  • Method Details

    • setRootNode

      public void setRootNode(GraphicsNode root)
      Sets the root node for MouseEvent dispatch containment searches and field selections.
      Specified by:
      setRootNode in interface EventDispatcher
      Parameters:
      root - the root node
    • getRootNode

      public GraphicsNode getRootNode()
      Returns the root node for MouseEvent dispatch containment searches and field selections.
      Specified by:
      getRootNode in interface EventDispatcher
    • setBaseTransform

      public void setBaseTransform(AffineTransform t)
      Sets the base transform applied to MouseEvent coordinates prior to dispatch.
      Specified by:
      setBaseTransform in interface EventDispatcher
      Parameters:
      t - the affine transform
    • getBaseTransform

      public AffineTransform getBaseTransform()
      Returns the base transform applied to MouseEvent coordinates prior to dispatch.
      Specified by:
      getBaseTransform in interface EventDispatcher
    • mousePressed

      public void mousePressed(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mousePressed in interface MouseListener
      Parameters:
      evt - the mouse event to propagate
    • mouseReleased

      public void mouseReleased(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseReleased in interface MouseListener
      Parameters:
      evt - the mouse event to propagate
    • mouseEntered

      public void mouseEntered(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseEntered in interface MouseListener
      Parameters:
      evt - the mouse event to propagate
    • mouseExited

      public void mouseExited(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseExited in interface MouseListener
      Parameters:
      evt - the mouse event to propagate
    • mouseClicked

      public void mouseClicked(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseClicked in interface MouseListener
      Parameters:
      evt - the mouse event to propagate
    • mouseMoved

      public void mouseMoved(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseMoved in interface MouseMotionListener
      Parameters:
      evt - the mouse event to propagate
    • mouseDragged

      public void mouseDragged(MouseEvent evt)
      Dispatches the specified AWT mouse event down to the GVT tree. The mouse event is mutated to a GraphicsNodeMouseEvent.
      Specified by:
      mouseDragged in interface MouseMotionListener
      Parameters:
      evt - the mouse event to propagate
    • mouseWheelMoved

      public void mouseWheelMoved(MouseWheelEvent evt)
      Dispatches the specified AWT mouse wheel event down to the GVT tree. The mouse wheel event is mutated to a GraphicsNodeMouseWheelEvent.
      Specified by:
      mouseWheelMoved in interface MouseWheelListener
      Parameters:
      evt - the mouse event to propagate
    • keyPressed

      public void keyPressed(KeyEvent evt)
      Dispatches the specified AWT key event down to the GVT tree. The mouse event is mutated to a GraphicsNodeKeyEvent.
      Specified by:
      keyPressed in interface KeyListener
      Parameters:
      evt - the key event to propagate
    • keyReleased

      public void keyReleased(KeyEvent evt)
      Dispatches the specified AWT key event down to the GVT tree. The mouse event is mutated to a GraphicsNodeKeyEvent.
      Specified by:
      keyReleased in interface KeyListener
      Parameters:
      evt - the key event to propagate
    • keyTyped

      public void keyTyped(KeyEvent evt)
      Dispatches the specified AWT key event down to the GVT tree. The mouse event is mutated to a GraphicsNodeKeyEvent.
      Specified by:
      keyTyped in interface KeyListener
      Parameters:
      evt - the key event to propagate
    • addGraphicsNodeMouseListener

      public void addGraphicsNodeMouseListener(GraphicsNodeMouseListener l)
      Adds the specified 'global' GraphicsNodeMouseListener which is notified of all MouseEvents dispatched.
      Specified by:
      addGraphicsNodeMouseListener in interface EventDispatcher
      Parameters:
      l - the listener to add
    • removeGraphicsNodeMouseListener

      public void removeGraphicsNodeMouseListener(GraphicsNodeMouseListener l)
      Removes the specified 'global' GraphicsNodeMouseListener which is notified of all MouseEvents dispatched.
      Specified by:
      removeGraphicsNodeMouseListener in interface EventDispatcher
      Parameters:
      l - the listener to remove
    • addGraphicsNodeMouseWheelListener

      public void addGraphicsNodeMouseWheelListener(GraphicsNodeMouseWheelListener l)
      Adds the specified 'global' GraphicsNodeMouseWheelListener which is notified of all MouseWheelEvents dispatched.
      Specified by:
      addGraphicsNodeMouseWheelListener in interface EventDispatcher
      Parameters:
      l - the listener to add
    • removeGraphicsNodeMouseWheelListener

      public void removeGraphicsNodeMouseWheelListener(GraphicsNodeMouseWheelListener l)
      Removes the specified 'global' GraphicsNodeMouseWheelListener which is notified of all MouseWheelEvents dispatched.
      Specified by:
      removeGraphicsNodeMouseWheelListener in interface EventDispatcher
      Parameters:
      l - the listener to remove
    • addGraphicsNodeKeyListener

      public void addGraphicsNodeKeyListener(GraphicsNodeKeyListener l)
      Adds the specified 'global' GraphicsNodeKeyListener which is notified of all KeyEvents dispatched.
      Specified by:
      addGraphicsNodeKeyListener in interface EventDispatcher
      Parameters:
      l - the listener to add
    • removeGraphicsNodeKeyListener

      public void removeGraphicsNodeKeyListener(GraphicsNodeKeyListener l)
      Removes the specified 'global' GraphicsNodeKeyListener which is notified of all KeyEvents dispatched.
      Specified by:
      removeGraphicsNodeKeyListener in interface EventDispatcher
      Parameters:
      l - the listener to remove
    • getListeners

      public EventListener[] getListeners(Class listenerType)
      Returns an array of listeners that were added to this event dispatcher and of the specified type.
      Specified by:
      getListeners in interface EventDispatcher
      Parameters:
      listenerType - the type of the listeners to return
    • setEventDispatchEnabled

      public void setEventDispatchEnabled(boolean b)
    • setEventQueueMaxSize

      public void setEventQueueMaxSize(int n)
    • dispatchEvent

      public void dispatchEvent(EventObject evt)
      Dispatches the specified AWT event.
      Specified by:
      dispatchEvent in interface EventDispatcher
      Parameters:
      evt - the event to dispatch
    • getCurrentLockState

      protected int getCurrentLockState()
      Returns a bitmask representing the state of the key locks.
    • dispatchKeyEvent

      protected void dispatchKeyEvent(KeyEvent evt)
      Dispatches the specified AWT key event.
      Parameters:
      evt - the key event to dispatch
    • dispatchMouseEvent

      protected void dispatchMouseEvent(MouseEvent evt)
      Dispatches the specified AWT mouse event.
      Parameters:
      evt - the mouse event to dispatch
    • dispatchMouseWheelEvent

      protected void dispatchMouseWheelEvent(MouseWheelEvent evt)
      Dispatches the specified AWT mouse wheel event.
      Parameters:
      evt - the mouse wheel event to dispatch
    • processMouseEvent

      protected void processMouseEvent(GraphicsNodeMouseEvent evt)
      Processes the specified event by firing the 'global' listeners attached to this event dispatcher.
      Parameters:
      evt - the event to process
    • processMouseWheelEvent

      protected void processMouseWheelEvent(GraphicsNodeMouseWheelEvent evt)
      Processes the specified event by firing the 'global' listeners attached to this event dispatcher.
      Parameters:
      evt - the event to process
    • processKeyEvent

      public void processKeyEvent(GraphicsNodeKeyEvent evt)
      Dispatches a graphics node key event to by firing the 'global' listeners attached to this event dispatcher.
      Parameters:
      evt - the evt to dispatch
    • incrementKeyTarget

      private void incrementKeyTarget()
    • decrementKeyTarget

      private void decrementKeyTarget()
    • setNodeIncrementEvent

      public void setNodeIncrementEvent(InputEvent e)
      Associates all InputEvents of type e.getID() with "incrementing" of the currently selected GraphicsNode.
      Specified by:
      setNodeIncrementEvent in interface EventDispatcher
    • setNodeDecrementEvent

      public void setNodeDecrementEvent(InputEvent e)
      Associates all InputEvents of type e.getID() with "decrementing" of the currently selected GraphicsNode. The notion of "currently selected" GraphicsNode is used for dispatching KeyEvents.
      Specified by:
      setNodeDecrementEvent in interface EventDispatcher
    • isNodeIncrementEvent

      protected boolean isNodeIncrementEvent(InputEvent e)
      Returns true if the input event e is a node increment event, false otherwise.
      Parameters:
      e - the input event
    • isNodeDecrementEvent

      protected boolean isNodeDecrementEvent(InputEvent e)
      Returns true if the input event e is a node decrement event, false otherwise.
    • isMetaDown

      protected static boolean isMetaDown(int modifiers)
      Returns whether the meta key is down according to the given modifiers bitfield.