Package com.sun.j3d.utils.behaviors.mouse

# Class MouseBehavior

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Leaf
javax.media.j3d.Behavior
com.sun.j3d.utils.behaviors.mouse.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 Summary

Fields
Modifier and Type
Field
Description
`protected boolean`
`buttonPress`
`protected Transform3D`
`currXform`
`protected boolean`
`enable`
`protected int`
`flags`
`protected boolean`
`invert`
`static final int`
`INVERT_INPUT`
Set this flag if you want to invert the inputs.
`static final int`
`MANUAL_WAKEUP`
Set this flag if you want to manually wakeup the behavior.
`protected WakeupOr`
`mouseCriterion`
`protected WakeupCriterion[]`
`mouseEvents`
`protected LinkedList`
`mouseq`
`protected boolean`
`reset`
`protected TransformGroup`
`transformGroup`
`protected Transform3D`
`transformX`
`protected Transform3D`
`transformY`
`protected boolean`
`wakeUp`
`protected int`
`x`
`protected int`
`x_last`
`protected int`
`y`
`protected int`
`y_last`

### 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

Constructors
Constructor
Description
`MouseBehavior(int format)`
Initializes standard fields.
`MouseBehavior(Component c, int format)`
Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent.
`MouseBehavior(Component c, TransformGroup transformGroup)`
Creates a mouse behavior that uses AWT listeners and behavior posts rather than WakeupOnAWTEvent.
`MouseBehavior(TransformGroup transformGroup)`
Creates a mouse behavior object with a given transform group.

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(Component c)`
Adds this behavior as a MouseListener, mouseWheelListener and MouseMotionListener to the specified component.
`TransformGroup`
`getTransformGroup()`
Return the transformGroup on which this node is operating
`void`
`initialize()`
Initializes the behavior.
`void`
`mouseClicked(MouseEvent e)`
`void`
`mouseDragged(MouseEvent e)`
`void`
`mouseEntered(MouseEvent e)`
`void`
`mouseExited(MouseEvent e)`
`void`
`mouseMoved(MouseEvent e)`
`void`
`mousePressed(MouseEvent e)`
`void`
`mouseReleased(MouseEvent e)`
`void`
`mouseWheelMoved(MouseWheelEvent e)`
`void`
`processMouseEvent(MouseEvent evt)`
Handles mouse events
`abstract void`
`processStimulus(Enumeration criteria)`
All mouse manipulators must implement this.
`void`
`setEnable(boolean state)`
Enables or disables this Behavior.
`void`
`setTransformGroup(TransformGroup transformGroup)`
Swap a new transformGroup replacing the old one.
`void`
`wakeup()`
Manually wake up the behavior.

### 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 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:
  - Constant Field Values

### 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:
  - Constant Field Values

## 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`