ptolemy.vergil.icon
Class ShapeIcon

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.util.Attribute
          extended by ptolemy.vergil.icon.EditorIcon
              extended by ptolemy.vergil.icon.DynamicEditorIcon
                  extended by ptolemy.vergil.icon.ShapeIcon
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class ShapeIcon
extends DynamicEditorIcon

An icon that displays a specified java.awt.Shape.

Since:
Ptolemy II 4.0
Version:
$Id: ShapeIcon.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee
See Also:
Serialized Form
Accepted Rating:
Red (johnr)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
 
Field Summary
private  boolean _centered
           
private  float[] _dashArray
           
private  java.awt.Color _fillColor
           
private  java.awt.Color _lineColor
           
private  float _lineWidth
           
private  java.awt.Shape _shape
           
 
Fields inherited from class ptolemy.vergil.icon.EditorIcon
_containerToBe, _iconCache
 
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
ShapeIcon(NamedObj container, java.lang.String name)
          Create a new icon with the given name in the given container.
ShapeIcon(NamedObj container, java.lang.String name, java.awt.Shape defaultShape)
          Create a new icon with the given name in the given container with the given default shape.
 
Method Summary
 java.lang.Object clone(Workspace workspace)
          Clone the object into the specified workspace.
 Figure createBackgroundFigure()
          Create a new default background figure, which is the shape set by setShape, if it has been called, or a small box if not.
 boolean isCentered()
          Return whether the figure should be centered on its origin.
 void setCentered(boolean centered)
          Specify whether the figure should be centered or not.
 void setDashArray(float[] dashArray)
          Specify the dash array to use for rendering lines.
 void setFillColor(java.awt.Color fillColor)
          Specify the fill color to use.
 void setLineColor(java.awt.Color lineColor)
          Specify the line color to use.
 void setLineWidth(float lineWidth)
          Specify the line width to use.
 void setShape(java.awt.Shape path)
          Specify a path to display.
 
Methods inherited from class ptolemy.vergil.icon.DynamicEditorIcon
_addLiveFigure, _liveFigureIterator, _trimLiveFigures
 
Methods inherited from class ptolemy.vergil.icon.EditorIcon
_createDefaultBackgroundFigure, _isPropertySet, _recreateFigure, createFigure, createIcon, getContainerOrContainerToBe, setContainerToBe
 
Methods inherited from class ptolemy.kernel.util.Attribute
_checkContainer, _getContainedObject, _propagateExistence, getContainer, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, setContainer, setName, updateContent
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _description, _exportMoMLContents, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, attributeTypeChanged, clone, containedObjectsIterator, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateExistence, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, uniqueName, validateSettables, workspace
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_centered

private boolean _centered

_dashArray

private float[] _dashArray

_fillColor

private java.awt.Color _fillColor

_lineColor

private java.awt.Color _lineColor

_lineWidth

private float _lineWidth

_shape

private java.awt.Shape _shape
Constructor Detail

ShapeIcon

public ShapeIcon(NamedObj container,
                 java.lang.String name)
          throws IllegalActionException,
                 NameDuplicationException
Create a new icon with the given name in the given container.

Parameters:
container - The container.
name - The name of the attribute.
Throws:
IllegalActionException - If the attribute is not of an acceptable class for the container.
NameDuplicationException - If the name coincides with an attribute already in the container.

ShapeIcon

public ShapeIcon(NamedObj container,
                 java.lang.String name,
                 java.awt.Shape defaultShape)
          throws IllegalActionException,
                 NameDuplicationException
Create a new icon with the given name in the given container with the given default shape.

Parameters:
container - The container.
name - The name of the attribute.
defaultShape - The default shape, which is ignored by this constructor.
Throws:
IllegalActionException - If the attribute is not of an acceptable class for the container.
NameDuplicationException - If the name coincides with an attribute already in the container.
Method Detail

clone

public java.lang.Object clone(Workspace workspace)
                       throws java.lang.CloneNotSupportedException
Clone the object into the specified workspace. The new object is not added to the directory of that workspace (you must do this yourself if you want it there). The result is an object with no container.

Overrides:
clone in class DynamicEditorIcon
Parameters:
workspace - The workspace for the cloned object.
Returns:
The new Attribute.
Throws:
java.lang.CloneNotSupportedException - Not thrown in this base class
See Also:
NamedObj.exportMoML(Writer, int, String), NamedObj.setDeferringChangeRequests(boolean)

createBackgroundFigure

public Figure createBackgroundFigure()
Create a new default background figure, which is the shape set by setShape, if it has been called, or a small box if not. This must be called in the Swing thread, or a concurrent modification exception could occur.

Overrides:
createBackgroundFigure in class EditorIcon
Returns:
A figure representing the specified shape.

isCentered

public boolean isCentered()
Return whether the figure should be centered on its origin.

Returns:
False If the origin of the figure, as returned by getOrigin(), is the upper left corner.

setCentered

public void setCentered(boolean centered)
Specify whether the figure should be centered or not. By default, the origin of the figure is the center. This is deferred and executed in the Swing thread.

Parameters:
centered - False to make the figure's origin at the upper left.

setDashArray

public void setDashArray(float[] dashArray)
Specify the dash array to use for rendering lines. This is deferred and executed in the Swing thread.

Parameters:
dashArray - The dash array.

setFillColor

public void setFillColor(java.awt.Color fillColor)
Specify the fill color to use. This is deferred and executed in the Swing thread.

Parameters:
fillColor - The fill color to use.

setLineColor

public void setLineColor(java.awt.Color lineColor)
Specify the line color to use. This is deferred and executed in the Swing thread.

Parameters:
lineColor - The line color to use.

setLineWidth

public void setLineWidth(float lineWidth)
Specify the line width to use. This is deferred and executed in the Swing thread.

Parameters:
lineWidth - The line width to use.

setShape

public void setShape(java.awt.Shape path)
Specify a path to display. This is deferred and executed in the Swing thread.

Parameters:
path - The path to display.