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-tf4371198.html#a12458926
Sent from the FlexCoders mailing list archive at Nabble.com.

Reply via email to