Package ptolemy.actor.gui
Class ExternalTextEffigy
- java.lang.Object
-
- All Implemented Interfaces:
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 (seeExternalTextTableau
).- Since:
- Ptolemy II 2.2
- Version:
- $Id$
- Author:
- Zoltan Kemenczy, Research in Motion Limited
- Pt.AcceptedRating:
- Red (neuendor)
- Pt.ProposedRating:
- 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
-
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 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.void
show()
Signal the external text editor to (re)display its buffer associated with this effigy.-
Methods inherited from class ptolemy.actor.gui.TextEffigy
_createDocument, extensionToSyntaxStyle, getDocument, getSyntaxStyle, isModified, newTextEffigy, setDocument, setModified, writeFile
-
Methods inherited from class ptolemy.actor.gui.Effigy
_checkContainer, _removeEntity, closeTableaux, findToplevelEffigy, getTableauFactory, getWritableFile, isModifiable, isSystemEffigy, masterEffigy, numberOfOpenTableaux, setContainer, setSystemEffigy, setTableauFactory, showTableaux, topEffigy
-
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _containedDecorators, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _removeRelation, _validateSettables, allAtomicEntityList, allowLevelCrossingConnect, classDefinitionList, clone, 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
-
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 classEffigy
- 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 classEffigy
- 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.
-
-