Class ViewPlatformAWTBehavior

  • All Implemented Interfaces:
    java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener, java.util.EventListener
    Direct Known Subclasses:
    OrbitBehavior

    public abstract class ViewPlatformAWTBehavior
    extends ViewPlatformBehavior
    implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener, java.awt.event.MouseWheelListener
    Abstract class which implements much of the event tracking and state updating in a thread safe manner. AWT Events are captured and placed in a queue. While there are pending events or motion the behavior will wake up every frame, call processAWTEvents and integrateTransforms.
    Since:
    Java 3D 1.2.1
    • Field Detail

      • POST_ID

        protected static final int POST_ID
        Behavior PostId used in this behavior
        See Also:
        Constant Field Values
      • frameWakeup

        protected WakeupOnElapsedFrames frameWakeup
        The different criterion for the behavior to wakeup
      • postWakeup

        protected WakeupOnBehaviorPost postWakeup
        The Or of the different criterion for the behavior to wakeup
      • targetTransform

        protected Transform3D targetTransform
        The target Transform3D for this behavior
      • motion

        protected boolean motion
        Boolean for whether the mouse is in motion
      • MOUSE_LISTENER

        public static final int MOUSE_LISTENER
        Flag indicating Behavior should listen for Mouse Events
        See Also:
        Constant Field Values
      • MOUSE_MOTION_LISTENER

        public static final int MOUSE_MOTION_LISTENER
        Flag indicating Behavior should listen for Mouse Motion Events
        See Also:
        Constant Field Values
      • KEY_LISTENER

        public static final int KEY_LISTENER
        Flag indicating Behavior should listen for Key Events
        See Also:
        Constant Field Values
      • MOUSE_WHEEL_LISTENER

        public static final int MOUSE_WHEEL_LISTENER
        Flag indicating Behavior should listen for MouseWheel Events
        See Also:
        Constant Field Values
      • canvases

        protected Canvas3D[] canvases
        The Canvas3Ds from which this Behavior gets AWT events
    • Constructor Detail

      • ViewPlatformAWTBehavior

        protected ViewPlatformAWTBehavior()
        Parameterless constructor for this behavior, intended for use by subclasses instantiated through ConfiguredUniverse. Such a constructor is required for configurable behaviors.
        Since:
        Java 3D 1.3
      • ViewPlatformAWTBehavior

        protected ViewPlatformAWTBehavior​(int listenerFlags)
        Construct a behavior which listens for events specified by the given flags, intended for use by subclasses instantiated through ConfiguredUniverse.
        Parameters:
        listenerFlags - Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER
        Since:
        Java 3D 1.3
      • ViewPlatformAWTBehavior

        public ViewPlatformAWTBehavior​(Canvas3D c,
                                       int listenerFlags)
        Constructs a new ViewPlatformAWTBehavior.
        Parameters:
        c - The Canvas3D on which to listen for events. If this is null a NullPointerException will be thrown.
        listenerFlags - Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER
    • Method Detail

      • setListenerFlags

        protected void setListenerFlags​(int listenerFlags)
        Sets listener flags for this behavior.
        Parameters:
        listenerFlags - Indicates which listener should be registered, one or more of MOUSE_LISTENER, MOUSE_MOTION_LISTENER, KEY_LISTENER, MOUSE_WHEEL_LISTENER
        Since:
        Java 3D 1.3
      • initialize

        public void initialize()
        Initializes the behavior. NOTE: Applications should not call this method. It is called by the Java 3D behavior scheduler.
        Specified by:
        initialize in class Behavior
      • processStimulus

        public void processStimulus​(java.util.Enumeration behEnum)
        Process a stimulus meant for this behavior. NOTE: Applications should not call this method. It is called by the Java 3D behavior scheduler.
        Specified by:
        processStimulus in class Behavior
        Parameters:
        behEnum - an enumeration of triggered wakeup criteria for this behavior
      • setEnable

        public void setEnable​(boolean state)
        Overload setEnable from Behavior. Adds/Removes the AWT listeners depending on the requested state.
        Overrides:
        setEnable in class Behavior
        Parameters:
        state - true or false to enable or disable this Behavior
      • setViewingPlatform

        public void setViewingPlatform​(ViewingPlatform vp)
        Sets the ViewingPlatform for this behavior. This method is called by the ViewingPlatform. If a sub-calls overrides this method, it must call super.setViewingPlatform(vp). NOTE: Applications should not call this method.
        Overrides:
        setViewingPlatform in class ViewPlatformBehavior
        Parameters:
        vp - the target ViewingPlatform for this behavior
      • processAWTEvents

        protected abstract void processAWTEvents​(java.awt.AWTEvent[] events)
        This is called once per frame if there are any AWT events to process. The motion variable will be true when the method is called. If it is true when the method returns integrateTransforms will be called immediately. The AWTEvents are presented in the array in the order in which they arrived from AWT.
      • integrateTransforms

        protected abstract void integrateTransforms()
        Called once per frame (if the view is moving) to calculate the new view platform transform
      • queueAWTEvent

        protected void queueAWTEvent​(java.awt.AWTEvent e)
        Queue AWTEvents in a thread safe manner. If subclasses override this method they must call super.queueAWTEvent(e)
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent e)
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent e)
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
      • keyReleased

        public void keyReleased​(java.awt.event.KeyEvent e)
        Specified by:
        keyReleased in interface java.awt.event.KeyListener
      • keyPressed

        public void keyPressed​(java.awt.event.KeyEvent e)
        Specified by:
        keyPressed in interface java.awt.event.KeyListener
      • keyTyped

        public void keyTyped​(java.awt.event.KeyEvent e)
        Specified by:
        keyTyped in interface java.awt.event.KeyListener
      • mouseWheelMoved

        public void mouseWheelMoved​(java.awt.event.MouseWheelEvent e)
        Specified by:
        mouseWheelMoved in interface java.awt.event.MouseWheelListener