jsynoptic.builtin
Class Abstract2DShape

java.lang.Object
  extended by simtools.shapes.AbstractShape
      extended by jsynoptic.builtin.Abstract1DShape
          extended by jsynoptic.builtin.Abstract2DShape
All Implemented Interfaces:
java.awt.Shape, java.io.Serializable, java.lang.Cloneable, ContextualActionProvider, Linkable, SelectionContextualActionProvider, AffineTransformData.Listener, DataSourceListener, EndNotificationListener, Resizable, NamedProperties
Direct Known Subclasses:
EllipseShape, PolygonShape, RectangleShape, SvgShape, TextShape

public abstract class Abstract2DShape
extends Abstract1DShape
implements Resizable, DataSourceListener

Base class for Polygons and Ellipses

See Also:
Serialized Form

Nested Class Summary
static class Abstract2DShape.Abstract2DShapePropertiesNames
           
 
Nested classes/interfaces inherited from class jsynoptic.builtin.Abstract1DShape
Abstract1DShape.Abstract1DShapePropertiesNames
 
Nested classes/interfaces inherited from class simtools.shapes.AbstractShape
AbstractShape.AbstractShapePropertiesNames
 
Field Summary
protected  boolean dirtyFillColor
           
protected  java.awt.Color fillColor
           
protected  java.awt.Color fillDynamicColor
           
protected  ColorMapper fillMapper
           
protected  long fillMapperIndex
           
protected  DataSource fillMapperSource
           
static java.util.ResourceBundle resources
           
 
Fields inherited from class jsynoptic.builtin.Abstract1DShape
allowResize, bounds2D, delegateEndNotificationListener, dirty, dirtyDrawColor, dirtyRectangle, drawColor, drawDynamicColor, drawMapper, drawMapperIndex, drawMapperSource, fixedRatio, link, MIN_SIZE, ratio, stroke, strokeParams, transform
 
Fields inherited from class simtools.shapes.AbstractShape
_h, _ox, _oy, _propertyNames, _w, _x, _y, ANTI_ALIASING, currentDialogBox, FONT_NAMES, listeners, REFRESH_PERIOD
 
Fields inherited from interface jsynoptic.base.ContextualActionProvider
EDITOR_CONTEXT, MOUSE_OUT_CONTEXT, MOUSE_OVER_CONTEXT, MOUSE_PRESSED_CONTEXT, SHAPELIST_CONTEXT, SOURCELIST_CONTEXT
 
Constructor Summary
Abstract2DShape(int ox, int oy, int width, int height)
           
 
Method Summary
protected  AbstractShape cloneShape()
          Performs a copy of the shape This method has to be overriden to deal with concrete shapes
 JPropertiesPanel createPanel(java.lang.String shapeName)
           
 void DataSourceIndexRangeChanged(DataSource ds, long startIndex, long lastIndex)
          Called when the range of valid index changed
 void DataSourceReplaced(DataSource oldData, DataSource newData)
          Called when a data source is replaced by another one
 void DataSourceValueChanged(DataSource ds, long minIndex, long maxIndex)
          Called when at least a value changed in the data source.
 void draw(java.awt.Graphics2D g)
          Draws the shape
protected  void fillHook(java.awt.Graphics2D g)
          A hook to fill this Abstract2D shape
 java.awt.Color getFillColor()
           
 java.lang.String[] getPropertyNames()
          Get the list of property names
 java.lang.Object getPropertyValue(java.lang.String name)
          Get the value of the property named name
 void notificationEnd(java.lang.Object referer)
          This callback is called after all notifications were processed.
 void setDelegateEndNotificationListener(EndNotificationListener denl)
          This is useful if this shape belongs to an array of multiple text shapes, in which cas it is better to register the delegate if is is notified only once at each notification end Note1 : take care of read Objects too Note2 : don't forget to use this shape default handler if necessary
 void setPropertyValue(java.lang.String name, java.lang.Object value)
          Assigns value to the property named name
 
Methods inherited from class jsynoptic.builtin.Abstract1DShape
canDoAction, canResize, contains, contains, contains, contains, createPanel, DataSourceInfoChanged, DataSourceOrderChanged, DataSourceValueRangeChanged, doAction, doCollectiveAction, drawHook, getActions, getBounds, getBounds2D, getCollectiveActions, getDelegateEndNotificationListener, getDelegateShape, getDrawColor, getDx, getDy, getLink, getPathIterator, getPathIterator, intersects, intersects, resize, setAnchor, setLink, translate, updateBounds, updateTransform
 
Methods inherited from class simtools.shapes.AbstractShape
addListener, getAnchor, getInnerProperties, getMax, getMaxTranslated, getMin, notifyChange, notifyChange, refresh, removeListener, setAnchor, setProperties, wipeOff
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface simtools.diagram.Resizable
resize
 
Methods inherited from interface simtools.data.DataSourceListener
DataSourceInfoChanged, DataSourceOrderChanged, DataSourceValueRangeChanged
 

Field Detail

resources

public static java.util.ResourceBundle resources

fillColor

protected java.awt.Color fillColor

fillDynamicColor

protected transient java.awt.Color fillDynamicColor

fillMapper

protected ColorMapper fillMapper

fillMapperSource

protected transient DataSource fillMapperSource

fillMapperIndex

protected transient long fillMapperIndex

dirtyFillColor

protected transient boolean dirtyFillColor
Constructor Detail

Abstract2DShape

public Abstract2DShape(int ox,
                       int oy,
                       int width,
                       int height)
Method Detail

cloneShape

protected AbstractShape cloneShape()
Performs a copy of the shape This method has to be overriden to deal with concrete shapes

Overrides:
cloneShape in class Abstract1DShape
Returns:
a copy of the shape

draw

public void draw(java.awt.Graphics2D g)
Description copied from class: AbstractShape
Draws the shape

Overrides:
draw in class Abstract1DShape
Parameters:
g - the graphics context

fillHook

protected void fillHook(java.awt.Graphics2D g)
A hook to fill this Abstract2D shape

Parameters:
g - the graphics

createPanel

public JPropertiesPanel createPanel(java.lang.String shapeName)
Overrides:
createPanel in class Abstract1DShape

setDelegateEndNotificationListener

public void setDelegateEndNotificationListener(EndNotificationListener denl)
Description copied from class: Abstract1DShape
This is useful if this shape belongs to an array of multiple text shapes, in which cas it is better to register the delegate if is is notified only once at each notification end Note1 : take care of read Objects too Note2 : don't forget to use this shape default handler if necessary

Overrides:
setDelegateEndNotificationListener in class Abstract1DShape

notificationEnd

public void notificationEnd(java.lang.Object referer)
Description copied from interface: EndNotificationListener
This callback is called after all notifications were processed. The referer object is the one to decide what the end means. For example, it may be a single data source notifying both a range change and a value change. Or it could be a collection notifying all its sources.

Specified by:
notificationEnd in interface EndNotificationListener
Overrides:
notificationEnd in class Abstract1DShape

getFillColor

public java.awt.Color getFillColor()

DataSourceIndexRangeChanged

public void DataSourceIndexRangeChanged(DataSource ds,
                                        long startIndex,
                                        long lastIndex)
Description copied from interface: DataSourceListener
Called when the range of valid index changed

Specified by:
DataSourceIndexRangeChanged in interface DataSourceListener
Overrides:
DataSourceIndexRangeChanged in class Abstract1DShape
Parameters:
ds - The data source that changed
startIndex - The new start Index
lastIndex - The new last index

DataSourceValueChanged

public void DataSourceValueChanged(DataSource ds,
                                   long minIndex,
                                   long maxIndex)
Description copied from interface: DataSourceListener
Called when at least a value changed in the data source. The listener shall then get the values in the given range again, if it is interested by the values in that range.

Specified by:
DataSourceValueChanged in interface DataSourceListener
Overrides:
DataSourceValueChanged in class Abstract1DShape
Parameters:
ds - The data source that changed
minIndex - Lower bound of the range where values changed
maxIndex - Higher bound of the range where values changed

DataSourceReplaced

public void DataSourceReplaced(DataSource oldData,
                               DataSource newData)
Description copied from interface: DataSourceListener
Called when a data source is replaced by another one

Specified by:
DataSourceReplaced in interface DataSourceListener
Overrides:
DataSourceReplaced in class Abstract1DShape

setPropertyValue

public void setPropertyValue(java.lang.String name,
                             java.lang.Object value)
Description copied from class: AbstractShape
Assigns value to the property named name

Specified by:
setPropertyValue in interface NamedProperties
Overrides:
setPropertyValue in class Abstract1DShape
Parameters:
name - the name of the property to get
value - its new value
See Also:
AbstractShape.setPropertyValue(String, Object)

getPropertyNames

public java.lang.String[] getPropertyNames()
Description copied from interface: NamedProperties
Get the list of property names

Specified by:
getPropertyNames in interface NamedProperties
Overrides:
getPropertyNames in class Abstract1DShape

getPropertyValue

public java.lang.Object getPropertyValue(java.lang.String name)
Description copied from class: AbstractShape
Get the value of the property named name

Specified by:
getPropertyValue in interface NamedProperties
Overrides:
getPropertyValue in class Abstract1DShape
Parameters:
name - the name of the property to get
Returns:
the property value
See Also:
AbstractShape.getPropertyValue(String)