ptolemy.actor.lib.gui
Class SequenceScope

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.actor.lib.gui.PlotterBase
                              extended by ptolemy.actor.lib.gui.Plotter
                                  extended by ptolemy.actor.lib.gui.SequencePlotter
                                      extended by ptolemy.actor.lib.gui.SequenceScope
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Placeable, Initializable, SequenceActor, TypedActor, Changeable, Configurable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class SequenceScope
extends SequencePlotter

A sequence plotter for sequences that are potentially infinitely long. This plotter contains an instance of the Plot class from the Ptolemy plot package as a public member. Data at the input, which can consist of any number of channels, are plotted on this instance. Each channel is plotted as a separate data set. The horizontal axis represents the count of the iterations, modulo the width parameter, scaled by the xUnit parameter. The width parameter must be an integer that gives the width of the plot in number of samples. It defaults to 10. If the persistence parameter is positive, then it specifies the number of points that are remembered. It also defaults to 10. Any points older than these are erased and forgotten. The horizontal increment between samples is given by the xUnit parameter. Its default value is 1.0. The horizontal value of the first sample is given by the xInit parameter. Its default value is 0.0. The input is of type DoubleToken.

Note that this actor uses XOR drawing mode, which is fast, but will produce sometimes very annoying artifacts. In particular, when lines or points overlap, they will erase each other (if they are from the same data set) or produce some other color (if they are from distinct data sets). To avoid these artifacts, use ArrayPlotter.

Since:
Ptolemy II 1.0
Version:
$Id: SequenceScope.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee
See Also:
ArrayPlotter, Serialized Form
Accepted Rating:
Yellow (neuendor)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.actor.lib.gui.PlotterBase
PlotterBase.PlotWindowTableau
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
 Parameter persistence
          The number of samples to be displayed at any one time (an integer).
 Parameter width
          The width of the X axis, in number of samples (an integer).
 
Fields inherited from class ptolemy.actor.lib.gui.SequencePlotter
_connected, _xInit, _xUnit, _xValue, input, xInit, xUnit
 
Fields inherited from class ptolemy.actor.lib.gui.Plotter
startingDataset
 
Fields inherited from class ptolemy.actor.lib.gui.PlotterBase
_base, _container, _frame, _plotSize, _source, _tableau, _text, _windowProperties, automaticRescale, fillOnWrapup, legend, plot
 
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
 
Constructor Summary
SequenceScope(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
 void attributeChanged(Attribute attribute)
          Notify this that an attribute has changed.
 void initialize()
          Initialize this actor.
 boolean postfire()
          Call the base class postfire() method, then yield this thread so that the event thread gets a chance.
 
Methods inherited from class ptolemy.actor.lib.gui.PlotterBase
_exportMoMLContents, _implementDeferredConfigurations, _newPlot, _propagateValue, clone, configure, getConfigureSource, getConfigureText, place, preinitialize, setContainer, setDisplayName, setName, wrapup
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, stop, stopFire, terminate
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence
 
Methods inherited from class ptolemy.kernel.Entity
_description, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, isFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, removeInitializable
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

width

public Parameter width
The width of the X axis, in number of samples (an integer).


persistence

public Parameter persistence
The number of samples to be displayed at any one time (an integer).

Constructor Detail

SequenceScope

public SequenceScope(CompositeEntity container,
                     java.lang.String name)
              throws IllegalActionException,
                     NameDuplicationException
Construct an actor with the given container and name.

Parameters:
container - The container.
name - The name of this actor.
Throws:
IllegalActionException - If the actor cannot be contained by the proposed container.
NameDuplicationException - If the container already has an actor with this name.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
Notify this that an attribute has changed. If either parameter is changed, then this actor updates the configuration of the visible plot.

Overrides:
attributeChanged in class SequencePlotter
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the expression of the attribute cannot be parsed or cannot be evaluated.

initialize

public void initialize()
                throws IllegalActionException
Initialize this actor. This method configures the visible plot using the current parameter values.

Specified by:
initialize in interface Initializable
Overrides:
initialize in class SequencePlotter
Throws:
IllegalActionException - If the parent class throws it.

postfire

public boolean postfire()
                 throws IllegalActionException
Call the base class postfire() method, then yield this thread so that the event thread gets a chance. This is necessary, because otherwise the swing thread may be starved and accumulate a large number of points waiting to be plotted.

Specified by:
postfire in interface Executable
Overrides:
postfire in class SequencePlotter
Returns:
True if it is OK to continue.
Throws:
IllegalActionException - If there is no director, or if the base class throws it.