Hi,
I am trying to implement a simple labeled edge renderer for the springgraph
component. The code is very simple, just trying to add a label in between
the source node and destination node, also update the label's position
everytime the nodes are moved. i manage to get the label to show on screen
but i can't get it to move with the end nodes. I have attached my code
below, can anyone help?
public class LabelEdgeRenderer implements IEdgeRenderer
{
private var labels:Array = new Array();
public function draw(g:Graphics, f:UIComponent, t:UIComponent,
fromX:int,
fromY:int, toX:int, toY:int, graph:Graph):Boolean
{
var fromItem: Item = (f as IDataRenderer).data as Item;
var toItem: Item = (t as IDataRenderer).data as Item;
var linkData: Object = graph.getLinkData(fromItem,
toItem);
var alpha: Number = 1.0;
var thickness: int = 1;
var color;
if((linkData != null) &&
(linkData.hasOwnProperty("settings"))) {
var settings: Object = linkData.settings;
alpha = settings.alpha;
thickness = settings.thickness;
color = settings.color;
}
g.lineStyle(thickness,color,alpha);
g.beginFill(0);
g.moveTo(fromX, fromY);
g.lineTo(toX, toY);
g.endFill();
var label:Label = new Label();
label.text = "an edge label";
//codes for checking duplicate labels is omitted for
brevity
if(!labelExists(label)) {
f.parent.addChild(label);
}
var p:Point = new Point(f.x, f.y);
p = f.parent.globalToLocal(p);
label.label.x = p.x;
label.label.y = p.y;
return true;
}
}
--
View this message in context:
http://www.nabble.com/springgraph---implementing-a-labeled-edge-tf4371213.html#a12458963
Sent from the FlexCoders mailing list archive at Nabble.com.