Search this API

y.view
Class ShapeNodeRealizer

java.lang.Object
  extended by y.view.NodeRealizer
      extended by y.view.ShapeNodeRealizer
All Implemented Interfaces:
NodeLayout
Direct Known Subclasses:
Graph2DNodeRealizer, GroupNodeRealizer, ProxyShapeNodeRealizer

public class ShapeNodeRealizer
extends NodeRealizer

A node realizer that displays a node as a geometric shape. Possible shapes are rectangle, ellipse, rounded rectangle, triangle, octagon, hexagon, diamond and parallelogram.


Field Summary
static byte DIAMOND
          Shape type constant.
static byte ELLIPSE
          Shape type constant.
static byte HEXAGON
          Shape type constant.
static RenderingHints.Key KEY_SLOPPY_RECT_PAINTING
          Sloppy rect painting hint key.
static byte OCTAGON
          Shape type constant.
static byte PARALLELOGRAM
          Shape type constant.
static byte RECT
          Shape type constant.
static byte RECT_3D
          Shape type constant.
static byte ROUND_RECT
          Shape type constant.
protected  Shape shape
          The graphical shape representation that gets painted.
static byte TRAPEZOID
          Shape type constant.
static byte TRAPEZOID_2
          Shape type constant.
static byte TRIANGLE
          Shape type constant.
static Object VALUE_SLOPPY_RECT_PAINTING_OFF
          Sloppy rect painting hint value --- rendering in sloppy mode paints a ShapeNodeRealizer instance's actual shape.
 
Fields inherited from class y.view.NodeRealizer
height, HOTSPOT_E, HOTSPOT_N, HOTSPOT_NE, HOTSPOT_NONE, HOTSPOT_NW, HOTSPOT_S, HOTSPOT_SE, HOTSPOT_SW, HOTSPOT_W, width, x, y
 
Constructor Summary
ShapeNodeRealizer()
          Creates a new ShapeNodeRealizer with rectangular at position (0,0) and with empty label
ShapeNodeRealizer(byte type)
          Creates a new ShapeNodeRealizer at position (x,y) with specific type and empty label.
ShapeNodeRealizer(byte type, double x, double y, String label)
          Creates a new ShapeNodeRealizer
ShapeNodeRealizer(NodeRealizer argNodeRealizer)
          Creates a new ShapeNodeRealizer as a copy of the given realizer.
 
Method Summary
 void calcUnionRect(Rectangle2D r)
          Enlarges the given rectangle such that it will contain the bounding box of this realizer and the bounding box of the realizer label and its drop shadow.
 boolean contains(double x, double y)
          Evaluate hit test on the node realizer.
 NodeRealizer createCopy(NodeRealizer nr)
          Creates a copy of this realizer type that will be initialized with the values found in the given realizer.
protected  Color createSelectionColor(Color original)
          Callback function that calculates/modifies a given Color instance for the selected use case.
 boolean findIntersection(double ix, double iy, double ox, double oy, Point2D result)
          Special Intersection handling for some types of shape.
 Color getDropShadowColor()
           
 byte getDropShadowOffsetX()
          Returns the horizontal offset of the drop shadow.
 byte getDropShadowOffsetY()
          Returns the vertical offset of the drop shadow.
 byte getShapeType()
          Returns shape type of this realizer
 byte hotSpotHit(double hx, double hy)
          Adjusted hitSpotHit that takes drop shadows into account.
 boolean isDropShadowVisible()
          Queries whether or not the drop shadow is visible.
 void moveBy(double dx, double dy)
          Moves this realizer by the vector (dx,dy).
protected  void paint3DBorder(Graphics2D gfx, boolean raised)
          Responsible for painting a 3D border for a shape node of type RECT_3D.
protected  void paintFilledShape(Graphics2D gfx)
          Responsible for painting the filled shape of this realizer using a specific color or paint.
 void paintHotSpots(Graphics2D gfx)
          Paints graphical hotspots around this realizer.
protected  void paintNode(Graphics2D gfx)
          Paints the node.
protected  void paintShadow(Graphics2D gfx)
          Paints a shadow for the shape node.
protected  void paintShapeBorder(Graphics2D gfx)
          Responsible for painting the border or outline of the shape of this realizer.
 void read(ObjectInputStream in)
          Deprecated. Use the GraphML format instead.
 void setCenter(double x, double y)
          Sets the center location of this realizer
 void setDropShadowColor(Color shadowColor)
           
 void setDropShadowOffsetX(byte shadowOffsetX)
          Set the horizontal offset of the drop shadow.
 void setDropShadowOffsetY(byte shadowOffsetY)
          Set the vertical offset of the drop shadow.
 void setLocation(double x, double y)
          Sets the upper left corner location of this realizer.
 void setShapeType(byte type)
          Sets the shape type of this realizer.
 void setSize(double w, double h)
          Sets the size of the realizer.
static Map shapeTypeToStringMap()
          Returns a map whose keys are the shape type specifiers wrapped in Byte objects.
 void write(ObjectOutputStream out)
          Deprecated. Use the GraphML format instead.
 
Methods inherited from class y.view.NodeRealizer
addLabel, addPort, boundsChanged, calcUnionRect, calcUnionRectImpl, calcUnionRectLabels, calcUnionRectPorts, createCopy, createNodeLabel, findBBIntersection, getAutoBoundsFeature, getBoundingBox, getCenterX, getCenterY, getFillColor, getFillColor2, getHeight, getHotSpotColor, getLabel, getLabel, getLabelText, getLayer, getLineColor, getLineType, getMouseInputEditorProvider, getNode, getPort, getPortCandidates, getSizeConstraintProvider, getSloppySelectionColor, getWidth, getX, getY, intersects, invalidatePortPositions, isInBox, isSelected, isTransparent, isVisible, labelBoundsChanged, labelCount, paint, paintLayer, paintLayerSloppy, paintPorts, paintSloppy, paintText, portCount, removeLabel, removeLabel, removePort, removePort, repaint, setCenterX, setCenterY, setEdgesDirty, setFillColor, setFillColor2, setFrame, setFrame, setHeight, setHotSpotColor, setLabel, setLabelText, setLayer, setLayer, setLineColor, setLineType, setSelected, setSloppySelectionColor, setTransparent, setVisible, setWidth, setX, setY
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_SLOPPY_RECT_PAINTING

public static final RenderingHints.Key KEY_SLOPPY_RECT_PAINTING
Sloppy rect painting hint key. The SLOPPY_RECT_PAINTING hint controls whether rendering in sloppy mode paints a ShapeNodeRealizer instance's rectangular bounds or its actual shape. The key's associated value must be either null or VALUE_SLOPPY_RECT_PAINTING_OFF. If the associated value is VALUE_SLOPPY_RECT_PAINTING_OFF, a ShapeNodeRealizer instance's actual shape is painted in sloppy mode.

See Also:
VALUE_SLOPPY_RECT_PAINTING_OFF, NodeRealizer.paintSloppy(java.awt.Graphics2D)

VALUE_SLOPPY_RECT_PAINTING_OFF

public static final Object VALUE_SLOPPY_RECT_PAINTING_OFF
Sloppy rect painting hint value --- rendering in sloppy mode paints a ShapeNodeRealizer instance's actual shape.

See Also:
KEY_SLOPPY_RECT_PAINTING, NodeRealizer.paintSloppy(java.awt.Graphics2D)

RECT

public static final byte RECT
Shape type constant. Specifies a rectangular shape.

See Also:
Constant Field Values

ROUND_RECT

public static final byte ROUND_RECT
Shape type constant. Specifies a rectangular shape whose corners are rounded.

See Also:
Constant Field Values

ELLIPSE

public static final byte ELLIPSE
Shape type constant. Specifies an oval (ellipsoid) shape.

See Also:
Constant Field Values

PARALLELOGRAM

public static final byte PARALLELOGRAM
Shape type constant. Specifies a rhomboidal shape, whose upper right corner is further to the right than it's lower right corner.

See Also:
Constant Field Values

HEXAGON

public static final byte HEXAGON
Shape type constant. Specifies a hexagonal shape, i.e, a shape with six corners.

See Also:
Constant Field Values

TRIANGLE

public static final byte TRIANGLE
Shape type constant. Specifies a triangular shape, i.e, a shape with three corners.

See Also:
Constant Field Values

RECT_3D

public static final byte RECT_3D
Shape type constant. Specifies a rectangular shape with 3D-ish looks.

See Also:
Constant Field Values

OCTAGON

public static final byte OCTAGON
Shape type constant. Specifies an octagonal shape, i.e, a shape with eight corners.

See Also:
Constant Field Values

DIAMOND

public static final byte DIAMOND
Shape type constant. Specifies a diamond shape, i.e, a shape with four corners and diagonally sloped sides.

See Also:
Constant Field Values

TRAPEZOID

public static final byte TRAPEZOID
Shape type constant. Specifies a trapezoidal shape, whose upper line is half as long as its lower line.

See Also:
Constant Field Values

TRAPEZOID_2

public static final byte TRAPEZOID_2
Shape type constant. Specifies a trapezoidal shape, whose lower line is half as long as its upper line.

See Also:
Constant Field Values

shape

protected Shape shape
The graphical shape representation that gets painted.

Constructor Detail

ShapeNodeRealizer

public ShapeNodeRealizer()
Creates a new ShapeNodeRealizer with rectangular at position (0,0) and with empty label


ShapeNodeRealizer

public ShapeNodeRealizer(byte type)
Creates a new ShapeNodeRealizer at position (x,y) with specific type and empty label.

Parameters:
type - A shape type specifier.

ShapeNodeRealizer

public ShapeNodeRealizer(byte type,
                         double x,
                         double y,
                         String label)
Creates a new ShapeNodeRealizer

Parameters:
type - A shape type specifier. ShapeNodeRealizer.ELLIPSE or ShapeNodeRealizer.RECT
x - x-Coordinate of the node
y - y-Coordinate of the node
label - The label of the node

ShapeNodeRealizer

public ShapeNodeRealizer(NodeRealizer argNodeRealizer)
Creates a new ShapeNodeRealizer as a copy of the given realizer. If the given realizer is not of type ShapeNodeRealizer then a rectangular shape will be used as default.

Method Detail

createCopy

public NodeRealizer createCopy(NodeRealizer nr)
Creates a copy of this realizer type that will be initialized with the values found in the given realizer.

Specified by:
createCopy in class NodeRealizer

setCenter

public void setCenter(double x,
                      double y)
Sets the center location of this realizer

Overrides:
setCenter in class NodeRealizer

setLocation

public void setLocation(double x,
                        double y)
Sets the upper left corner location of this realizer.

Specified by:
setLocation in interface NodeLayout
Overrides:
setLocation in class NodeRealizer
Parameters:
x - the x-coordinates of the upper left corner.
y - the y-coordinates of the upper left corner.

moveBy

public void moveBy(double dx,
                   double dy)
Moves this realizer by the vector (dx,dy).

Overrides:
moveBy in class NodeRealizer

setSize

public void setSize(double w,
                    double h)
Sets the size of the realizer. Note that this method resizes the node in a way that the center location of this realizer won't change. The upper left corner of this realizer *will* change though.

Specified by:
setSize in interface NodeLayout
Overrides:
setSize in class NodeRealizer
Parameters:
w - the width of the node.
h - the height of the node.

setShapeType

public void setShapeType(byte type)
Sets the shape type of this realizer. The shape type specifier can be one of the following:

RECT, ROUND_RECT, ELLIPSE, PARALLELOGRAM, HEXAGON, TRIANGLE, RECT_3D, OCTAGON, DIAMOND, TRAPEZOID, TRAPEZOID_2.


getShapeType

public byte getShapeType()
Returns shape type of this realizer

See Also:
setShapeType(byte)

getDropShadowColor

public Color getDropShadowColor()
Returns:
Returns the color of the shadow.

setDropShadowColor

public void setDropShadowColor(Color shadowColor)
Parameters:
shadowColor - The drop shadow color to set. If no color is set then no drop shadow will be drawn.

getDropShadowOffsetY

public byte getDropShadowOffsetY()
Returns the vertical offset of the drop shadow.

Returns:
Returns the drop shadow offset

setDropShadowOffsetY

public void setDropShadowOffsetY(byte shadowOffsetY)
Set the vertical offset of the drop shadow. A positive offset causes the drop shadow to be drawn below the node. A negative offset causes the drop shadow to be drawn above the node.

Parameters:
shadowOffsetY - The drop shadow offset to set.

getDropShadowOffsetX

public byte getDropShadowOffsetX()
Returns the horizontal offset of the drop shadow.

Returns:
Returns the horizontal drop shadow offset.

setDropShadowOffsetX

public void setDropShadowOffsetX(byte shadowOffsetX)
Set the horizontal offset of the drop shadow. A positive offset causes the drop shadow to be drawn to the right of the node. A negative offset causes the drop shadow to be drawn to the left of the node.

Parameters:
shadowOffsetX - The shadow offset to set.

isDropShadowVisible

public boolean isDropShadowVisible()
Queries whether or not the drop shadow is visible. Visibility depends on the offset and color of the drop shadow.


paintNode

protected void paintNode(Graphics2D gfx)
Paints the node. Internally, painting is performed by calling the following protected methods in the given order:
  1. paintHotSpots(Graphics2D) (only when selected)
  2. paintShadow(Graphics2D)
  3. paintFilledShape(Graphics2D)
  4. NodeRealizer.paintText(Graphics2D)
  5. paintShapeBorder(Graphics2D)

Specified by:
paintNode in class NodeRealizer

paintShapeBorder

protected void paintShapeBorder(Graphics2D gfx)
Responsible for painting the border or outline of the shape of this realizer. This method is utilized by paintNode(Graphics2D gfx).


paintFilledShape

protected void paintFilledShape(Graphics2D gfx)
Responsible for painting the filled shape of this realizer using a specific color or paint.


createSelectionColor

protected Color createSelectionColor(Color original)
Callback function that calculates/modifies a given Color instance for the selected use case.

Parameters:
original - the color to transform to for the selected case
Returns:
the new color

paint3DBorder

protected void paint3DBorder(Graphics2D gfx,
                             boolean raised)
Responsible for painting a 3D border for a shape node of type RECT_3D. This method is utilized by method paintShapeBorder(java.awt.Graphics2D).

Parameters:
gfx - the graphics context to use
raised - a boolean that determines whether the surrounded rectangle appears to be raised above the surface or sunk into the surface.

paintShadow

protected void paintShadow(Graphics2D gfx)
Paints a shadow for the shape node.


contains

public boolean contains(double x,
                        double y)
Evaluate hit test on the node realizer. When a node is transparent, only its boundary is evaluated for the hit test.

Overrides:
contains in class NodeRealizer
Parameters:
x - the x-coordinate of the point to check.
y - the y-coordinate of the point to check.
Returns:
true if the position (x,y) is part of the node false otherwise.

findIntersection

public boolean findIntersection(double ix,
                                double iy,
                                double ox,
                                double oy,
                                Point2D result)
Special Intersection handling for some types of shape. When shape is an ellipse or an rectangle, the intersection point is calculated, not iteratively determined.

Overrides:
findIntersection in class NodeRealizer

calcUnionRect

public void calcUnionRect(Rectangle2D r)
Enlarges the given rectangle such that it will contain the bounding box of this realizer and the bounding box of the realizer label and its drop shadow.

Overrides:
calcUnionRect in class NodeRealizer

paintHotSpots

public void paintHotSpots(Graphics2D gfx)
Description copied from class: NodeRealizer
Paints graphical hotspots around this realizer. The hotspots mark regions on which hit tests can be performed.

Overrides:
paintHotSpots in class NodeRealizer

hotSpotHit

public byte hotSpotHit(double hx,
                       double hy)
Adjusted hitSpotHit that takes drop shadows into account.

Overrides:
hotSpotHit in class NodeRealizer

write

public void write(ObjectOutputStream out)
           throws IOException
Deprecated. Use the GraphML format instead.

Writes this realizer in a serialized form to the given stream.

Overrides:
write in class NodeRealizer
Throws:
IOException

read

public void read(ObjectInputStream in)
          throws IOException,
                 ClassNotFoundException
Deprecated. Use the GraphML format instead.

Reads in the serialized form of this realizer. The realizer must have been written out before by it's write(ObjectOutputStream) method.

Overrides:
read in class NodeRealizer
Throws:
IOException
ClassNotFoundException

shapeTypeToStringMap

public static Map shapeTypeToStringMap()
Returns a map whose keys are the shape type specifiers wrapped in Byte objects. The value for each key is a String that describes the shape type.


© Copyright 2000-2013,
yWorks GmbH.
All rights reserved.