ptolemy.actor.gui
Class ExternalTextEffigy

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

public class ExternalTextEffigy
extends TextEffigy

An external EDITOR-based effigy for a text file (see ExternalTextTableau).

Since:
Ptolemy II 2.2
Version:
$Id: ExternalTextEffigy.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Zoltan Kemenczy, Research in Motion Limited
See Also:
Serialized Form
Accepted Rating:
Red (neuendor)
Proposed Rating:
Red (neuendor)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.actor.gui.TextEffigy
TextEffigy.Factory
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
private  java.lang.String _pathName
           
private  boolean _useContainerMoML
           
 
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
ExternalTextEffigy(CompositeEntity container, java.lang.String name)
          Create a new effigy in the given directory with the given name.
ExternalTextEffigy(Workspace workspace)
          Create a new effigy in the specified workspace with an empty string for its name.
 
Method Summary
 void attributeChanged(Attribute attribute)
          If the argument is the identifier parameter, then tell the external editor to finally open the file specified by the identifier (as opposed to at newTextEffigy(container, text) time at which the document file is not yet specified.
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 ExternalTextEffigy.
 void setModifiable(boolean flag)
          Pass the modifiable flag onto the external text editor.
private  void setUseContainerMoML(boolean useContainerMoML)
           
 void show()
          Signal the external text editor to (re)display its buffer associated with this effigy.
private  void showContent(java.lang.String path)
           
 
Methods inherited from class ptolemy.actor.gui.TextEffigy
getDocument, setDocument, writeFile
 
Methods inherited from class ptolemy.actor.gui.Effigy
_checkContainer, _removeEntity, closeTableaux, getTableauFactory, getWritableFile, isModifiable, isModified, isSystemEffigy, masterEffigy, numberOfOpenTableaux, setContainer, 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

_pathName

private java.lang.String _pathName

_useContainerMoML

private boolean _useContainerMoML
Constructor Detail

ExternalTextEffigy

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

Parameters:
workspace - The workspace for this effigy.

ExternalTextEffigy

public ExternalTextEffigy(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

attributeChanged

public void attributeChanged(Attribute attribute)
                      throws IllegalActionException
If the argument is the identifier parameter, then tell the external editor to finally open the file specified by the identifier (as opposed to at newTextEffigy(container, text) time at which the document file is not yet specified. This greatly simplifies the interaction with the external text editor: instead of first telling it to create a text buffer with some name and no file attached, the buffer, its associated file name, and any text saved by newTextEffigy(container, text) is given to the text editor in one transaction. NOTE: This depends on TextEditorTableau.createTableau(effigy) setting the identifier expression after newTextEffigy(container, text).

Overrides:
attributeChanged in class Effigy
Parameters:
attribute - The attribute that changed.
Throws:
IllegalActionException - If the base class throws it.

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 ExternalTextEffigy.

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.

setModifiable

public void setModifiable(boolean flag)
Pass the modifiable flag onto the external text editor.

Overrides:
setModifiable in class Effigy
Parameters:
flag - False to prevent writing to the URI.
See Also:
Effigy.masterEffigy(), Effigy.isModifiable(), Effigy.isModified(), Effigy.setModified(boolean)

show

public void show()
Signal the external text editor to (re)display its buffer associated with this effigy.


setUseContainerMoML

private void setUseContainerMoML(boolean useContainerMoML)

showContent

private void showContent(java.lang.String path)