ptolemy.actor.gui.python
Class PythonShellTableau

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

public class PythonShellTableau
extends Tableau
implements ShellInterpreter

A tableau that provides an interactive shell for evaluating Python expressions.

Since:
Ptolemy II 3.0
Version:
$Id: PythonShellTableau.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Christopher Hylands and Edward A. Lee
See Also:
Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Red (cxh)

Nested Class Summary
static class PythonShellTableau.Factory
          A factory that creates a control panel to display a Python shell.
static class PythonShellTableau.PythonShellFrame
          The frame that is created by an instance of PythonShellTableau.
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
private  org.python.util.PythonInterpreter _interpreter
           
 
Fields inherited from class ptolemy.actor.gui.Tableau
size
 
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
PythonShellTableau(PythonShellEffigy container, java.lang.String name)
          Create a new tableau.
 
Method Summary
 java.lang.String evaluateCommand(java.lang.String command)
          Evaluate the specified command.
 boolean isCommandComplete(java.lang.String command)
          Return true if the specified command is complete (ready to be interpreted).
 
Methods inherited from class ptolemy.actor.gui.Tableau
attributeChanged, clone, close, getFrame, getTitle, isEditable, isMaster, setContainer, setEditable, setFrame, setMaster, setTitle, show
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, 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

_interpreter

private org.python.util.PythonInterpreter _interpreter
Constructor Detail

PythonShellTableau

public PythonShellTableau(PythonShellEffigy container,
                          java.lang.String name)
                   throws IllegalActionException,
                          NameDuplicationException
Create a new tableau. The tableau is itself an entity contained by the effigy and having the specified name. The frame is not made visible automatically. You must call show() to make it visible.

Parameters:
container - The containing effigy.
name - The name of this tableau within the specified effigy.
Throws:
IllegalActionException - If the tableau is not acceptable to the specified container.
NameDuplicationException - If the container already contains an entity with the specified name.
Method Detail

evaluateCommand

public java.lang.String evaluateCommand(java.lang.String command)
                                 throws java.lang.Exception
Evaluate the specified command.

Specified by:
evaluateCommand in interface ShellInterpreter
Parameters:
command - The command.
Returns:
The return value of the command, or null if there is none.
Throws:
java.lang.Exception - If something goes wrong processing the command.
See Also:
ShellTextArea.returnResult(String)

isCommandComplete

public boolean isCommandComplete(java.lang.String command)
Return true if the specified command is complete (ready to be interpreted).

Specified by:
isCommandComplete in interface ShellInterpreter
Parameters:
command - The command.
Returns:
True.