ptolemy.actor.gui
Class TextEffigy

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

public class TextEffigy
extends Effigy

An effigy for a text file. If the ptolemy.user.texteditor property is set to "emacs", then ExternalTextEffigy is used as an Effigy, otherwise this class is used as an Effigy.

Since:
Ptolemy II 1.0
Version:
$Id: TextEffigy.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee, contributor Zoltan Kemenczy
See Also:
Serialized Form
Accepted Rating:
Red (neuendor)
Proposed Rating:
Red (neuendor)

Nested Class Summary
static class TextEffigy.Factory
          A factory for creating new effigies.
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
private  javax.swing.text.Document _doc
           
 
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, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
 
Constructor Summary
TextEffigy(CompositeEntity container, java.lang.String name)
          Create a new effigy in the given directory with the given name.
TextEffigy(Workspace workspace)
          Create a new effigy in the specified workspace with an empty string for its name.
 
Method Summary
 javax.swing.text.Document getDocument()
          Return the document that this is an effigy of.
static TextEffigy newTextEffigy(CompositeEntity container, java.lang.String text)
          Create a new effigy in the given container containing the specified text.
static TextEffigy newTextEffigy(CompositeEntity container, java.net.URL base, java.net.URL in)
          Create a new effigy in the given container by reading the specified URL.
 void setDocument(javax.swing.text.Document document)
          Set the document that this is an effigy of.
 void writeFile(java.io.File file)
          Write the text of the document to the specified file.
 
Methods inherited from class ptolemy.actor.gui.Effigy
_checkContainer, _removeEntity, attributeChanged, closeTableaux, getTableauFactory, getWritableFile, isModifiable, isModified, isSystemEffigy, masterEffigy, numberOfOpenTableaux, setContainer, setModifiable, setModified, setSystemEffigy, setTableauFactory, showTableaux, topEffigy
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, clone, 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

_doc

private javax.swing.text.Document _doc
Constructor Detail

TextEffigy

public TextEffigy(Workspace workspace)
Create a new effigy in the specified workspace with an empty string for its name.

Parameters:
workspace - The workspace for this effigy.

TextEffigy

public TextEffigy(CompositeEntity container,
                  java.lang.String name)
           throws IllegalActionException,
                  NameDuplicationException
Create a new effigy in the given directory with the given name.

Parameters:
container - The directory 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

getDocument

public javax.swing.text.Document getDocument()
Return the document that this is an effigy of.

Returns:
The document, or null if none has been set.
See Also:
setDocument(Document)

newTextEffigy

public static TextEffigy newTextEffigy(CompositeEntity container,
                                       java.lang.String text)
                                throws java.lang.Exception
Create a new effigy in the given container containing the specified text. The new effigy will have a new instance of DefaultStyledDocument associated with it.

Parameters:
container - The container for the effigy.
text - The text to insert in the effigy.
Returns:
A new instance of TextEffigy.
Throws:
java.lang.Exception - If the text effigy cannot be contained by the specified container, or if the specified text cannot be inserted into the document.

newTextEffigy

public static TextEffigy newTextEffigy(CompositeEntity container,
                                       java.net.URL base,
                                       java.net.URL in)
                                throws java.lang.Exception
Create a new effigy in the given container by reading the specified URL. If the specified URL is null, then create a blank effigy. The extension of the URL is not checked, so this will open any file. The new effigy will have a new instance of DefaultStyledDocument associated with it.

Parameters:
container - The container for the effigy.
base - The base for relative file references, or null if there are no relative file references. This is ignored in this class.
in - The input URL, or null if there is none.
Returns:
A new instance of TextEffigy.
Throws:
java.lang.Exception - If the URL cannot be read, or if the data is malformed in some way.

setDocument

public void setDocument(javax.swing.text.Document document)
Set the document that this is an effigy of.

Parameters:
document - The document
See Also:
getDocument()

writeFile

public void writeFile(java.io.File file)
               throws java.io.IOException
Write the text of the document to the specified file.

Overrides:
writeFile in class Effigy
Parameters:
file - The file to write to.
Throws:
java.io.IOException - If the write fails.