Author: jbeard Date: Tue Aug 10 14:19:01 2010 New Revision: 984028 URL: http://svn.apache.org/viewvc?rev=984028&view=rev Log: Added more action code to support drawing behaviour.
Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/demo/drawing-tool/behaviour/canvas.xml Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/demo/drawing-tool/behaviour/canvas.xml URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/demo/drawing-tool/behaviour/canvas.xml?rev=984028&r1=984027&r2=984028&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-js/trunk/demo/drawing-tool/behaviour/canvas.xml (original) +++ commons/sandbox/gsoc/2010/scxml-js/trunk/demo/drawing-tool/behaviour/canvas.xml Tue Aug 10 14:19:01 2010 @@ -309,26 +309,54 @@ In both: </onexit> <transition target="after_mousedown_on_selected_nodes" event="mousedown" - cond="selectedNodes.indexOf(_event.data.target) !== -1 && !_event.data.shiftKey"/> + cond="selectedNodes.indexOf(_event.data.target) !== -1 + && !_event.data.shiftKey"/> <transition target="after_mousedown_with_shift_key_on_selected_nodes" event="mousedown" - cond="selectedNodes.indexOf(_event.data.target) !== -1 && _event.data.shiftKey"/> + cond="selectedNodes.indexOf(_event.data.target) !== -1 + && _event.data.shiftKey"/> <transition target="after_mousedown_on_nonselected_nodes" event="mousedown" - cond="allNodes.indexOf(_event.data.target) !== -1 && !_event.data.shiftKey"/> + cond="allNodes.indexOf(_event.data.target) !== -1 + && !_event.data.shiftKey"/> <transition target="after_mousedown_with_shift_key_on_nonselected_nodes" event="mousedown" - cond="allNodes.indexOf(_event.data.target) !== -1 && _event.data.shiftKey"/> + cond="allNodes.indexOf(_event.data.target) !== -1 + && _event.data.shiftKey"/> <transition target="after_mousedown_on_canvas" event="mousedown" cond="_event.data.target === canvas"/> + + <transition target="rotating" event="mousedown" + cond="_event.data.target === rotationHandle + && In(ready_to_rotate)"/> + + <transition target="scaling" event="mousedown" + cond="_event.data.target === rotationHandle + && In(ready_to_scale)"/> </state> - <state id="after_mousedown_on_selected_nodes"> - <transition target="dragging" event="mousemove"/> + <!-- TODO: add rotation and scale code --> + <state id="rotating"> + <transition target="ready" event="mouseup"/> + <transition target="rotating" event="mousemove"/> + </state> - <transition target="ready" event="mouseup"> - <send event="TOGGLE_TRANSFORM"/> + <state id="scaling"> + <transition target="ready" event="mouseup"/> + <transition target="scaling" event="mousemove"/> + </state> + + <state id="after_mousedown_on_selected_nodes"> + <transition target="dragging" event="mousemove" cond="In(transform_tool_selected)"/> + <transition target="drawing_rect" event="mousemove" cond="In(rect_tool_selected)"/> + <transition target="drawing_circle" event="mousemove" cond="In(circle_tool_selected)"/> + + <transition target="ready" event="mouseup" > + <if cond="In(transform_tool_selected)"> + <send event="TOGGLE_TRANSFORM"/> + </if> </transition> + </state> <state id="after_mousedown_with_shift_key_on_selected_nodes"> @@ -341,7 +369,9 @@ In both: </transition> <!-- TODO: add marquee-drawing logic --> - <transition target="drawing_marquee" event="mousemove"/> + <transition target="drawing_marquee" event="mousemove" cond="In(transform_tool_selected)"/> + <transition target="drawing_rect" event="mousemove" cond="In(rect_tool_selected)"/> + <transition target="drawing_circle" event="mousemove" cond="In(circle_tool_selected)"/> </state> <!-- TODO: add dragging behaviour with the tdeltas and stuff --> @@ -354,11 +384,14 @@ In both: <assign location="selectedNodes" expr="[clickedNode]"/> <send event="NODES_SELECTED_WITH_CLICK"/> </transition> - <transition target="dragging" event="mousemove"> + <transition target="dragging" event="mousemove" cond="In(transform_tool_selected)"> <assign location="selectedNodes" expr="[clickedNode]"/> <send event="NODES_SELECTED_WITH_DRAG"/> <!-- TODO: add dragging logic --> </transition> + + <transition target="drawing_rect" event="mousemove" cond="In(rect_tool_selected)"/> + <transition target="drawing_circle" event="mousemove" cond="In(circle_tool_selected)"/> </state> <!-- TODO--> @@ -371,7 +404,10 @@ In both: </transition> <!-- TODO: add marquee-drawing logic --> - <transition target="drawing_marquee" event="mousemove"/> + <transition target="drawing_marquee" event="mousemove" cond="In(transform_tool_selected)"/> + + <transition target="drawing_rect" event="mousemove" cond="In(rect_tool_selected)"/> + <transition target="drawing_circle" event="mousemove" cond="In(circle_tool_selected)"/> </state> <state id="after_mousedown_on_canvas"> @@ -380,7 +416,10 @@ In both: <send event="CHECK_NODES"/> </transition> - <transition target="drawing_marquee" event="mousemove"/> + <transition target="drawing_marquee" event="mousemove" cond="In(transform_tool_selected)"/> + + <transition target="drawing_rect" event="mousemove" cond="In(rect_tool_selected)"/> + <transition target="drawing_circle" event="mousemove" cond="In(circle_tool_selected)"/> </state> <!-- TODO: add marquee-drawing logic --> @@ -394,6 +433,16 @@ In both: <transition target="drawing_marquee" event="mousemove"/> </state> + + <state id="drawing_circle"> + <transition target="drawing_circle" event="mousemove"/> + <transition target="ready" event="mouseup"/> + </state> + + <state id="drawing_rect"> + <transition target="drawing_rect" event="mousemove"/> + <transition target="ready" event="mouseup"/> + </state> </state> </parallel>