|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.gui.InteractiveShell
public class InteractiveShell
This actor creates a command shell on the screen, sending commands that are typed by the user to its output port, and reporting strings received at its input by displaying them. Each time it fires, it reads the input, displays it, then displays a command prompt (which by default is ">>"), and waits for a command to be typed. The command is terminated by an enter or return character, which then results in the command being produced on the output. In a typical use of this actor, it will be preceded by a SampleDelay actor which will provide an initial welcome message or instructions. The output will then be routed to some subsystem for processing, and the result will be fed back to the input.
If the user types "quit" or "exit" (without the quotation marks) on the prompt, then this actor's postfire() method will return false. Depending on the domain, this can result in the model execution stopping (in SDF, for example) or in subsequent firings of this actor being skipped (in DE, for example).
Note that because of complexities in Swing, if you resize the display window, then, unlike the plotters, the new size will not be persistent. That is, if you save the model and then re-open it, the new size is forgotten. The position, however, is persistent.
Red (cxh) |
Yellow (eal) |
Nested Class Summary | |
---|---|
class |
InteractiveShell.ShellFrame
The frame that is created by an instance of ShellTableau. |
class |
InteractiveShell.ShellTableau
Version of ExpressionShellTableau that records the size of the display when it is closed. |
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
private java.awt.Container |
_container
Container into which this plot should be placed. |
private boolean |
_firstTime
Indicator of the first time through. |
private TableauFrame |
_frame
Frame into which plot is placed, if any. |
private java.util.List<java.lang.String> |
_outputValues
The list of strings to send to the output. |
private boolean |
_returnFalseInPostfire
Flag indicating that "exit" or "quit" has been entered. |
private InteractiveShell.ShellTableau |
_tableau
The version of ExpressionShellTableau that creates a Shell window. |
private WindowPropertiesAttribute |
_windowProperties
|
TypedIOPort |
input
The input port. |
TypedIOPort |
output
The output port. |
PortParameter |
prompt
The prompt. |
ShellTextArea |
shell
The shell window object. |
Fields inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Fields inherited from interface ptolemy.actor.Executable |
---|
COMPLETED, NOT_READY, STOP_ITERATING |
Constructor Summary | |
---|---|
InteractiveShell(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary | |
---|---|
protected void |
_exportMoMLContents(java.io.Writer output,
int depth)
Write a MoML description of the contents of this object. |
private void |
_remove()
Remove the shell from the current container, if there is one. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
java.lang.String |
evaluateCommand(java.lang.String command)
Evaluate the specified command. |
void |
fire()
Read and display the input, then wait for user input and produce the user data on the output. |
java.lang.String |
getOutput()
Get the output string to be sent. |
void |
initialize()
If the shell has not already been created, create it. |
boolean |
isCommandComplete(java.lang.String command)
Return true if the specified command is complete (ready to be interpreted). |
void |
place(java.awt.Container container)
Specify the container into which this shell should be placed. |
boolean |
postfire()
Override the base class to return false if the user has typed "quit" or "exit". |
void |
setContainer(CompositeEntity container)
Override the base class to remove the shell from its graphical container if the argument is null. |
void |
setDisplayName(java.lang.String name)
Set a name to present to the user. |
void |
setName(java.lang.String name)
Set or change the name. |
void |
setOutput(java.lang.String value)
Specify an output string to be sent. |
void |
stop()
Override the base class to call notifyAll() to get out of any waiting. |
void |
wrapup()
Override the base class to make the shell uneditable. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
Methods inherited from class ptolemy.kernel.ComponentEntity |
---|
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence |
Methods inherited from class ptolemy.kernel.Entity |
---|
_description, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.InstantiableNamedObj |
---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface ptolemy.actor.Actor |
---|
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
Methods inherited from interface ptolemy.actor.Executable |
---|
isFireFunctional, isStrict, iterate, prefire, stopFire, terminate |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, preinitialize, removeInitializable |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort input
public TypedIOPort output
public PortParameter prompt
foo
) and then set the value of the
prompt parameter to $foo
.
public ShellTextArea shell
private java.awt.Container _container
private boolean _firstTime
private TableauFrame _frame
private java.util.List<java.lang.String> _outputValues
private boolean _returnFalseInPostfire
private InteractiveShell.ShellTableau _tableau
private WindowPropertiesAttribute _windowProperties
Constructor Detail |
---|
public InteractiveShell(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container.name
- The name of this actor.
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.Method Detail |
---|
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class AtomicActor
workspace
- The workspace for the new object.
java.lang.CloneNotSupportedException
- If a derived class has an
attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public java.lang.String evaluateCommand(java.lang.String command) throws java.lang.Exception
evaluateCommand
in interface ShellInterpreter
command
- The command.
java.lang.Exception
- If something goes wrong processing the command.ShellTextArea.returnResult(String)
public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If producing the output
causes an exception.public java.lang.String getOutput()
setOutput(String)
public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor
IllegalActionException
- If the parent class throws it.public boolean isCommandComplete(java.lang.String command)
isCommandComplete
in interface ShellInterpreter
command
- The command.
public void place(java.awt.Container container)
place
in interface Placeable
container
- The container into which to place the shell, or
null to specify that a new shell should be created.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor
IllegalActionException
- If the superclass throws it.public void setContainer(CompositeEntity container) throws IllegalActionException, NameDuplicationException
setContainer
in class AtomicActor
container
- The proposed container.
IllegalActionException
- If the base class throws it.
NameDuplicationException
- If the base class throws it.ComponentEntity.getContainer()
public void setDisplayName(java.lang.String name)
If the Plot window has been rendered, then the title of the Plot window will be updated to the value of the name parameter.
setDisplayName
in class NamedObj
name
- A name to present to the user.NamedObj.getDisplayName()
public void setName(java.lang.String name) throws IllegalActionException, NameDuplicationException
If the Plot window has been rendered, then the title of the Plot window will be updated to the value of the name parameter.
setName
in interface Nameable
setName
in class ComponentEntity
name
- The new name.
IllegalActionException
- If the name contains a period
or if the object is a derived object and the name argument does
not match the current name.
NameDuplicationException
- Not thrown in this base class.
May be thrown by derived classes if the container already contains
an object with this name.NamedObj.getName()
,
NamedObj.getName(NamedObj)
public void setOutput(java.lang.String value)
value
- An output string to be sent.getOutput()
public void stop()
stop
in interface Executable
stop
in class AtomicActor
public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class AtomicActor
IllegalActionException
- If the parent class throws it.protected void _exportMoMLContents(java.io.Writer output, int depth) throws java.io.IOException
_exportMoMLContents
in class Entity
output
- The output stream to write to.depth
- The depth in the hierarchy, to determine indenting.
java.io.IOException
- If an I/O error occurs.NamedObj.exportMoML(Writer, int)
private void _remove()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |