this.apply(obj); this._rot(); this._pos(); // rotation matrix var rot=this.startRotation; if(this.control.x<this.start.x) rot+=Math.PI; var startRot=dojox.gfx.matrix.rotate(rot); rot=this.endRotation; if(this.control.x>=this.end.x) rot+=Math.PI; var endRot=dojox.gfx.matrix.rotateAt(rot, this.end.x, this.end.y); this.shape.setTransform(this.transform); this.pathShape.setShape( "M"+this.start.x+" "+this.start.y+" Q"+this.control.x+" "+this.control.y+" "+this.end.x+" "+this.end.y + " l0,0" ).setStroke(this.property('stroke')); this.startArrowGroup.setTransform({ dx:this.start.x, dy:this.start.y }); this.startArrowGroup.applyTransform(startRot); this.startArrow.setFill(this.property('fill')); this.endArrowGroup.setTransform(endRot); this.endArrow.setShape( "M" + this.end.x + "," + this.end.y + " l-20,-5 3,5 -3,5 Z" ).setFill(this.property('fill')); this.labelShape.setShape({x:this.textPosition.x, y:this.textPosition.y, text:this.property('label')}).setFill(this.property('fill'));