com.sun.j3d.utils.behaviors.vp
Class ViewPlatformAWTBehavior

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Leaf
              extended by javax.media.j3d.Behavior
                  extended by com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
                      extended by com.sun.j3d.utils.behaviors.vp.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 Summary
protected  Canvas3D[] canvases
          The Canvas3Ds from which this Behavior gets AWT events
protected  WakeupOnElapsedFrames frameWakeup
          The different criterion for the behavior to wakeup
static int KEY_LISTENER
          Flag indicating Behavior should listen for Key Events
protected  boolean motion
          Boolean for whether the mouse is in motion
static int MOUSE_LISTENER
          Flag indicating Behavior should listen for Mouse Events
static int MOUSE_MOTION_LISTENER
          Flag indicating Behavior should listen for Mouse Motion Events
static int MOUSE_WHEEL_LISTENER
          Flag indicating Behavior should listen for MouseWheel Events
protected static int POST_ID
          Behavior PostId used in this behavior
protected  WakeupOnBehaviorPost postWakeup
          The Or of the different criterion for the behavior to wakeup
protected  Transform3D targetTransform
          The target Transform3D for this behavior
 
Fields inherited from class com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
homeTransform, targetTG, vp
 
Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
 
Constructor Summary
protected ViewPlatformAWTBehavior()
          Parameterless constructor for this behavior, intended for use by subclasses instantiated through ConfiguredUniverse.
  ViewPlatformAWTBehavior(Canvas3D c, int listenerFlags)
          Constructs a new 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.
 
Method Summary
 void initialize()
          Initializes the behavior.
protected abstract  void integrateTransforms()
          Called once per frame (if the view is moving) to calculate the new view platform transform
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
           
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
           
protected abstract  void processAWTEvents(java.awt.AWTEvent[] events)
          This is called once per frame if there are any AWT events to process.
 void processStimulus(java.util.Enumeration behEnum)
          Process a stimulus meant for this behavior.
protected  void queueAWTEvent(java.awt.AWTEvent e)
          Queue AWTEvents in a thread safe manner.
 void setEnable(boolean state)
          Overload setEnable from Behavior.
protected  void setListenerFlags(int listenerFlags)
          Sets listener flags for this behavior.
 void setViewingPlatform(ViewingPlatform vp)
          Sets the ViewingPlatform for this behavior.
 
Methods inherited from class com.sun.j3d.utils.behaviors.vp.ViewPlatformBehavior
getHomeTransform, getViewingPlatform, goHome, setHomeTransform
 
Methods inherited from class javax.media.j3d.Behavior
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, updateNodeReferences, wakeupOn
 
Methods inherited from class javax.media.j3d.Node
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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


Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.