ptolemy.actor.gui
Class PlotTableau

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.kernel.CompositeEntity
                      extended by ptolemy.actor.gui.Tableau
                          extended by ptolemy.actor.gui.PlotTableau
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
Direct Known Subclasses:
PlotterBase.PlotWindowTableau

public class PlotTableau
extends Tableau

A tableau representing a plot in a toplevel window. The URL that is viewed is given by the uri parameter, and can be either an absolute URL, a system fileName, or a resource that can be loaded relative to the classpath. For more information about how the URL is specified, see MoMLApplication.specToURL().

The plot frame itself must be an instance of PlotTableauFrame, and must be created by the caller. As with other tableaux, this is an entity that is contained by an effigy of a model. There can be any number of instances of this class in an effigy.

Since:
Ptolemy II 2.1
Version:
$Id: PlotTableau.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee
See Also:
Effigy, PlotTableauFrame, ConfigurationApplication.specToURL(String), Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Yellow (eal)

Nested Class Summary
static class PlotTableau.Factory
          A factory that creates a plot tableau for Ptolemy models.
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
private  java.net.URL _toRead
           
 URIAttribute uri
          The URI to display.
 
Fields inherited from class ptolemy.actor.gui.Tableau
size
 
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
 
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Constructor Summary
PlotTableau(Effigy container, java.lang.String name)
          Construct a new tableau for the model represented by the given effigy.
 
Method Summary
private  void _parseURL(java.net.URL url)
          Read from the specified URL in PlotML format.
 void attributeChanged(Attribute attribute)
          If the argument is the uri parameter, then open the specified URI and display its contents.
 void setFrame(javax.swing.JFrame frame)
          Set the top-level window associated with this tableau.
 void show()
          Make this tableau visible by calling setVisible(true), and raising or deiconifying its window.
 
Methods inherited from class ptolemy.actor.gui.Tableau
clone, close, getFrame, getTitle, isEditable, isMaster, setContainer, setEditable, setMaster, setTitle
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, connect, connect, containedObjectsIterator, deepEntityList, deepGetEntities, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, isOpaque, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, newRelation, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, statistics, uniqueName
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_addPort, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_removePort, connectedPortList, connectedPorts, connectionsChanged, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, 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, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, attributeTypeChanged, clone, 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, setDisplayName, 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.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getDisplayName, getFullName, getName, getName
 

Field Detail

uri

public URIAttribute uri
The URI to display.


_toRead

private java.net.URL _toRead
Constructor Detail

PlotTableau

public PlotTableau(Effigy container,
                   java.lang.String name)
            throws IllegalActionException,
                   NameDuplicationException
Construct a new tableau for the model represented by the given effigy. Use setFrame() to specify the plot frame after construction.

Parameters:
container - The container.
name - The name.
Throws:
IllegalActionException - If the container does not accept this entity (this should not occur).
NameDuplicationException - If the name coincides with an attribute already in the container.
Method Detail

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
If the argument is the uri parameter, then open the specified URI and display its contents.

Overrides:
attributeChanged in class Tableau
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the URL cannot be opened, or if the base class throws it.

setFrame

public void setFrame(javax.swing.JFrame frame)
              throws IllegalActionException
Set the top-level window associated with this tableau.

Overrides:
setFrame in class Tableau
Parameters:
frame - The top-level window associated with the tableau.
Throws:
IllegalActionException - If the frame is not an instance of PlotTableauFrame.
See Also:
Tableau.getFrame()

show

public void show()
Make this tableau visible by calling setVisible(true), and raising or deiconifying its window. If no frame has been set, then create one, an instance of PlotTableauFrame. If a URL has been specified but not yet processed, then process it.

Overrides:
show in class Tableau

_parseURL

private void _parseURL(java.net.URL url)
Read from the specified URL in PlotML format. If there is no plot frame yet, then defer. Report any errors.

Parameters:
url - The URL to read from.