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