Package ptolemy.actor.gui
Class PtolemyEffigy
- java.lang.Object
-
- All Implemented Interfaces:
java.lang.Cloneable
,Changeable
,ChangeListener
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
- Direct Known Subclasses:
ConfigurationEffigy
,DocBuilderEffigy
,PlotEffigy
public class PtolemyEffigy extends Effigy implements ChangeListener
An effigy for a Ptolemy II model. An effigy represents model metadata, and is contained by the model directory or by another effigy. This class adds to the base class an association with a Ptolemy II model. The model, strictly speaking, is any Ptolemy II object (an instance of NamedObj). The Effigy class extends CompositeEntity, so an instance of Effigy can contain entities. By convention, an effigy contains all open instances of Tableau associated with the model.- Since:
- Ptolemy II 1.0
- Version:
- $Id$
- Author:
- Steve Neuendorffer and Edward A. Lee
- Pt.AcceptedRating:
- Yellow (janneck)
- Pt.ProposedRating:
- Green (eal)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PtolemyEffigy.Factory
A factory for creating new Ptolemy effigies.static class
PtolemyEffigy.FactoryWithoutNew
A factory for creating new Ptolemy effigies, but without the capability of creating a new blank effigy.-
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
-
-
Field Summary
-
Fields inherited from class ptolemy.actor.gui.Effigy
identifier, uri
-
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Constructor Description PtolemyEffigy(CompositeEntity container, java.lang.String name)
Create a new effigy in the given container with the given name.PtolemyEffigy(Workspace workspace)
Create a new effigy in the specified workspace with an empty string for its name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_checkContainer(CompositeEntity container)
Check that the specified container is of a suitable class for this entity, i.e., ModelDirectory or PtolemyEffigy.void
changeExecuted(ChangeRequest change)
React to the fact that a change has been successfully executed.void
changeFailed(ChangeRequest change, java.lang.Exception exception)
React to the fact that a change has triggered an error by reporting the error in a top-level dialog.java.lang.Object
clone(Workspace workspace)
Clone the object into the specified workspace.NamedObj
getModel()
Return the ptolemy model that this is an effigy of.Effigy
masterEffigy()
Return the effigy that is "in charge" of this effigy.void
setModel(NamedObj model)
Set the ptolemy model that this is an effigy of.void
writeFile(java.io.File file)
Write the model associated with this effigy to the specified file in MoML format.-
Methods inherited from class ptolemy.actor.gui.Effigy
_removeEntity, attributeChanged, closeTableaux, findToplevelEffigy, getTableauFactory, getWritableFile, isModifiable, isModified, isSystemEffigy, numberOfOpenTableaux, setContainer, setModifiable, setModified, setSystemEffigy, setTableauFactory, showTableaux, topEffigy
-
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _containedDecorators, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _removeRelation, _validateSettables, allAtomicEntityList, allowLevelCrossingConnect, classDefinitionList, connect, connect, containedObjectsIterator, deepCompositeEntityList, deepEntityList, deepGetEntities, deepNamedObjList, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, isOpaque, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyAllCompositeTransparentAndOpaqueEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, newRelation, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, statistics, uniqueName
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _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, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, decorators, 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, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, 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
-
-
-
-
Constructor Detail
-
PtolemyEffigy
public PtolemyEffigy(Workspace workspace)
Create a new effigy in the specified workspace with an empty string for its name.- Parameters:
workspace
- The workspace for this effigy.
-
PtolemyEffigy
public PtolemyEffigy(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
Create a new effigy in the given container with the given name.- Parameters:
container
- The container that contains this effigy.name
- The name of this effigy.- Throws:
IllegalActionException
- If the entity cannot be contained by the proposed container.NameDuplicationException
- If the name coincides with an entity already in the container.
-
-
Method Detail
-
changeExecuted
public void changeExecuted(ChangeRequest change)
React to the fact that a change has been successfully executed. This method does nothing.- Specified by:
changeExecuted
in interfaceChangeListener
- Parameters:
change
- The change that has been executed.
-
changeFailed
public void changeFailed(ChangeRequest change, java.lang.Exception exception)
React to the fact that a change has triggered an error by reporting the error in a top-level dialog.- Specified by:
changeFailed
in interfaceChangeListener
- Parameters:
change
- The change that was attempted.exception
- The exception that resulted.
-
clone
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
Clone the object into the specified workspace. This calls the base class and then clones the associated model into a new workspace, if there is one.- Overrides:
clone
in classCompositeEntity
- Parameters:
workspace
- The workspace for the new effigy.- Returns:
- A new effigy.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,NamedObj.setDeferringChangeRequests(boolean)
-
getModel
public NamedObj getModel()
Return the ptolemy model that this is an effigy of.- Returns:
- The model, or null if none has been set.
- See Also:
setModel(NamedObj)
-
masterEffigy
public Effigy masterEffigy()
Return the effigy that is "in charge" of this effigy. In this base class, this returns the effigy associated with the top-level of the associated model. If there is no model, or it has no effigy, then delegate to the base class.- Overrides:
masterEffigy
in classEffigy
- Returns:
- The effigy associated with the top-level of the model.
- See Also:
Effigy.topEffigy()
-
setModel
public void setModel(NamedObj model)
Set the ptolemy model that this is an effigy of. Register with that model as a change listener.- Parameters:
model
- The model.- See Also:
getModel()
-
writeFile
public void writeFile(java.io.File file) throws java.io.IOException
Write the model associated with this effigy to the specified file in MoML format. Change the name of the model to match the file name, up to its first period.
-
_checkContainer
protected void _checkContainer(CompositeEntity container) throws IllegalActionException
Check that the specified container is of a suitable class for this entity, i.e., ModelDirectory or PtolemyEffigy.- Overrides:
_checkContainer
in classEffigy
- Parameters:
container
- The proposed container.- Throws:
IllegalActionException
- If the container is not of an acceptable class.
-
-