ptolemy.actor.lib.image
Class ImageDisplay

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.actor.AtomicActor
                      extended by ptolemy.actor.TypedAtomicActor
                          extended by ptolemy.actor.lib.Sink
                              extended by ptolemy.actor.lib.image.ImageDisplay
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Placeable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
Direct Known Subclasses:
ImageDisplay

public class ImageDisplay
extends Sink
implements Placeable

Display an image on the screen using the ptolemy.media.Picture class. For a sequence of images that are all the same size, this class will continually update the picture with new data. If the size of the input image changes, then a new Picture object is created. This class will only accept an ImageToken on its input.

Since:
Ptolemy II 3.0
Version:
$Id: ImageDisplay.java 57040 2010-01-27 20:52:32Z cxh $
Author:
James Yeh, Edward A. Lee
See Also:
Serialized Form
Accepted Rating:
Red
Proposed Rating:
Red

Nested Class Summary
protected  class ImageDisplay.ImageWindow
          Version of TableauFrame that removes its association with the ImageDisplay upon closing, and also records the size of the display.
 
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
 
Field Summary
protected  java.awt.Container _container
          The container for the image display, set by calling place().
protected  TokenEffigy _effigy
          The effigy for the image data.
protected  ImageDisplay.ImageWindow _frame
          The frame, if one is used.
protected  int _oldXSize
          The horizontal size of the previous image.
protected  int _oldYSize
          The vertical size of the previous image.
protected  Picture _picture
          The picture panel.
private  SizeAttribute _pictureSize
          A specification of the size of the picture if it's in its own window.
private  ImageTableau _tableau
          The tableau with the display, if any.
private  WindowPropertiesAttribute _windowProperties
          A specification for the window properties of the frame.
 
Fields inherited from class ptolemy.actor.lib.Sink
input
 
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
ImageDisplay(CompositeEntity container, java.lang.String name)
          Construct an actor with the given container and name.
 
Method Summary
private  void _createOrShowWindow()
          Create or show the top-level window, unless there already is a container.
protected  void _display(Token in)
          Display the specified token.
 java.lang.Object clone(Workspace workspace)
          Clone the actor into the specified workspace.
 java.awt.Color getBackground()
          Get the background.
 void initialize()
          Initialize this actor.
 void place(java.awt.Container container)
          Set the container that this actor should display data in.
 boolean postfire()
          Consume a token from the input port and display the token as an image.
 void setBackground(java.awt.Color background)
          Set the background.
 
Methods inherited from class ptolemy.actor.TypedAtomicActor
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints
 
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, fire, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_description, _exportMoMLContents, _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 ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, 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.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
 
Methods inherited from interface ptolemy.actor.Executable
fire, isFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
 
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable, wrapup
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 

Field Detail

_container

protected java.awt.Container _container
The container for the image display, set by calling place().


_effigy

protected TokenEffigy _effigy
The effigy for the image data.


_frame

protected ImageDisplay.ImageWindow _frame
The frame, if one is used.


_oldXSize

protected int _oldXSize
The horizontal size of the previous image.


_oldYSize

protected int _oldYSize
The vertical size of the previous image.


_picture

protected Picture _picture
The picture panel.


_pictureSize

private SizeAttribute _pictureSize
A specification of the size of the picture if it's in its own window.


_tableau

private ImageTableau _tableau
The tableau with the display, if any.


_windowProperties

private WindowPropertiesAttribute _windowProperties
A specification for the window properties of the frame.

Constructor Detail

ImageDisplay

public ImageDisplay(CompositeEntity container,
                    java.lang.String name)
             throws IllegalActionException,
                    NameDuplicationException
Construct an actor with the given container and name.

Parameters:
container - The container.
name - The name of this actor.
Throws:
IllegalActionException - If the actor cannot be contained by the proposed container.
NameDuplicationException - If the container already has an actor with this name.
Method Detail

clone

public java.lang.Object clone(Workspace workspace)
                       throws java.lang.CloneNotSupportedException
Clone the actor into the specified workspace. This calls the base class and then removes association with graphical objects belonging to the original class.

Overrides:
clone in class AtomicActor
Parameters:
workspace - The workspace for the new object.
Returns:
A new actor.
Throws:
java.lang.CloneNotSupportedException - If a derived class contains an attribute that cannot be cloned.
See Also:
NamedObj.exportMoML(Writer, int, String), NamedObj.setDeferringChangeRequests(boolean)

getBackground

public java.awt.Color getBackground()
Get the background.

Returns:
The background color.
See Also:
setBackground(Color)

initialize

public void initialize()
                throws IllegalActionException
Initialize this actor. If place has not been called, then create a frame to display the image in.

Specified by:
initialize in interface Initializable
Overrides:
initialize in class AtomicActor
Throws:
IllegalActionException - If a contained method throws it.

place

public void place(java.awt.Container container)
Set the container that this actor should display data in. If place is not called, then the actor will create its own frame for display.

Specified by:
place in interface Placeable
Parameters:
container - The container in which to place the object, or null to specify that there is no current container.

postfire

public boolean postfire()
                 throws IllegalActionException
Consume a token from the input port and display the token as an image. If a token is not available, do nothing.

Specified by:
postfire in interface Executable
Overrides:
postfire in class AtomicActor
Returns:
True if execution can continue into the next iteration.
Throws:
IllegalActionException - If there is no director, or if the base class throws it.

setBackground

public void setBackground(java.awt.Color background)
Set the background.

Parameters:
background - The background color.
See Also:
getBackground()

_display

protected void _display(Token in)
Display the specified token. This must be called in the Swing event thread.

Parameters:
in - The token to display

_createOrShowWindow

private void _createOrShowWindow()
Create or show the top-level window, unless there already is a container. This must be called in the Swing event thread.