public class ShapeNode extends DiagramNode implements InplaceEditable
Use the setShape(com.mindfusion.diagramming.Shape)
method to specify the shape of a node. There are many
predefined shapes provided by the Shape
class, which also lets you
define your custom shapes.
ShapeNodes can be rotated, either interactively using the rotation handle above a
node, or programmatically using the DiagramNode.setRotationAngle(float)
method.
Nodes can display images and text. Use the setImage(android.graphics.Bitmap)
method to specify
an image that should be painted inside a node. The position and alignment of
an image within the node are set via the setImageAlign(com.mindfusion.diagramming.ImageAlign)
method.
To make a node as big as its image, call resizeToFitImage()
.
To set the node's text, call setText(java.lang.String)
. The text attributes can be changed
through the DiagramItem.setTextBrush(com.mindfusion.drawing.Brush)
and setTextFormat(com.mindfusion.diagramming.TextFormat)
methods. To get
even richer text formatting, call setEnableStyledText(boolean)
to true and
embed HTML-like formatting tags in the raw text. To make a node big enough to display
its text without clipping, call resizeToFitText(com.mindfusion.diagramming.FitSize)
.
Call setTransparent(boolean)
to make a node transparent, so that only its
text and image will be drawn.
allowIncomingLinks, allowOutgoingLinks, anchorPattern, AV_Cancel, AV_EndModIncoming, AV_EndModOutgoing, AV_StartModIncoming, AV_StartModOutgoing, AV_UpdateIncoming, AV_UpdateOutgoing, AV_UpdIntscIncoming, AV_UpdIntscOutgoing, AV_UpdPosIncoming, AV_UpdPosOutgoing, bounds, enabledHandles, handlesStyle, incomingLinks, masterGroup, obstacle, outgoingLinks, savedBounds
brush, cycleDetected, cycleProtect, modifyDX, modifyDY, modifyHandle, modifying, pen, ptEnd, ptMdfLast, ptOrg, ptSavedEnd, ptSavedOrg, subordinateGroup
Constructor and Description |
---|
ShapeNode()
Initializes a new instance of the ShapeNode class.
|
ShapeNode(Diagram parent)
Initializes a new ShapeNode instance by setting its properties to the
default values specified in the diagram.
|
ShapeNode(ShapeNode prototype)
Initializes a new ShapeNode instance by copying the attribute values
from the specified prototype node.
|
Modifier and Type | Method and Description |
---|---|
protected void |
cancelModify(InteractionState ist)
|
boolean |
containsPoint(android.graphics.PointF point)
ShapeNode.containsPoint override.
|
boolean |
containsPoint(android.graphics.PointF point,
float threshold)
DiagramNode.containsPoint override.
|
protected ConnectionPoint |
createConnectionPoint(DiagramLink link,
android.graphics.PointF pt,
boolean incoming) |
protected DiagramItemProperties |
createProperties()
DiagramItem.createProperties() override. |
protected DiagramItemState |
createState()
DiagramItem.createState() override. |
protected void |
drawLocal(android.graphics.Canvas graphics,
RenderOptions options)
Override in a derived class to provide implementation specific drawing for the node.
|
protected void |
drawShadowLocal(android.graphics.Canvas graphics,
RenderOptions options)
Override in a derived class to provide implementation specific drawing for the shadow of the node.
|
boolean |
getAllowFlip()
Gets a value indicating whether the node's shape flips when an edge is dragged over its opposite edge.
|
CustomDraw |
getCustomDraw()
Gets a value indicating what type of custom drawing to perform on a node.
|
android.graphics.RectF |
getEditRect(DiagramItem item,
android.graphics.PointF pointerPosition)
Implements InplaceEditable.getEditRect.
|
boolean |
getEnableStyledText()
Gets a value indicating whether the text of a node contains formatting
tags which should be processed by JDiagram.
|
boolean |
getFlipX()
Gets a value indicating whether the node's shape is flipped horizontally.
|
boolean |
getFlipY()
Gets a value indicating whether the node's shape is flipped vertically.
|
Font |
getFont()
Gets the font used to draw the text label of a node.
|
android.graphics.Bitmap |
getImage()
Gets the image displayed inside this node.
|
ImageAlign |
getImageAlign()
Gets the alignment of the node's image.
|
java.lang.String |
getPlainText()
Gets the plain text extracted from the formatted text
by removing the formatting tags.
|
protected android.graphics.RectF |
getRepaintRect(boolean includeConnected)
Gets the repaint region for this item, taking into account
factors such as pen, selection handles and shadow.
|
boolean |
getRotateImage()
Gets a value indicating whether the image displayed inside a node
should rotate together with the node.
|
boolean |
getRotateText()
Gets a value indicating whether the text displayed inside a node
should rotate together with the node.
|
Shape |
getShape()
Gets the shape of a node.
|
float |
getShapeOrientation()
Gets an orientation angle applied to the shape definition before
the shape points are mapped to the node's bounding rectangle.
|
java.lang.String |
getText()
Gets the text displayed inside this node.
|
TextFormat |
getTextFormat()
Gets a
TextFormat object specifying how to format and align the text of this node. |
java.lang.String |
getTextToEdit()
Implements InplaceEditable.getTextToEdit.
|
boolean |
getTransparent()
Gets a value indicating whether only the text and image of a node
should be drawn on the screen.
|
com.mindfusion.diagramming.builders.ShapeNodeBuilder |
init()
Returns a ShapeNodeBuilder object used to configure this ShapeNode instance.
|
protected void |
loadFromXml(org.w3c.dom.Element xmlElement,
XmlPersistContext context)
Loads the item content from an XML element.
|
protected void |
onAdd()
DiagramItem.onAdd() override. |
protected void |
onChangeTextPadding() |
protected void |
onLoad(Diagram diagram)
|
protected void |
onRotationAngleChanged()
DiagramNode.onRotationAngleChanged() override. |
protected void |
onUpdateBounds()
Invoked when the bounding rectangle of this node has changed.
|
void |
readExternal(java.io.ObjectInput in)
Implements Externalizable.
|
void |
renderText(java.lang.String text,
android.graphics.RectF dest,
com.mindfusion.diagramming.DrawTextHint hint) |
void |
resizeToFitImage()
Resizes a node so that it will be as big as the image displayed in the node.
|
boolean |
resizeToFitText(FitSize fit)
Makes a node big enough to display its text without clipping.
|
protected void |
restoreProperties(DiagramItemProperties props)
|
protected void |
restoreState(DiagramItemState state)
|
protected void |
saveProperties(DiagramItemProperties props)
|
protected void |
saveState(DiagramItemState state)
|
protected void |
saveToXml(org.w3c.dom.Element xmlElement,
XmlPersistContext context)
Saves the item content into an XML element.
|
void |
setAllowFlip(boolean value)
Sets a value indicating whether the node's shape flips when an edge is dragged over its opposite edge.
|
void |
setCustomDraw(CustomDraw value)
Sets a value indicating what type of custom drawing to perform on a node.
|
void |
setEditedText(java.lang.String newText)
Implements InplaceEditable.setEditedText.
|
void |
setEnableStyledText(boolean value)
Sets a value indicating whether the text of a node contains formatting
tags which should be processed by JDiagram.
|
void |
setFlipX(boolean value)
Sets a value indicating whether the node's shape is flipped horizontally.
|
void |
setFlipY(boolean value)
Sets a value indicating whether the node's shape is flipped vertically.
|
void |
setFont(Font value)
Sets the font used to draw the text label of a node.
|
void |
setImage(android.graphics.Bitmap value)
Sets the image that should be displayed inside the node.
|
void |
setImageAlign(ImageAlign value)
Sets the alignment of the node's image.
|
void |
setRotateImage(boolean value)
Sets a value indicating whether the image displayed inside a node
should rotate together with the node.
|
void |
setRotateText(boolean value)
Sets a value indicating whether the text displayed inside a node
should rotate together with the node.
|
void |
setShape(Shape value)
Sets the shape of a node to the specified
Shape instance. |
void |
setShapeOrientation(float value)
Sets an orientation angle applied to the shape definition before
the shape points are mapped to the node's bounding rectangle.
|
void |
setText(java.lang.String value)
Sets the text label displayed inside this node.
|
void |
setTextFormat(TextFormat value)
Sets a
TextFormat object specifying how to format and align the text of this node. |
void |
setTransparent(boolean value)
Sets a value indicating whether only the text and image of a node
should be drawn on the screen.
|
protected void |
updateModify(android.graphics.PointF current,
InteractionState ist)
|
static com.mindfusion.diagramming.builders.ShapeNodeBuilder |
with()
Returns a ShapeNodeBuilder object used to configure and create new ShapeNode instances.
|
void |
writeExternal(java.io.ObjectOutput out)
Implements Externalizable.
|
allowCreate, allowModify, allowModifyImpl, attachTo, attachTo, attachTo, completeCreate, completeModify, constraintsInfringed, detach, draw, drawShadow, getAllIncomingLinks, getAllLinks, getAllOutgoingLinks, getAllowIncomingLinks, getAllowOutgoingLinks, getAnchorPattern, getBounds, getCenter, getConstraints, getEffects, getEnabledHandles, getExpandable, getExpanded, getHandlesStyle, getIncomingLinks, getLocalBounds, getLocalBoundsD, getLocalCenter, getMasterGroup, getObstacle, getOutgoingLinks, getRotatedBounds, getRotationAngle, groupContains, hitTestHandle, move, moveTo, nodesIntersect, onDragOut, onDragOver, onDropOver, onModify, onRemove, parentConstraintsInfringed, putExpandable, rectFromPoints, resize, resizeToFitImage, scaleElements, setAllowIncomingLinks, setAllowOutgoingLinks, setAnchorPattern, setBounds, setBounds, setBounds, setBoundsDirect, setConstraints, setEnabledHandles, setExpandable, setExpanded, setExpandedFlag, setHandlesStyle, setObstacle, setReflexive, setRotationAngle, shouldRenderAnchors, startCreate, startModify, updateCreate, updateLinkPositions
clone, getBrush, getEffectiveBrush, getEffectiveFont, getEffectivePen, getEffectiveShadowBrush, getEffectiveTextBrush, getHyperLink, getId, getIgnoreLayout, getLayerIndex, getLayoutTraits, getLocked, getMeasureUnit, getParent, getPen, getPrintable, getRuntimeIndex, getSelected, getShadowBrush, getShadowOffsetX, getShadowOffsetY, getStyle, getSubordinateGroup, getTag, getTextBrush, getTextPadding, getToolTip, getValue, getVisible, getWeight, getZIndex, hasSubordinates, onChangeFont, onChildModified, onClick, onDoubleClick, onMeasureUnitChanged, onStyleChanged, putSelected, query, repaint, repaint, repaint, setBrush, setDiagramDirty, setHyperLink, setId, setIgnoreLayout, setLayerIndex, setLocked, setPen, setPrintable, setSelected, setShadowBrush, setShadowOffsetX, setShadowOffsetY, setStyle, setTag, setTextBrush, setTextPadding, setToolTip, setVisible, setWeight, setZIndex, shouldRender, zBottom, zLevelDown, zLevelUp, zTop
public ShapeNode()
public ShapeNode(Diagram parent)
parent
- A Diagram
instance whose default node
attributes are copied to this node.public static com.mindfusion.diagramming.builders.ShapeNodeBuilder with()
ShapeNodeBuilder
instance.public com.mindfusion.diagramming.builders.ShapeNodeBuilder init()
ShapeNodeBuilder
instance.protected android.graphics.RectF getRepaintRect(boolean includeConnected)
DiagramItem
getRepaintRect
in class DiagramNode
includeConnected
- true if related items should be considered too; otherwise, false.protected void onUpdateBounds()
DiagramNode
onUpdateBounds
in class DiagramNode
protected void drawLocal(android.graphics.Canvas graphics, RenderOptions options)
DiagramNode
drawLocal
in class DiagramNode
graphics
- The Canvas surface to draw the node on.options
- Provides options for the drawing operation.protected void drawShadowLocal(android.graphics.Canvas graphics, RenderOptions options)
DiagramNode
drawShadowLocal
in class DiagramNode
graphics
- The Canvas object where the shadow should be rendered.options
- Provides options for the drawing operation.public void renderText(java.lang.String text, android.graphics.RectF dest, com.mindfusion.diagramming.DrawTextHint hint)
public boolean containsPoint(android.graphics.PointF point, float threshold)
containsPoint
in class DiagramNode
point
- The point to check.threshold
- Specifies the size of the area around the node
outlines where the point is still considered inside the node.public boolean containsPoint(android.graphics.PointF point)
containsPoint
in class DiagramNode
point
- The point to check.public android.graphics.Bitmap getImage()
java.awt.Bitmap
object.public void setImage(android.graphics.Bitmap value)
value
- A java.awt.Bitmap
object.public ImageAlign getImageAlign()
ImageAlign
enumeration.public void setImageAlign(ImageAlign value)
value
- A member of the ImageAlign
enumeration.public java.lang.String getText()
String
containing the label text.public void setText(java.lang.String value)
value
- A String
containing the label text.public java.lang.String getPlainText()
String
containing the label text stripped from
formatting tags.public TextFormat getTextFormat()
TextFormat
object specifying how to format and align the text of this node.TextFormat
object specifying the text format and alignment.public void setTextFormat(TextFormat value)
TextFormat
object specifying how to format and align the text of this node.value
- A TextFormat
object specifying the text format and alignment.public boolean getTransparent()
true
to display only the node text and image,
otherwise false
.public void setTransparent(boolean value)
value
- true
to display only the node text and image,
otherwise false
.public void resizeToFitImage()
public CustomDraw getCustomDraw()
CustomDraw
enumeration.public void setCustomDraw(CustomDraw value)
value
- A member of the CustomDraw
enumeration.public boolean resizeToFitText(FitSize fit)
fit
- A member of the FitSize
enumeration specifying
whether the width or height of the node should remain unchanged.true
if the node is resized successfully; otherwise false
.public Shape getShape()
Shape
object representing the node's shape.public void setShape(Shape value)
Shape
instance. The
initial shape of a node is the one set via the
Diagram.setDefaultShape(com.mindfusion.diagramming.Shape)
method.value
- A Shape
object representing the node's shape.public float getShapeOrientation()
public void setShapeOrientation(float value)
value
- A float value specifying the shape definition orientation.protected void onRotationAngleChanged()
DiagramNode.onRotationAngleChanged()
override.onRotationAngleChanged
in class DiagramNode
public boolean getRotateImage()
true
if the node image rotates when
the node is rotated, otherwise false
.public void setRotateImage(boolean value)
value
- true
to rotate the node image when
the node is rotated, otherwise false
.public boolean getRotateText()
true
if the node text rotates when
the node is rotated, otherwise false
.public void setRotateText(boolean value)
value
- true
to rotate the node text when
the node is rotated, otherwise false
.protected ConnectionPoint createConnectionPoint(DiagramLink link, android.graphics.PointF pt, boolean incoming)
createConnectionPoint
in class DiagramNode
public java.lang.String getTextToEdit()
getTextToEdit
in interface InplaceEditable
public void setEditedText(java.lang.String newText)
setEditedText
in interface InplaceEditable
newText
- The new text of this node.public android.graphics.RectF getEditRect(DiagramItem item, android.graphics.PointF pointerPosition)
getEditRect
in interface InplaceEditable
item
- A reference to this node.pointerPosition
- A PointF instance specifying the current pointer position.public Font getFont()
getFont
in class DiagramItem
java.awt.Font
object representing the label font.public void setFont(Font value)
setFont
in class DiagramItem
value
- A java.awt.Font
object representing the label font.protected DiagramItemProperties createProperties()
DiagramItem.createProperties()
override.createProperties
in class DiagramNode
protected void saveProperties(DiagramItemProperties props)
saveProperties
in class DiagramNode
props
- A DiagramItemProperties-derived object where
the item's properties should be saved.protected void restoreProperties(DiagramItemProperties props)
restoreProperties
in class DiagramNode
props
- A DiagramItemProperties -derived object containing a
snapshot of the item's properties.protected DiagramItemState createState()
DiagramNode
DiagramItem.createState()
override.createState
in class DiagramNode
protected void saveState(DiagramItemState state)
DiagramNode
saveState
in class DiagramNode
protected void restoreState(DiagramItemState state)
DiagramNode
restoreState
in class DiagramNode
protected void updateModify(android.graphics.PointF current, InteractionState ist)
DiagramNode
DiagramItem.updateModify(android.graphics.PointF, com.mindfusion.diagramming.InteractionState)
override. Invoked during interactive modification of this node.updateModify
in class DiagramNode
current
- The current position of the pointer.ist
- An InteractionState
object containing more information about the current state of the operation.protected void cancelModify(InteractionState ist)
DiagramNode
DiagramItem.cancelModify(com.mindfusion.diagramming.InteractionState)
override. Invoked when the interactive modification of this node has been canceled.cancelModify
in class DiagramNode
ist
- An InteractionState
object containing more information about the current state of the operation.protected void onChangeTextPadding()
onChangeTextPadding
in class DiagramItem
public boolean getEnableStyledText()
true
if JDiagram should process formatting tags
when rendering the node label, otherwise false
.public void setEnableStyledText(boolean value)
value
- true
if JDiagram should process formatting tags
when rendering the node label, otherwise false
.public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
writeExternal
in class DiagramNode
java.io.IOException
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
readExternal
in class DiagramNode
java.io.IOException
java.lang.ClassNotFoundException
protected void onAdd()
DiagramItem.onAdd()
override.onAdd
in class DiagramItem
protected void onLoad(Diagram diagram)
onLoad
in class DiagramItem
protected void saveToXml(org.w3c.dom.Element xmlElement, XmlPersistContext context)
DiagramItem
saveToXml
in class DiagramNode
xmlElement
- An Element
the item's data should be stored into.context
- An XmlPersistContext
object providing contextual information about the serialization process and some helper serialization methods.protected void loadFromXml(org.w3c.dom.Element xmlElement, XmlPersistContext context) throws javax.xml.transform.TransformerException, XmlException
DiagramItem
loadFromXml
in class DiagramNode
xmlElement
- An XmlElement containing the item's data.context
- An XmlPersistContext
object providing contextual
information about the serialization process and some helper serialization methodsjavax.xml.transform.TransformerException
XmlException
public void setAllowFlip(boolean value)
value
- true to let users flip the shape, or false otherwise. The default value is false.public boolean getAllowFlip()
public void setFlipX(boolean value)
value
- true if the shape is flipped horizontally, or false otherwise.public boolean getFlipX()
public void setFlipY(boolean value)
value
- true if the shape is flipped vertically, or false otherwise.public boolean getFlipY()