Packagetwaver
Classpublic class ShapeNode
InheritanceShapeNode Inheritance Follower Inheritance Node Inheritance Element Inheritance Data Inheritance flash.events.EventDispatcher
Subclasses Bus, ShapeSubNetwork

This element defines a special node. Typically, node element displays an image to represent a network element, equipment or something. But shape node displays a shape instead a bitmap image. Shape node will display any complex shape or path and can be filled with some color or gradient, draw outline with color or link with, etc. The shape of shape node are controled by a set of points. You can change the points to change the shape or path. Shape node also contains segment for each point to tell ShapeNodeUI how to draw line between points. It can be "line to", "move to", or "quad to".

Shape node and shape link are both displays complex shape or path on network canvas. The diffence of shape node and shape link is, shape link is still a link, it extens from link element, normally has from and to nodes. As a link object, it does not has the abilities of a TWaver node or follower, such as location, following another node or be followed by other nodes. Another difference is, shape link displays a continuing line, shape node can display uncontinuing line with Consts.SEGMENT_MOVETO segment.

For example, if you displays a map of the United States, it is a good idea to use shape node to display each state with a set of location points. Then you can resize the shape node to scale the shape vectorially. You can edit the control points of this shape by mouse drag-and-drop on network canvas.

Check the demo "States Map Demo" in TWaver Flex online demo to know more how to use shape node.

	 var node:ShapeNode=new ShapeNode();	
	 node.setStyle(Styles.SHAPENODE_CLOSED, false);
	 node.setStyle(Styles.LABEL_POSITION, Consts.POSITION_CENTER);
	 node.setStyle(Styles.LABEL_FILL, true);
	 node.setStyle(Styles.LABEL_FILL_COLOR, 0xC0C0C0);
	 node.setStyle(Styles.LABEL_OUTLINE_WIDTH, 0);
	 node.setStyle(Styles.LABEL_OUTLINE_COLOR, 0x606060);
	 node.setStyle(Styles.LABEL_CORNER_RADIUS, 3);
	 node.setStyle(Styles.VECTOR_FILL, true);
	 node.setStyle(Styles.VECTOR_FILL_ALPHA, 0.7);
	 node.setStyle(Styles.VECTOR_GRADIENT, Consts.GRADIENT_NONE);
	 node.setStyle(Styles.SELECT_STYLE, Consts.SELECT_STYLE_SHADOW);
	 node.setStyle(Styles.SELECT_STRENGTH, 2);
	 node.setStyle(Styles.SELECT_BLURX, 20);
	 node.setStyle(Styles.SELECT_BLURY, 20);
	 node.setStyle(Styles.SELECT_COLOR, this.selectColor.selectedColor);
	 node.setStyle(Styles.SELECT_INNER, this.selectInner.selected);
	 
	 //...
	 
	 var segments:ICollection = new Collection();
	 var points:ICollection = new Collection();
	 for each(var point:XML in features.s.p){
	     segments.addItem(Consts.SEGMENT_LINETO);
	     points.addItem(new Point(x, y));
	 }
	 node.segments = segments;
	 node.points = points;
	 
	 //...
	 
	 box.add(node);
	 



Public Properties
 PropertyDefined By
 InheritedagentLinks : ICollection
[read-only] Get all agential links of this node.
Node
 InheritedalarmState : AlarmState
[read-only] Get alarm state object of this element.
Element
 InheritedcenterLocation : Point
Get the location of this node's center point.
Node
 Inheritedchildren : ICollection
[read-only] Get all children data objects of this data object.
Data
 InheritedchildrenCount : int
[read-only] Get all children total count for this data.
Data
 InheritedclientProperties : ICollection
[read-only] Get a ICollection that contians all client proerty name.
Data
  elementUIClass : Class
[override] [read-only] Get element ui class name.
ShapeNode
 Inheritedfollowers : ICollection
[read-only] Get all followers of this node with a collection.
Node
 InheritedfromAgentLinks : ICollection
[read-only] Get all agential from/start links of this node with a collection.
Node
 InheritedfromLinks : ICollection
[read-only] Get all links start from this node.
Node
 InheritedhasChildren : Boolean
[read-only] Check whether this data has children objects.
Data
  height : Number
[override] Set node height.
ShapeNode
 Inheritedhost : Node
Get the host node of this follower.
Follower
 Inheritedicon : String
Get icon value for this data.
Data
 Inheritedid : Object
[read-only] Get the ID value of this data.
Data
 Inheritedimage : String
Get image url of this node.
Node
 InheritedlayerID : Object
Get layer ID of this element.
Element
  lineLength : Number
[read-only] Get the number how many lines are contains in this shape.
ShapeNode
 Inheritedlinks : ICollection
[read-only] Get all connected links of this node with a collection.
Node
  location : Point
[override] Set the location for this node.
ShapeNode
 InheritedloopedLinks : ICollection
[read-only] Get all looped links on this node with a collection.
Node
 Inheritedname : String
Get name of this data.
Data
 Inheritedparent : IData
Get parent data object.
Data
  points : ICollection
Get all trace points of the shape.
ShapeNode
 Inheritedrect : Rectangle
[read-only] Get node bounds.
Node
  segments : ICollection
Get all segments of this shape node.
ShapeNode
 Inheritedsize : Size
[read-only] Get node size.
Node
 InheritedstyleProperties : ICollection
[read-only] Get a ICollection that contians all style proerty name.
Element
 InheritedtoAgentLinks : ICollection
[read-only] Get all agential to/end links of this node with a collection.
Node
 InheritedtoLinks : ICollection
[read-only] Get all to/end links end to this node.
Node
 InheritedtoolTip : String
Get the tooltip text of this data.
Data
  width : Number
[override] Set node width.
ShapeNode
 Inheritedx : Number
[read-only] Get x location of this node.
Node
 Inheritedy : Number
[read-only] Get y location of this node.
Node
Public Methods
 MethodDefined By
  
ShapeNode(id:Object = null)
Constructor.
ShapeNode
 Inherited
addChild(child:IData, index:int = -1):Boolean
Add a child data object for this data.
Data
  
addPoint(point:Point):void
Add a point into this shape node.
ShapeNode
  
addPointAt(point:Point, index:int):void
Add a new point into this shape in the specified location.
ShapeNode
 Inherited
addPropertyChangeListener(listener:Function, priority:int = 0, useWeakReference:Boolean = false):void
Add a property change listener to this data to monitoring property change event.
Data
 Inherited
clearChildren():Boolean
Clear all children from this data.
Data
 Inherited
deserializeXML(serializer:XMLSerializer, xml:XML):void
[override] inheritDoc
Element
  
Dispatch change event to all installed listeners when any point is changed.
ShapeNode
 Inherited
dispatchPropertyChangeEvent(property:String, oldValue:Object, newValue:Object):Boolean
Dispatch property change event to all installed listeners.
Data
 Inherited
getChildAt(index:int):IData
Get child as specified index location.
Data
 Inherited
getClient(clientProp:String):*
Get specified client property value.
Data
 Inherited
getPropertyValue(property:String):Object
[override] Get an user defined property on this data.
Element
 Inherited
getStyle(styleProp:String, returnDefaultIfNull:Boolean = true):*
Get the specified style property value.
Element
 Inherited
hasAgentLinks():Boolean
Check whether this node has agential links.
Node
 Inherited
hasOwnProperty(name:String):Boolean
Whether this data has specified property.
Data
 Inherited
Check whether this element has been adjusted to bottom.
Element
 Inherited
isDescendantOf(data:IData):Boolean
Check whether this data is a descendant of the specified data object.
Data
 Inherited
isHostOn(node:Node):Boolean
Check whether the specified node is my host or on my host chain.
Follower
 Inherited
isLoopedHostOn(follower:Follower):Boolean
Check whether specified follower is on a looped host chain.
Follower
 Inherited
isParentOf(data:IData):Boolean
Check whether this data is the parent of specified data.
Data
 Inherited
isRelatedTo(data:IData):Boolean
Check whether this data has descendant relationship with the specified data.
Data
 Inherited
removeChild(child:IData):Boolean
Remove the specified child object.
Data
  
removePoint(point:Point):void
Remove a point from this shape path.
ShapeNode
  
removePointAt(index:int):void
Remove the point at specified location.
ShapeNode
 Inherited
removePropertyChangeListener(listener:Function):void
Remove the specified property change listener.
Data
  
serializeXML(serializer:XMLSerializer, newInstance:IData):void
[override] inheritDoc
ShapeNode
 Inherited
setCenterLocation(x:Number, y:Number):void
Set a new location for this node's center point.
Node
 Inherited
setClient(clientProp:String, newValue:*):IClient
Set client property for this data.
Data
 Inherited
setLocation(x:Number, y:Number):void
Set a new location for this node.
Node
  
setPointAt(point:Point, index:int):void
Update the point at specified index location.
ShapeNode
 Inherited
setPropertyValue(property:String, value:Object):void
[override] Set an user defined property on this data.
Element
 Inherited
setSize(width:Number, height:Number):void
Set node size.
Node
 Inherited
setStyle(styleProp:String, newValue:*):IStyle
Set a style for this element.
Element
 Inherited
toChildren(matchFunction:Function = null):ICollection
Iterate children collection by given callback function.
Data
 Inherited
toString():String
[override]
Data
 Inherited
translate(dx:Number, dy:Number):void
Translate node location to specified offset.
Node
Protected Methods
 MethodDefined By
 Inherited
deserializeClient(serializer:XMLSerializer, clientXML:XML, clientProp:String):void
Deserialize client property from given XML data.
Data
 Inherited
deserializeProperty(serializer:XMLSerializer, propertyXML:XML, property:String):void
[override] inheritDoc
Element
 Inherited
deserializeStyle(serializer:XMLSerializer, styleXML:XML, styleProp:String):void
Deserialize style from given XML data.
Element
 Inherited
handleHostPropertyChange(e:PropertyChangeEvent):void
Called when host property is changed.
Follower
 Inherited
onChildAdded(child:IData, index:int):void
Called back when a child is added.
Data
 Inherited
onChildRemoved(child:IData, index:int):void
Called back when a child is removed.
Data
 Inherited
onChildrenCleared(children:Array):void
Called back when all children are cleared from this data.
Data
 Inherited
onClientChanged(styleProp:String, oldValue:*, newValue:*):void
Called when client property is changed.
Data
 Inherited
onHostChanged(oldHost:Node, newHost:Node):void
Called when host node is changed.
Follower
 Inherited
onParentChanged(oldParent:IData, newParent:IData):void
[override] Called back when data parent changed.
Node
 Inherited
onPropertyChanged(property:String, oldValue:Object, newValue:Object):void
[override] Called back when a property of this data is changed.
Node
 Inherited
onStyleChanged(styleProp:String, oldValue:*, newValue:*):void
[override] Called when style property is changed.
Follower
 Inherited
serializeClient(serializer:XMLSerializer, clientPrope:String, newInstance:IData):void
Serialize given client property into the specified XML serializer.
Data
 Inherited
serializeProperty(serializer:XMLSerializer, property:String, newInstance:IData):void
Serialize given property into the specified XML serializer.
Data
 Inherited
serializeStyle(serializer:XMLSerializer, stylePrope:String, newInstance:IData):void
Serialize specified property into XML.
Element
 Inherited
updateFollower(e:PropertyChangeEvent):void
Update follower after host property is changed
Follower
 Inherited
updateFollowerImpl(e:PropertyChangeEvent):void
Core implementation of methd updateFollower
Follower
Property Detail
elementUIClassproperty
elementUIClass:Class  [read-only] [override]

Get element ui class name. UI class is used to paint/draw element on network canvas. TWaver Flex will create UI object for the element instance by this returned class name.


Implementation
    public function get elementUIClass():Class
heightproperty 
height:Number[override]

Set node height.


Implementation
    public function get height():Number
    public function set height(value:Number):void
lineLengthproperty 
lineLength:Number  [read-only]

Get the number how many lines are contains in this shape.


Implementation
    public function get lineLength():Number
locationproperty 
location:Point[override]

Set the location for this node. Node on network canvas will be moved to the new location once this has been changed. Please note that node location is the left-top point of this node. Use setCenterLocation if you want use the node center as the location.


Implementation
    public function get location():Point
    public function set location(value:Point):void
pointsproperty 
points:ICollection

Get all trace points of the shape.


Implementation
    public function get points():ICollection
    public function set points(value:ICollection):void
segmentsproperty 
segments:ICollection

Get all segments of this shape node. Each segment used to control the corresponding point. Object inside this collection can be: Consts.SETMENT_MOVETO, Consts.SETMENT_LINETO, Consts.SETMENT_QUADTO.


Implementation
    public function get segments():ICollection
    public function set segments(value:ICollection):void
widthproperty 
width:Number[override]

Set node width.


Implementation
    public function get width():Number
    public function set width(value:Number):void
Constructor Detail
ShapeNode()Constructor
public function ShapeNode(id:Object = null)

Constructor. Create a shape node by specified id.

Parameters
id:Object (default = null) — the shape node id.
Method Detail
addPoint()method
public function addPoint(point:Point):void

Add a point into this shape node.

Parameters

point:Point — a new point to be added.

addPointAt()method 
public function addPointAt(point:Point, index:int):void

Add a new point into this shape in the specified location. You can use this method to insert a point in the shape at an index location.

Parameters

point:Point — the point to be added.
 
index:int — the index location of this point to be added.

dispatchPointsChangeEvent()method 
public function dispatchPointsChangeEvent():void

Dispatch change event to all installed listeners when any point is changed. All installed listeners will be notified when any points of this shape is changed.

removePoint()method 
public function removePoint(point:Point):void

Remove a point from this shape path.

Parameters

point:Point — the point to be removed.

removePointAt()method 
public function removePointAt(index:int):void

Remove the point at specified location.

Parameters

index:int — the point location to be removed.

serializeXML()method 
override public function serializeXML(serializer:XMLSerializer, newInstance:IData):void

inheritDoc

Parameters

serializer:XMLSerializer
 
newInstance:IData

setPointAt()method 
public function setPointAt(point:Point, index:int):void

Update the point at specified index location.

Parameters

point:Point — the new point value to be used to update.
 
index:int — the point location to be updated.