You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jb...@apache.org on 2010/06/28 20:45:46 UTC

svn commit: r958674 - in /commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148: demo/drag-and-drop/drag-and-drop.xhtml src/javascript/scxml/cgf/SCXMLCompiler.js src/javascript/scxml/cgf/Transformer.js

Author: jbeard
Date: Mon Jun 28 18:45:46 2010
New Revision: 958674

URL: http://svn.apache.org/viewvc?rev=958674&view=rev
Log:
New demo working in Firefox. Still need to adjust styling, though.

Modified:
    commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/demo/drag-and-drop/drag-and-drop.xhtml
    commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/SCXMLCompiler.js
    commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/Transformer.js

Modified: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/demo/drag-and-drop/drag-and-drop.xhtml
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/demo/drag-and-drop/drag-and-drop.xhtml?rev=958674&r1=958673&r2=958674&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/demo/drag-and-drop/drag-and-drop.xhtml (original)
+++ commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/demo/drag-and-drop/drag-and-drop.xhtml Mon Jun 28 18:45:46 2010
@@ -19,7 +19,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg">
 	<head>
 		<style type="text/css">
-			body {
+			html, body {
 				height:100%;
 				margin: 0;
 				padding: 0;
@@ -27,38 +27,44 @@
 
 			div{ 
 				width:100%;
-				height:100%;
+				min-height:100%;
 			}
 		</style>
-		<script src="../../lib/js/requirejs/require.js" type="text/javascript"/>
+		<script src="../../lib/js/requirejs/require.js" type="text/javascript"></script>
+		<script src="../../lib/js/requirejs/require/text.js" type="text/javascript"></script>
+		<script src="../../lib/js/requirejs/require/xml.js" type="text/javascript"></script>
 	</head>
 	<body>
 		<div id="svgContainer">
 
 			<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%">
 
-				<rect width="100" height="100" stroke="black" fill="red" id="rectToTranslate">
+				<rect width="100" height="100" stroke="black" fill="red" id="rectToTranslate" >
 
 					<scxml 
 						xmlns="http://www.w3.org/2005/07/scxml"
 						version="1.0"
 						profile="ecmascript"
-						id="scxmlRoot">
+						id="scxmlRoot"
+						initial="initial_default">
 
 						<script>
 							function computeTDelta(oldEvent,newEvent){
 								//summary:computes the offset between two events; to be later used with this.translate
-								var dx = newEvent.localX - oldEvent.localX;
-								var dy = newEvent.localY - oldEvent.localY;
+								//console.log(oldEvent);
+								//console.log(newEvent);
+								var dx = newEvent.clientX - oldEvent.clientX;
+								var dy = newEvent.clientY - oldEvent.clientY;
 
 								return {'dx':dx,'dy':dy};
 							}
 
 							function translate(rawNode,tDelta){
+								//console.log("dx: %d,dy: %d",tDelta.dx,tDelta.dy);
 								var tl = rawNode.transform.baseVal;
-								var t = tl.numberOfItems ? tl.getItem(0) : canvas.createSVGTransform();
+								var t = tl.numberOfItems ? tl.getItem(0) : rawNode.ownerSVGElement.createSVGTransform();
 								var m = t.matrix;
-								var newM = identity.translate(tDelta.dx,tDelta.dy).multiply(m);
+								var newM = rawNode.ownerSVGElement.createSVGMatrix().translate(tDelta.dx,tDelta.dy).multiply(m);
 								t.setMatrix(newM);
 								tl.initialize(t);
 								return newM;
@@ -72,14 +78,14 @@
 							<data id="rectToTranslate"/>
 						</datamodel>
 
-						<state id="default">
-							<transition event="init">
+						<state id="initial_default">
+							<transition event="init" target="idle">
 								<assign location="rectToTranslate" expr="_event.data.rectToTranslate"/>
 							</transition>
 						</state>
 
 						<state id="idle">
-							<transition event="mousedown">
+							<transition event="mousedown" target="dragging">
 								<assign location="firstEvent" expr="_event.data"/>
 								<assign location="eventStamp" expr="_event.data"/>
 							</transition>
@@ -113,17 +119,24 @@
 				function(compiler){
 
 					//pull UI controls from DOM
-					var scxml_input = document.getElementById("scxmlRoot");
 					var rect = document.getElementById("rectToTranslate");
+					var scxml_input = rect.children[0]; 
+
+					//prep scxml document to transform by pulling the scxml node into its own document
+					var scxmlns = "http://www.w3.org/2005/07/scxml";
+					var scxmlToTransform = document.implementation.createDocument (scxmlns , "scxml", null);
+					var newNode = scxmlToTransform.importNode(scxml_input.cloneNode(true),true);
+					scxmlToTransform.replaceChild(newNode,scxmlToTransform.documentElement);
 
 					var compiledStatechartConstructor, compiledStatechartInstance; 
 
 					compiler.compile({
-						inFiles:[scxml_input],
+						inFiles:[scxmlToTransform],
+						//debug:true,
 						backend:"state",
 						beautify:true,
 						verbose:false,
-						log:true,
+						log:false,
 						ie:false
 					}, function(scArr){
 						var transformedJs = scArr[0];

Modified: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/SCXMLCompiler.js
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/SCXMLCompiler.js?rev=958674&r1=958673&r2=958674&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/SCXMLCompiler.js (original)
+++ commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/SCXMLCompiler.js Mon Jun 28 18:45:46 2010
@@ -68,8 +68,8 @@ require.def("src/javascript/scxml/cgf/SC
 
 				var toReturn = options.inFiles.map(function(xmlFile){
 
-					var ir = Transformer(xmlFile,backend.transformations,null,"xml");
-					var transformedJs = Transformer(ir,backend.code,options,"text");
+					var ir = Transformer(xmlFile,backend.transformations,null,"xml",options.debug);
+					var transformedJs = Transformer(ir,backend.code,options,"text",options.debug);
 
 					//optionally beautify it
 					if(options.beautify){

Modified: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/Transformer.js
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/Transformer.js?rev=958674&r1=958673&r2=958674&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/Transformer.js (original)
+++ commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-141-148/src/javascript/scxml/cgf/Transformer.js Mon Jun 28 18:45:46 2010
@@ -113,7 +113,7 @@ function(xmlUtil){
 					return toReturn;	//string or node
 				}			:
 				//everything else
-				function(sourceDocument,transformList,params,output){
+				function(sourceDocument,transformList,params,output,debug){
 					transformList = transformList && !transformList.length	? 
 								[transformList]			:
 								transformList;
@@ -153,8 +153,10 @@ function(xmlUtil){
 
 					var docToTransform  = sourceDocument;
 					processors.forEach(function(p){
+						if(debug) console.dirxml(docToTransform); 
 						docToTransform = p.transformToDocument(docToTransform);
 					});
+					if(debug) console.dirxml(docToTransform); 
 		
 
 					var toReturn;