JavaView© v3.95.000

jv.anim
Class PsAnimation

java.lang.Object
  extended byjv.object.PsObject
      extended byjv.anim.PsAnimation
All Implemented Interfaces:
java.lang.Cloneable, PsUpdateIf, java.lang.Runnable, java.io.Serializable

public class PsAnimation
extends PsObject
implements java.lang.Runnable

Animation manager issues time events and updates its listeners. Classes interested in time events must implement the interface PsTimeListenerIf and register itself as listener in an instance this class.

By default, the time variable runs in the interval [0,100].

For usage, see interface PsTimeListenerIf. Since version 2.00 each animation has its own animationPanel.

See Also:
PsAnimation_IP, PsTimeListenerIf, Serialized Form

Field Summary
static int BACK_FORTH
          Change direction, repeat mode when either end of animation is reached.
static int FAST_FORWARD
          Play animation with speed determined by page increment of time ruler.
static int FAST_REWIND
          Play animation with fast speed determined by page increment of time ruler in backward direction.
static int FORWARD
          Play animation with normal speed determined by line increment of time ruler.
static int INTERPOL_LINEAR
          Change direction, repeat mode when either end of animation is reached.
static int INTERPOL_NONE
          Jump to other end, repeat mode when either end of animation is reached.
static int LOOP
          Jump to other end, repeat mode when either end of animation is reached.
static int ONE_WAY
          Stop animation, repeat mode when either end of animation is reached.
static int REWIND
          Play animation with normal speed in backward direction determined by line increment of time ruler.
 
Fields inherited from class jv.object.PsObject
HAS_CONFIG_PANEL, HAS_INFO_PANEL, HAS_LABEL_PANEL, HAS_MATERIAL_PANEL, HAS_TEXTURE_PANEL, HAS_VECTOR_PANEL, INSPECTOR_INFO, INSPECTOR_INFO_EXT, IS_DELETED, IS_FIXED, IS_FOCUSSED, IS_PICKED, IS_SELECTED, IS_USED, NUM_TAGS
 
Constructor Summary
PsAnimation()
           
 
Method Summary
 boolean addTimeListener(PsTimeListenerIf listener)
          Register a new update listener, and in return, register this animation in the time listener.
 void enableKeys(boolean flag)
          Set visibility of key buttons prevKey, nextKey etc. in animation panel.
 PsDialog getAnimationPanel()
          Get animation dialog to start and stop animation interactively.
 int getInterpolType()
          Get interpolation mode of animation.
 double getMaxTime()
          Get maximal time of animation interval.
 double getMinTime()
          Get minimal time of animation interval.
 int getRepeat()
          Get repeat mode of animation.
 long getSleepInterval()
          Get the length of the sleep interval between two timer events.
 double getTime()
          Get the current time of the animation.
 double getTimePageIncr()
          Get time increment of fast forward animation play.
 double getTimeStepIncr()
          Get time increment of standard animation play.
 boolean hasAnimationPanel()
          Query if animation has an animation dialog, or if it runs program controlled.
 boolean hasTimeListener(PsTimeListenerIf listener)
          Check whether an instance is a registered listener.
 void init()
          If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.
 boolean isModal()
          Get flag if animation runs modal.
 boolean isRunning()
          Check if animation is running.
 boolean removeTimeListener(PsTimeListenerIf listener)
          Remove a registered listener from list of registered listeners.
 void run()
          Do the animation.
 void setAnimationPanel(PsDialog panel)
          Set animation panel, e.g. when different animations join a common panel.
 void setInterpolType(int type)
          Set interpolation mode of animation.
 void setModal(boolean modal)
          Set flag if animation runs modal.
 void setPosition(int[] position)
          Set position and size of animation panel in absolut screen coordinates.
 void setRepeat(int repeat)
          Set repeat mode of animation.
 void setSleepInterval(long newInterval)
          Set the length of the sleep interval between two timer events.
 void setSpeedType(int speedType)
          Set the speed type of this animation among four different types.
 void setTime(double newTime)
          Set the time of the animation and the animation panel.
 void setTimeInterval(double aMin, double aMax)
          Set interval in which time varies.
 void setTimeInterval(double aMin, double aMax, double aLineIncr, double aPageIncr)
          Set interval in which time varies, and increments for time slider.
 void setTimePageIncr(double incr)
          Set time increment of fast forward animation play.
 void setTimeStepIncr(double incr)
          Set time increment of standard animation play.
 void start()
          Start the animation with current speed type.
 void start(int speedType)
          Deprecated. use setSpeed(speedType) followed by start().
 void stop()
          Stop animation.
 void synchronize(boolean flag)
          Switch synchronization flag and, if flag==true update currentTime with globalTime.
 boolean update(java.lang.Object event)
          Update the class whenever a child has changed.
 
Methods inherited from class jv.object.PsObject
addInspector, addUpdateListener, assureInspector, clearTag, clone, clone, clone, copy, getFather, getInfoPanel, getInspector, getName, getNumObjects, getSymbol, hasInspector, hasTag, hasUpdateListener, instanceOf, instanceOf, newInspector, newInspector, removeInspector, removeInspector, removeUpdateListener, setName, setParent, setSymbol, setTag, toString, updatePanels
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FORWARD

public static final int FORWARD
Play animation with normal speed determined by line increment of time ruler.

See Also:
Constant Field Values

REWIND

public static final int REWIND
Play animation with normal speed in backward direction determined by line increment of time ruler.

See Also:
Constant Field Values

FAST_FORWARD

public static final int FAST_FORWARD
Play animation with speed determined by page increment of time ruler.

See Also:
Constant Field Values

FAST_REWIND

public static final int FAST_REWIND
Play animation with fast speed determined by page increment of time ruler in backward direction.

See Also:
Constant Field Values

ONE_WAY

public static final int ONE_WAY
Stop animation, repeat mode when either end of animation is reached.

See Also:
Constant Field Values

LOOP

public static final int LOOP
Jump to other end, repeat mode when either end of animation is reached.

See Also:
Constant Field Values

BACK_FORTH

public static final int BACK_FORTH
Change direction, repeat mode when either end of animation is reached.

See Also:
Constant Field Values

INTERPOL_NONE

public static final int INTERPOL_NONE
Jump to other end, repeat mode when either end of animation is reached.

See Also:
Constant Field Values

INTERPOL_LINEAR

public static final int INTERPOL_LINEAR
Change direction, repeat mode when either end of animation is reached.

See Also:
Constant Field Values
Constructor Detail

PsAnimation

public PsAnimation()
Method Detail

init

public void init()
Description copied from class: PsObject
If instance has missing name then assign default name 'Object_NUMBER' where number is the total number of already created instances.

Overrides:
init in class PsObject

addTimeListener

public boolean addTimeListener(PsTimeListenerIf listener)
Register a new update listener, and in return, register this animation in the time listener. This bijective registration allows the time listener to invoke this animation panel.

Parameters:
listener - which is being registered
Returns:
false if listener already registered.
See Also:
hasTimeListener(PsTimeListenerIf), removeTimeListener(PsTimeListenerIf)

hasTimeListener

public boolean hasTimeListener(PsTimeListenerIf listener)
Check whether an instance is a registered listener.

Parameters:
listener - which is being tested
Returns:
true if registered listener found.
See Also:
addTimeListener(PsTimeListenerIf), removeTimeListener(PsTimeListenerIf)

removeTimeListener

public boolean removeTimeListener(PsTimeListenerIf listener)
Remove a registered listener from list of registered listeners.

Parameters:
listener - which was previously registered listener.
Returns:
false if listener is not registered.
See Also:
addTimeListener(PsTimeListenerIf), hasTimeListener(PsTimeListenerIf)

getSleepInterval

public long getSleepInterval()
Get the length of the sleep interval between two timer events.


setSleepInterval

public void setSleepInterval(long newInterval)
Set the length of the sleep interval between two timer events.


setTimeInterval

public void setTimeInterval(double aMin,
                            double aMax,
                            double aLineIncr,
                            double aPageIncr)
Set interval in which time varies, and increments for time slider.


setTimeInterval

public void setTimeInterval(double aMin,
                            double aMax)
Set interval in which time varies.


getMinTime

public double getMinTime()
Get minimal time of animation interval.


getMaxTime

public double getMaxTime()
Get maximal time of animation interval.


getTimeStepIncr

public double getTimeStepIncr()
Get time increment of standard animation play.


setTimeStepIncr

public void setTimeStepIncr(double incr)
Set time increment of standard animation play. The given value is difference of the time between two successive sections.

Since:
JavaView 2.49.001

getTimePageIncr

public double getTimePageIncr()
Get time increment of fast forward animation play.


setTimePageIncr

public void setTimePageIncr(double incr)
Set time increment of fast forward animation play. The given value is difference of the time between two successive sections.

Since:
JavaView 2.49.001

getTime

public double getTime()
Get the current time of the animation.


setTime

public void setTime(double newTime)
Set the time of the animation and the animation panel.


synchronize

public void synchronize(boolean flag)
Switch synchronization flag and, if flag==true update currentTime with globalTime.


update

public boolean update(java.lang.Object event)
Update the class whenever a child has changed. Method is usually invoked from the children.

Specified by:
update in interface PsUpdateIf
Overrides:
update in class PsObject
See Also:
PsObject.setParent(PsUpdateIf), PsObject.getFather(), PsObject.addUpdateListener(PsUpdateIf)

enableKeys

public void enableKeys(boolean flag)
Set visibility of key buttons prevKey, nextKey etc. in animation panel.


getAnimationPanel

public PsDialog getAnimationPanel()
Get animation dialog to start and stop animation interactively.


hasAnimationPanel

public boolean hasAnimationPanel()
Query if animation has an animation dialog, or if it runs program controlled.


setAnimationPanel

public void setAnimationPanel(PsDialog panel)
Set animation panel, e.g. when different animations join a common panel. If different animation panels are used, it is preferred that a subclass of PsAnimation overrides the method getAnimationPanel() and allocates the a animation panel there, instead of calling setAnimationPanel().


setPosition

public void setPosition(int[] position)
Set position and size of animation panel in absolut screen coordinates.


getInterpolType

public int getInterpolType()
Get interpolation mode of animation.

Returns:
INTERPOL_LINEAR, INTERPOL_NONE

setInterpolType

public void setInterpolType(int type)
Set interpolation mode of animation.

Parameters:
type - INTERPOL_LINEAR, INTERPOL_NONE

getRepeat

public int getRepeat()
Get repeat mode of animation.

Returns:
BACK_FORTH, LOOP, ONE_WAY

setRepeat

public void setRepeat(int repeat)
Set repeat mode of animation.

Parameters:
repeat - BACK_FORTH, LOOP, ONE_WAY

setSpeedType

public void setSpeedType(int speedType)
Set the speed type of this animation among four different types. The absolute value of the speed is determined by the value of the step and page increment of this animation. These increments may be modified by calling e.g. getTimeStepIncr(), or by interactively adjusting the line and page increment of the time slider.

Parameters:
speedType - FORWARD, FAST_FORWARD, REWIND, FAST_REWIND
See Also:
getTimeStepIncr(), getTimePageIncr()

isModal

public boolean isModal()
Get flag if animation runs modal.

See Also:
setModal(boolean)

setModal

public void setModal(boolean modal)
Set flag if animation runs modal. If an animation runs modal then the start(int) blocks until the animation has stopped. By default, an animation is not modal.

Note, if an animation runs modal in mode BACK_FORTH one must avoid an infinite loop, for example, by showing the animation panel which allows the user to stop the animation.

See Also:
isModal()

isRunning

public boolean isRunning()
Check if animation is running.


start

public void start(int speedType)
Deprecated. use setSpeed(speedType) followed by start().

Start animation with given speed type.

Parameters:
speedType - FORWARD, FAST_FORWARD, REWIND, FAST_REWIND

start

public void start()
Start the animation with current speed type. The default direction and speed is FORWARD.


stop

public void stop()
Stop animation.


run

public void run()
Do the animation. Method is called from the animation thread.

Specified by:
run in interface java.lang.Runnable

JavaView© v3.95.000

The software JavaView© is copyright protected. All Rights Reserved.