Author: jbeard
Date: Tue Aug 10 17:13:16 2010
New Revision: 984130

URL: http://svn.apache.org/viewvc?rev=984130&view=rev
Log:
Updated merged visualization code to use new dependency injection APIs.

Modified:
    
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical-layout-drag-and-drop/test.html
    commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test.html
    
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/testBatik.js
    
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test_with_dom.html
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout.js
    
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout/PrepLayout.js

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical-layout-drag-and-drop/test.html
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical-layout-drag-and-drop/test.html?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical-layout-drag-and-drop/test.html
 (original)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical-layout-drag-and-drop/test.html
 Tue Aug 10 17:13:16 2010
@@ -21,56 +21,61 @@
 
                
function(compiler,scxmlDoc,layout,dragAndDropBehaviourSCXMLDoc,xpath,LinkOptimizer){
 
-                       var layoutInfo = 
layout.applyHierarchicalLayout(scxmlDoc);
-                       var svgDoc = layoutInfo.svgDoc, 
-                               linkNodeList = layoutInfo.linkNodeList, 
-                               entityNodeList = layoutInfo.entityNodeList;
-
-                       //enough graphical stuff, let's do some compilation
-                       compiler.compile({
-                               inFiles:[dragAndDropBehaviourSCXMLDoc],
-                               backend:"state",
-                               beautify:true,
-                               verbose:false,
-                               log:false,
-                               ie:false,
-                               genListenerHooks:true
-                       }, function(scArr){
-                               var dragAndDropBehaviourTransformedJs = 
scArr[0];
-
-                               console.log(dragAndDropBehaviourTransformedJs);
-
-                               //hook up graphical node drag and drop behaviour
-                               eval(dragAndDropBehaviourTransformedJs);
-
-                               DragAndDropStatechartExecutionContext = 
StatechartExecutionContext;
-
-                               var graphEntityNodes = 
xpath.query("//svg:g...@c:graphEntity = 'true']",svgDoc.documentElement)
-                               graphEntityNodes.forEach(function(groupNode){
-                                       var compiledStatechartInstance = new 
DragAndDropStatechartExecutionContext();
-                                       
-                                       //initialize
-                                       compiledStatechartInstance.initialize();
-
-                                       console.log(groupNode);
-                                       
-                                       //pass in reference to rect
-                                       
compiledStatechartInstance.init({rawNode:groupNode,linkNodeList:linkNodeList,LinkOptimizer:LinkOptimizer});
 
-
-                                       //hook up DOM events
-                                       
["mousedown","mouseup","mousemove"].forEach(function(eventName){
-                                               
groupNode.addEventListener(eventName,
-                                               function(e){
-                                                       e.preventDefault();
-                                                       
compiledStatechartInstance[eventName](e);
-                                                       e.stopPropagation();
-                                               },
-                                               false);
-                                       });
+                       require( [window.DOMParser ?
+                                       
"src/javascript/scxml/cgf/util/xsl/browser" :
+                                       "src/javascript/scxml/cgf/util/xsl/ie"],
+                               function(transform){
+
+                                       var layoutInfo = 
layout.applyHierarchicalLayout(transform,scxmlDoc);
+                                       var svgDoc = layoutInfo.svgDoc, 
+                                               linkNodeList = 
layoutInfo.linkNodeList, 
+                                               entityNodeList = 
layoutInfo.entityNodeList;
+
+                                       //enough graphical stuff, let's do some 
compilation
+                                       compiler.compile({
+                                               
inFiles:[dragAndDropBehaviourSCXMLDoc],
+                                               backend:"state",
+                                               beautify:true,
+                                               verbose:false,
+                                               log:false,
+                                               ie:false,
+                                               genListenerHooks:true
+                                       }, function(scArr){
+                                               var 
dragAndDropBehaviourTransformedJs = scArr[0];
+
+                                               
console.log(dragAndDropBehaviourTransformedJs);
+
+                                               //hook up graphical node drag 
and drop behaviour
+                                               
eval(dragAndDropBehaviourTransformedJs);
+
+                                               
DragAndDropStatechartExecutionContext = StatechartExecutionContext;
+
+                                               var graphEntityNodes = 
xpath.query("//svg:g...@c:graphEntity = 'true']",svgDoc.documentElement)
+                                               
graphEntityNodes.forEach(function(groupNode){
+                                                       var 
compiledStatechartInstance = new DragAndDropStatechartExecutionContext();
+                                                       
+                                                       //initialize
+                                                       
compiledStatechartInstance.initialize();
+
+                                                       console.log(groupNode);
+                                                       
+                                                       //pass in reference to 
rect
+                                                       
compiledStatechartInstance.init({rawNode:groupNode,linkNodeList:linkNodeList,LinkOptimizer:LinkOptimizer});
 
+
+                                                       //hook up DOM events
+                                                       
["mousedown","mouseup","mousemove"].forEach(function(eventName){
+                                                               
groupNode.addEventListener(eventName,
+                                                               function(e){
+                                                                       
e.preventDefault();
+                                                                       
compiledStatechartInstance[eventName](e);
+                                                                       
e.stopPropagation();
+                                                               },
+                                                               false);
+                                                       });
+                                               });
+                                       },transform);
                                });
                        });
-               }
-       );
 </script>
   </head>
   <body/>

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test.html
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test.html?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test.html 
(original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test.html 
Tue Aug 10 17:13:16 2010
@@ -16,7 +16,13 @@
                                        "src/javascript/scxml/cgf/layout"],
 
                                function(scxmlDoc,layout){
-                                       
layout.applyHierarchicalLayout(scxmlDoc);
+                                       require( [window.DOMParser ?
+                                                       
"src/javascript/scxml/cgf/util/xsl/browser" :
+                                                       
"src/javascript/scxml/cgf/util/xsl/ie"],
+                                               function(transform){
+
+                                               
layout.applyHierarchicalLayout(transform,scxmlDoc);
+                                       });
                                }
                        );
                </script>

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/testBatik.js
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/testBatik.js?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/testBatik.js 
(original)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/testBatik.js 
Tue Aug 10 17:13:16 2010
@@ -21,14 +21,15 @@ require({
                        [
                                "xml!test/kitchen_sink/KitchenSink.xml",
                                "src/javascript/scxml/cgf/layout",
-                               "src/javascript/scxml/cgf/util/xml",
-                               "src/javascript/scxml/cgf/util/file"
+                               "src/javascript/scxml/cgf/util/xml/rhino",
+                               "src/javascript/scxml/cgf/util/file",
+                               "src/javascript/scxml/cgf/util/xsl/rhino"
                                ],
 
 
-                       function(scxmlDoc,layout,xml,file){
+                       function(scxmlDoc,layout,xml,file,transformer){
 
-                               var layoutInfo = 
layout.applyHierarchicalLayout(scxmlDoc);
+                               var layoutInfo = 
layout.applyHierarchicalLayout(transformer,scxmlDoc);
                                var svgDoc = layoutInfo.svgDoc;
 
                                //serialize to SVG, PDF, etc.

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test_with_dom.html
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test_with_dom.html?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test_with_dom.html
 (original)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/demo/hierarchical_layout/test_with_dom.html
 Tue Aug 10 17:13:16 2010
@@ -46,51 +46,58 @@
                                [
                                        "xml!test/kitchen_sink/KitchenSink.xml",
                                        "src/javascript/scxml/cgf/layout",
-                                       
"src/javascript/scxml/cgf/layout/hierarchical/HierarchicalLayout",
-                                       "src/javascript/scxml/cgf/util/xml"],
+                                       
"src/javascript/scxml/cgf/layout/hierarchical/HierarchicalLayout"],
 
-                               
function(scxmlDoc,layout,HierarchicalLayout,xmlUtils){
+                               function(scxmlDoc,layout,HierarchicalLayout){
 
-                                       //set the initial XML content in the 
textarea
-                                       var xmlString = 
xmlUtils.serializeToString(scxmlDoc);
-                                       scxml_input.textContent = xmlString;
-
-                                       //main callback on buttons
-                                       function 
applyHierLayout(heuristic,domAttachPoint,scxmlInputDoc){
-                                               
layout.applyHierarchicalLayout(scxmlInputDoc,{heuristic : 
heuristic},domAttachPoint)
-                                       }
-
-                                       function 
parseTextareaPopupWindowAndApplyLayout(heuristic){
-                                               //parse from textarea dom
-                                               var scxmlInputDoc = 
xmlUtils.parseFromString(scxml_input.textContent);
-
-                                               //open new window and get DOM 
attach point
-                                               var w = 
window.open("display.html");
-                                               //debugger;
-                                               
w.addEventListener("DOMContentLoaded",function(e){
-                                                       var domAttachPoint = 
w.document.body;
-
-                                                       //debugger;
-                                                       //apply layout
-                                                       console.log("dom attach 
point",domAttachPoint)
-                                                       
applyHierLayout(heuristic,domAttachPoint,scxmlInputDoc);
-                                               },true);
-
-                                       }
-
-                                       //hook up event listeners
-                                       
LONGEST_PATH_LAYERING_BOTTOM_UP_button.addEventListener("mousedown",function(e){
-                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_BOTTOM_UP)
-                                       },true); 
-                                       
LONGEST_PATH_LAYERING_TOP_DOWN_button.addEventListener("mousedown",function(e){
-                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_TOP_DOWN)
-                                       },true);
-                                       
MINIMUM_WIDTH_LAYERING_button.addEventListener("mousedown",function(e){
-                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.MINIMUM_WIDTH_LAYERING)
-                                       },true);
+                                       require( [window.DOMParser ?
+                                                       
"src/javascript/scxml/cgf/util/xsl/browser" :
+                                                       
"src/javascript/scxml/cgf/util/xsl/ie",
+                                                       window.DOMParser ?
+                                                               
"src/javascript/scxml/cgf/util/xml/browser" :
+                                                               
"src/javascript/scxml/cgf/util/xml/ie" ],
+                                               function(transform,xmlUtils){
+
+                                                       //set the initial XML 
content in the textarea
+                                                       var xmlString = 
xmlUtils.serializeToString(scxmlDoc);
+                                                       scxml_input.textContent 
= xmlString;
+
+                                                       //main callback on 
buttons
+                                                       function 
applyHierLayout(heuristic,domAttachPoint,scxmlInputDoc){
+                                                               
layout.applyHierarchicalLayout(transform,scxmlInputDoc,{heuristic : 
heuristic},domAttachPoint)
+                                                       }
+
+                                                       function 
parseTextareaPopupWindowAndApplyLayout(heuristic){
+                                                               //parse from 
textarea dom
+                                                               var 
scxmlInputDoc = xmlUtils.parseFromString(scxml_input.textContent);
+
+                                                               //open new 
window and get DOM attach point
+                                                               var w = 
window.open("display.html");
+                                                               //debugger;
+                                                               
w.addEventListener("DOMContentLoaded",function(e){
+                                                                       var 
domAttachPoint = w.document.body;
+
+                                                                       
//debugger;
+                                                                       //apply 
layout
+                                                                       
console.log("dom attach point",domAttachPoint)
+                                                                       
applyHierLayout(heuristic,domAttachPoint,scxmlInputDoc);
+                                                               },true);
+
+                                                       }
+
+                                                       //hook up event 
listeners
+                                                       
LONGEST_PATH_LAYERING_BOTTOM_UP_button.addEventListener("mousedown",function(e){
+                                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_BOTTOM_UP)
+                                                       },true); 
+                                                       
LONGEST_PATH_LAYERING_TOP_DOWN_button.addEventListener("mousedown",function(e){
+                                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_TOP_DOWN)
+                                                       },true);
+                                                       
MINIMUM_WIDTH_LAYERING_button.addEventListener("mousedown",function(e){
+                                                               
parseTextareaPopupWindowAndApplyLayout(HierarchicalLayout.HEURISTICS_ENUM.MINIMUM_WIDTH_LAYERING)
+                                                       },true);
+                                               });
 
-                               }
-                       );
+                               });
                </script>
 
 

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout.js
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout.js?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout.js 
(original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout.js 
Tue Aug 10 17:13:16 2010
@@ -12,7 +12,6 @@ require.def("src/javascript/scxml/cgf/la
        "xml!src/xslt/layout/computeAncestorOrSelfAndChildOfLCA.xsl",
        "xml!src/xslt/layout/addTransitionTargetIds.xsl",
        "xml!src/xslt/layout/scxmlToSVG.xsl",
-       "src/javascript/scxml/cgf/Transformer",
        "src/javascript/scxml/cgf/layout/PrepLayout",
        "src/javascript/scxml/cgf/layout/hierarchical/NodeWrapper",
        "src/javascript/scxml/cgf/layout/hierarchical/HierarchicalLayout",
@@ -23,20 +22,19 @@ function(
                
nameTransitions,generateUniqueStateIds,generateUniqueInitialStateIds,normalizeInitialStates,
                        
splitTransitionTargets,computeLCA,computeAncestorOrSelfAndChildOfLCA,addTransitionTargetIds,
                scxmlToSvgXsl,
-               Transformer,
                PrepLayout,NodeWrapper,HierarchicalLayout,shrinkwrapLayout,
                LinkOptimizer){
 
        return {
-               applyHierarchicalLayout : 
function(scxmlDoc,options,domAttachPoint){
-                       var ir = Transformer(scxmlDoc,
+               applyHierarchicalLayout : 
function(transformer,scxmlDoc,options,domAttachPoint){
+                       var ir = transformer(scxmlDoc,
                                
[generateUniqueStateIds,normalizeInitialStates,generateUniqueInitialStateIds,
                                        
nameTransitions,splitTransitionTargets,computeLCA,
                                        
computeAncestorOrSelfAndChildOfLCA,addTransitionTargetIds
                                ],
                                null,"xml");  //transform to IR
 
-                       var svgDoc = 
Transformer(ir,[scxmlToSvgXsl],null,"xml");        //transform scxml to 
non-laid out, svg graphical representation
+                       var svgDoc = 
transformer(ir,[scxmlToSvgXsl],null,"xml");        //transform scxml to 
non-laid out, svg graphical representation
 
                        //console.dirxml(ir);
                        svgDoc = PrepLayout.bootSVGDOM(svgDoc,domAttachPoint);
@@ -57,7 +55,7 @@ function(
                        //TODO: move this into hier layout
                        NodeWrapper.initilizeNodeWrapper()
                        
HierarchicalLayout.recursivelyApplyHierarchicalLayout(rootEntity,
-                               {heuristic : 
HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_BOTTOM_UP })
+                               {heuristic : (options && options.heuristic) || 
HierarchicalLayout.HEURISTICS_ENUM.LONGEST_PATH_LAYERING_BOTTOM_UP })
 
                        //shrinkwrap layout
                        console.log("Recursively applying shrinkwrap layout")

Modified: 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout/PrepLayout.js
URL: 
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout/PrepLayout.js?rev=984130&r1=984129&r2=984130&view=diff
==============================================================================
--- 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout/PrepLayout.js
 (original)
+++ 
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/layout/PrepLayout.js
 Tue Aug 10 17:13:16 2010
@@ -18,11 +18,10 @@
 require.def("src/javascript/scxml/cgf/layout/PrepLayout",
 [
        "src/javascript/scxml/cgf/util/svg",
-       "src/javascript/scxml/cgf/Transformer",
        "src/javascript/scxml/cgf/layout/graphics",
        "src/javascript/scxml/cgf/util/xpath" ],
 
-function(commonSVG,Transformer,graphics,xpath){
+function(commonSVG,graphics,xpath){
 
 
        //FIXME: this method is something that will need to be moved out as 
well, as we may use batik when running under Rhino


Reply via email to