Class MouseBehavior

All Implemented Interfaces:
MouseListener, MouseMotionListener, MouseWheelListener, EventListener
Direct Known Subclasses:
MouseRotate, MouseTranslate, MouseWheelZoom, MouseZoom

public abstract class MouseBehavior extends Behavior implements MouseListener, MouseMotionListener, MouseWheelListener
Base class for all mouse manipulators (see MouseRotate, MouseZoom and MouseTranslate for examples of how to extend this base class).
  • Field Details

    • mouseEvents

      protected WakeupCriterion[] mouseEvents
    • mouseCriterion

      protected WakeupOr mouseCriterion
    • x

      protected int x
    • y

      protected int y
    • x_last

      protected int x_last
    • y_last

      protected int y_last
    • transformGroup

      protected TransformGroup transformGroup
    • transformX

      protected Transform3D transformX
    • transformY

      protected Transform3D transformY
    • currXform

      protected Transform3D currXform
    • buttonPress

      protected boolean buttonPress
    • reset

      protected boolean reset
    • invert

      protected boolean invert
    • wakeUp

      protected boolean wakeUp
    • flags

      protected int flags
    • mouseq

      protected LinkedList mouseq
    • enable

      protected boolean enable
    • MANUAL_WAKEUP

      public static final int MANUAL_WAKEUP
      Set this flag if you want to manually wakeup the behavior.
      See Also:
    • INVERT_INPUT

      public static final int INVERT_INPUT
      Set this flag if you want to invert the inputs. This is useful when the transform for the view platform is being changed instead of the transform for the object.
      See Also:
  • Constructor Details

    • MouseBehavior

      public MouseBehavior(TransformGroup transformGroup)
      Creates a mouse behavior object with a given transform group.
      Parameters:
      transformGroup - The transform group to be manipulated.
    • MouseBehavior

      public MouseBehavior(int format)
      Initializes standard fields. Note that this behavior still needs a transform group to work on (use setTransformGroup(tg)) and the transform group must add this behavior.
      Parameters:
      format - flags
    • MouseBehavior

      public MouseBehavior(Component c, TransformGroup transformGroup)
      Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent. The behaviors is added to the specified Component and works on the given TransformGroup. A null component can be passed to specify the behaviors should use listeners. Components can then be added to the behavior with the addListener(Component c) method.
      Parameters:
      c - The Component to add the MouseListener and MouseMotionListener to.
      transformGroup - The TransformGroup to operate on.
      Since:
      Java 3D 1.2.1
    • MouseBehavior

      public MouseBehavior(Component c, int format)
      Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent. The behavior is added to the specified Component. A null component can be passed to specify the behavior should use listeners. Components can then be added to the behavior with the addListener(Component c) method. Note that this behavior still needs a transform group to work on (use setTransformGroup(tg)) and the transform group must add this behavior.
      Parameters:
      format - interesting flags (wakeup conditions).
      Since:
      Java 3D 1.2.1
  • Method Details

    • setTransformGroup

      public void setTransformGroup(TransformGroup transformGroup)
      Swap a new transformGroup replacing the old one. This allows manipulators to operate on different nodes.
      Parameters:
      transformGroup - The *new* transform group to be manipulated.
    • getTransformGroup

      public TransformGroup getTransformGroup()
      Return the transformGroup on which this node is operating
    • initialize

      public void initialize()
      Initializes the behavior.
      Specified by:
      initialize in class Behavior
    • wakeup

      public void wakeup()
      Manually wake up the behavior. If MANUAL_WAKEUP flag was set upon creation, you must wake up this behavior each time it is handled.
    • processMouseEvent

      public void processMouseEvent(MouseEvent evt)
      Handles mouse events
    • processStimulus

      public abstract void processStimulus(Enumeration criteria)
      All mouse manipulators must implement this.
      Specified by:
      processStimulus in class Behavior
      Parameters:
      criteria - an enumeration of triggered wakeup criteria for this behavior
    • addListener

      public void addListener(Component c)
      Adds this behavior as a MouseListener, mouseWheelListener and MouseMotionListener to the specified component. This method can only be called if the behavior was created with one of the constructors that takes a Component as a parameter.
      Parameters:
      c - The component to add the MouseListener, MouseWheelListener and MouseMotionListener to.
      Throws:
      IllegalStateException - if the behavior was not created as a listener
      Since:
      Java 3D 1.2.1
    • mouseClicked

      public void mouseClicked(MouseEvent e)
      Specified by:
      mouseClicked in interface MouseListener
    • mouseEntered

      public void mouseEntered(MouseEvent e)
      Specified by:
      mouseEntered in interface MouseListener
    • mouseExited

      public void mouseExited(MouseEvent e)
      Specified by:
      mouseExited in interface MouseListener
    • mousePressed

      public void mousePressed(MouseEvent e)
      Specified by:
      mousePressed in interface MouseListener
    • mouseReleased

      public void mouseReleased(MouseEvent e)
      Specified by:
      mouseReleased in interface MouseListener
    • mouseDragged

      public void mouseDragged(MouseEvent e)
      Specified by:
      mouseDragged in interface MouseMotionListener
    • mouseMoved

      public void mouseMoved(MouseEvent e)
      Specified by:
      mouseMoved in interface MouseMotionListener
    • setEnable

      public void setEnable(boolean state)
      Description copied from class: Behavior
      Enables or disables this Behavior. The default state is enabled.
      Overrides:
      setEnable in class Behavior
      Parameters:
      state - true or false to enable or disable this Behavior
    • mouseWheelMoved

      public void mouseWheelMoved(MouseWheelEvent e)
      Specified by:
      mouseWheelMoved in interface MouseWheelListener