package prefuse.action;
import java.util.logging.Logger;
import prefuse.Visualization;
import prefuse.activity.Activity;
import prefuse.util.StringLib;
/**
* <p>The ActionList represents a chain of Actions that process VisualItems.
* ActionList also implements the Action interface, so ActionLists can be placed
* within other ActionList or {@link ActionSwitch} instances,
* allowing recursive composition of different sets of Actions.</p>
*
* @author <a href="http://jheer.org">jeffrey heer</a>
* @see prefuse.activity.Activity
* @see prefuse.action.Action
*/
public class ActionList extends CompositeAction {
private static final Logger s_logger =
Logger.getLogger(ActionList.class.getName());
/**
* Creates a new run-once ActionList.
*/
public ActionList() {
super(0);
}
/**
* Creates a new run-once ActionList that processes the given
* Visualization.
* @param vis the {@link prefuse.Visualization} to process.
*/
public ActionList(Visualization vis) {
super(vis);
}
/**
* Creates a new ActionList of specified duration and default
* step time of 20 milliseconds.
* @param duration the duration of this Activity, in milliseconds
*/
public ActionList(long duration) {
super(duration, Activity.DEFAULT_STEP_TIME);
}
/**
* Creates a new ActionList which processes the given Visualization
* and has the specified duration and a default step time of 20
* milliseconds.
* @param vis the {@link prefuse.Visualization} to process.
* @param duration the duration of this Activity, in milliseconds
*/
public ActionList(Visualization vis, long duration) {
super(vis, duration);
}
/**
* Creates a new ActionList of specified duration and step time.
* @param duration the duration of this Activity, in milliseconds
* @param stepTime the time to wait in milliseconds between executions
* of the action list
*/
public ActionList(long duration, long stepTime) {
super(duration, stepTime);
}
/**
* @see prefuse.action.Action#run(double)
*/
public void run(double frac) {
Object[] actions = m_actions.getArray();
for ( int i=0; i<actions.length; ++i ) {
Action a = (Action)actions[i];
try {
if ( a.isEnabled() ) a.run(frac);
} catch ( Exception e ) {
s_logger.warning(e.getMessage() + '\n'
+ StringLib.getStackTrace(e));
}
}
}
} // end of class ActionList