package prefuse.action; import prefuse.Visualization; import prefuse.activity.Activity; import prefuse.util.collections.CopyOnWriteArrayList; /** * Abstract base class for Action implementations that hold a collection * of subclasses. * * @author jeffrey heer */ public abstract class CompositeAction extends Action { protected CopyOnWriteArrayList m_actions = new CopyOnWriteArrayList(); /** * Creates a new run-once CompositeAction. */ public CompositeAction() { super(null, 0); } /** * Creates a new run-once CompositeAction that processes the given * Visualization. * @param vis the {@link prefuse.Visualization} processed by this Action */ public CompositeAction(Visualization vis) { super(vis, 0); } /** * Creates a new CompositeAction of specified duration and default * step time of 20 milliseconds. * @param duration the duration of this Activity, in milliseconds */ public CompositeAction(long duration) { super(null, duration, Activity.DEFAULT_STEP_TIME); } /** * Creates a new CompositeAction of specified duration and default * step time of 20 milliseconds that processes the given * Visualization. * @param vis the {@link prefuse.Visualization} processed by this Action * @param duration the duration of this Activity, in milliseconds */ public CompositeAction(Visualization vis, long duration) { super(vis, duration, Activity.DEFAULT_STEP_TIME); } /** * Creates a new CompositeAction 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 CompositeAction(long duration, long stepTime) { super(null, duration, stepTime); } // ------------------------------------------------------------------------ /** * Set the Visualization processed by this Action. This also calls * {@link Action#setVisualization(Visualization)} on all Action instances * contained within this composite. * @param vis the {@link prefuse.Visualization} to process */ public void setVisualization(Visualization vis) { super.setVisualization(vis); for ( int i=0; i