Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as =================================================================== diff -u -r70923fa577599b29f521d2daa8e348137e480bff -r5b8b877a9e81a776b5af2cb4177c60e304e06dc6 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 70923fa577599b29f521d2daa8e348137e480bff) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/DesignDataModel.as (.../DesignDataModel.as) (revision 5b8b877a9e81a776b5af2cb4177c60e304e06dc6) @@ -283,8 +283,9 @@ return new LFError("Adding grouping to hashtable failed","addGrouping",this,'groupingUIID:'+grp.groupingUIID); } */ - return true; dispatchEvent({type:'ddmUpdate',target:this}); + + return true; } /** @@ -838,6 +839,34 @@ return transObj; } + public function getBranchesForActivityUIID(UIID):Object{ + var br:Array = _branches.values(); + var branchObj = new Object(); + var myBranches:Array = new Array(); + var into = null; + var out = null; + + for(var i=0; i= 0) ? calcEdgePoint(degs - 180, toOTC.x, toOTC.y, toAct_Deg, _endPoint) + : calcEdgePoint(degs + 180, toOTC.x, toOTC.y, toAct_Deg, _endPoint); + // calc midpoint + if(_fromAct_edgePoint != null & _toAct_edgePoint != null) { + arrow_mc._x = (_fromAct_edgePoint.x + _toAct_edgePoint.x)/2; + arrow_mc._y = (_fromAct_edgePoint.y + _toAct_edgePoint.y)/2; + } else { + arrow_mc._x = (_startPoint.x + _endPoint.x)/2; + arrow_mc._y = (_startPoint.y + _endPoint.y)/2; + } + + Debugger.log("startPoint: (" + _startPoint.x + ", " + _startPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasConnection"); + Debugger.log("fromAct edge point: (" + _fromAct_edgePoint.x + ", " + _fromAct_edgePoint.y + ")", Debugger.CRITICAL, "draw", "CanvasConnection"); + Debugger.log("toAct edge point: (" + _toAct_edgePoint.x + ", " + _toAct_edgePoint.y + ")", Debugger.CRITICAL, "draw", "CanvasConnection"); + Debugger.log("endPoint: (" + _endPoint.x + ", " + _endPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasConnection"); + + Debugger.log("mid point: (" + _midPoint.x + ", " + _midPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasConnection"); + + arrow_mc._rotation = degs; + arrow_mc._visible = true; + + _midPoint = new Point(arrow_mc._x,arrow_mc._y); + + xPos = this._x; + + } + + private static function convertToDegrees(angle:Number):Number { + return Math.round(angle*180/Math.PI); + } + + private static function convertToRadians(degrees:Number):Number { + return degrees/180*Math.PI; + } + + private function getQuadrant(d:Number) { + if(d >= 0 && d < 90) { + return "q3"; + } else if(d < 0 && d >= - 90) { + return "q2"; + } else if(d < -90 && d >= -180) { + return "q1"; + } else { + return "q4"; + } + } + + private function calcEdgePoint(_d:Number, x_offset:Number, y_offset:Number, _act_d:Number, point:Point):Point { + var _edgePoint:Point = new Point(); + var d:Number = _d; + var quad:String = getQuadrant(d); + + switch(quad) { + case "q1": + d = 180 + d; + + _edgePoint.y = (d >= _act_d) ? point.y - y_offset : point.y - (x_offset * calcTangent(d, false)); + _edgePoint.x = (d >= _act_d) ? point.x - (y_offset * calcTangent(d, true)) : point.x - x_offset;; + + break; + case "q2": + d = Math.abs(d); + + _edgePoint.y = (d >= _act_d) ? point.y - y_offset : point.y - (x_offset * calcTangent(d, false)); + _edgePoint.x = (d >= _act_d) ? point.x + (y_offset * calcTangent(d, true)) : point.x + x_offset;; + + break; + case "q3": + + _edgePoint.y = (d >= _act_d) ? point.y + y_offset : point.y + (x_offset * calcTangent(d, false)); + _edgePoint.x = (d >= _act_d) ? point.x + (y_offset * calcTangent(d, true)) : point.x + x_offset; + + + break; + case "q4": + d = 180 - d; + + _edgePoint.y = (d >= _act_d) ? point.y + y_offset : point.y + (x_offset * calcTangent(d, false)); + _edgePoint.x = (d >= _act_d) ? point.x - (y_offset * calcTangent(d, true)) : point.x - x_offset;; + + break; + default: + // ERR: No Quadrant found + break; + } + + return _edgePoint; + } + + private function calcTangent(_d:Number, _use_adj_angle:Boolean) { + var d:Number = (_use_adj_angle) ? 90 - _d: _d; + return Math.tan(convertToRadians(d)); + } + + public function getToOTC(toAct_mc):Object { + var _toOTC = new Object(); + _toOTC.x = toAct_mc.getVisibleWidth()/2; + _toOTC.y = toAct_mc.getVisibleHeight()/2; + return _toOTC; + } + + public function getFromOTC(fromAct_mc):Object { + var _fromOTC = new Object(); + _fromOTC.x = fromAct_mc.getVisibleWidth()/2; + _fromOTC.y = fromAct_mc.getVisibleHeight()/2; + return _fromOTC; + } +} \ No newline at end of file Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r7548a5a6349a58e304bfa7b35805978121ccbd87 -r5b8b877a9e81a776b5af2cb4177c60e304e06dc6 --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 7548a5a6349a58e304bfa7b35805978121ccbd87) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 5b8b877a9e81a776b5af2cb4177c60e304e06dc6) @@ -192,7 +192,6 @@ //run in a loop to support branches, maybe more then 2 transitions. for (var i=0; i= 0) ? calcEdgePoint(degs - 180, toOTC_x, toOTC_y, toAct_Deg, _endPoint) - : calcEdgePoint(degs + 180, toOTC_x, toOTC_y, toAct_Deg, _endPoint); - // calc midpoint - if(_fromAct_edgePoint != null & _toAct_edgePoint != null) { - arrow_mc._x = (_fromAct_edgePoint.x + _toAct_edgePoint.x)/2; - arrow_mc._y = (_fromAct_edgePoint.y + _toAct_edgePoint.y)/2; - } else { - arrow_mc._x = (_startPoint.x + _endPoint.x)/2; - arrow_mc._y = (_startPoint.y + _endPoint.y)/2; - } - - Debugger.log("startPoint: (" + _startPoint.x + ", " + _startPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasTransition"); - Debugger.log("fromAct edge point: (" + _fromAct_edgePoint.x + ", " + _fromAct_edgePoint.y + ")", Debugger.CRITICAL, "draw", "CanvasTransition"); - Debugger.log("toAct edge point: (" + _toAct_edgePoint.x + ", " + _toAct_edgePoint.y + ")", Debugger.CRITICAL, "draw", "CanvasTransition"); - Debugger.log("endPoint: (" + _endPoint.x + ", " + _endPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasTransition"); - - Debugger.log("mid point: (" + _midPoint.x + ", " + _midPoint.y + ")", Debugger.CRITICAL, "draw", "CanvasTransition"); - - arrow_mc._rotation = degs; - arrow_mc._visible = true; - - _midPoint = new Point(arrow_mc._x,arrow_mc._y); - - xPos = this._x; + createConnection(fromAct_mc, toAct_mc, _startPoint, _endPoint, fromOTC, toOTC); } - - public function get xPosition():Number{ - return xPos; - } - - private static function convertToDegrees(angle:Number):Number { - return Math.round(angle*180/Math.PI); - } - - private static function convertToRadians(degrees:Number):Number { - return degrees/180*Math.PI; - } - - private function getQuadrant(d:Number) { - if(d >= 0 && d < 90) { - return "q3"; - } else if(d < 0 && d >= - 90) { - return "q2"; - } else if(d < -90 && d >= -180) { - return "q1"; - } else { - return "q4"; - } - } - - private function calcEdgePoint(_d:Number, x_offset:Number, y_offset:Number, _act_d:Number, point:Point):Point { - var _edgePoint:Point = new Point(); - var d:Number = _d; - var quad:String = getQuadrant(d); - - switch(quad) { - case "q1": - d = 180 + d; - - _edgePoint.y = (d >= _act_d) ? point.y - y_offset : point.y - (x_offset * calcTangent(d, false)); - _edgePoint.x = (d >= _act_d) ? point.x - (y_offset * calcTangent(d, true)) : point.x - x_offset;; - - break; - case "q2": - d = Math.abs(d); - - _edgePoint.y = (d >= _act_d) ? point.y - y_offset : point.y - (x_offset * calcTangent(d, false)); - _edgePoint.x = (d >= _act_d) ? point.x + (y_offset * calcTangent(d, true)) : point.x + x_offset;; - - break; - case "q3": - - _edgePoint.y = (d >= _act_d) ? point.y + y_offset : point.y + (x_offset * calcTangent(d, false)); - _edgePoint.x = (d >= _act_d) ? point.x + (y_offset * calcTangent(d, true)) : point.x + x_offset; - - - break; - case "q4": - d = 180 - d; - - _edgePoint.y = (d >= _act_d) ? point.y + y_offset : point.y + (x_offset * calcTangent(d, false)); - _edgePoint.x = (d >= _act_d) ? point.x - (y_offset * calcTangent(d, true)) : point.x - x_offset;; - - break; - default: - // ERR: No Quadrant found - break; - } - - return _edgePoint; - } - - private function calcTangent(_d:Number, _use_adj_angle:Boolean) { - var d:Number = (_use_adj_angle) ? 90 - _d: _d; - return Math.tan(convertToRadians(d)); - } - + private function onPress():Void{ // check double-click var now:Number = new Date().getTime();