commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jbe...@apache.org
Subject svn commit: r1032248 - in /commons/sandbox/gsoc/2010/scxml-js/trunk/src: python/scxml/cgf/backends/js/AbstractStatechartGenerator.py xslt/backends/js/AbstractStatechartGenerator.xsl
Date Sun, 07 Nov 2010 09:41:32 GMT
Author: jbeard
Date: Sun Nov  7 09:41:31 2010
New Revision: 1032248

URL: http://svn.apache.org/viewvc?rev=1032248&view=rev
Log:
Changed the listener code in order to fix a bug where onentry listeners were not being called
when transitioning from history states. The solution was to move the listeners into the onexit/onentry
actions, which I think makes sense.

Modified:
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
    commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/backends/js/AbstractStatechartGenerator.xsl

Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py?rev=1032248&r1=1032247&r2=1032248&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
(original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/backends/js/AbstractStatechartGenerator.py
Sun Nov  7 09:41:31 2010
@@ -7,6 +7,7 @@ config = {
 				"xslt/ir-compiler/computeLCA.xsl",
 				"xslt/ir-compiler/transformIf.xsl",
 				"xslt/ir-compiler/appendStateInformation.xsl",
-				"xslt/ir-compiler/appendBasicStateInformation.xsl"],
+				"xslt/ir-compiler/appendBasicStateInformation.xsl",
+				"xslt/ir-compiler/addBasicDescendantsToTransitions.xsl" ],
 	"code" : None
 }

Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/backends/js/AbstractStatechartGenerator.xsl
URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/backends/js/AbstractStatechartGenerator.xsl?rev=1032248&r1=1032247&r2=1032248&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/backends/js/AbstractStatechartGenerator.xsl
(original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/backends/js/AbstractStatechartGenerator.xsl
Sun Nov  7 09:41:31 2010
@@ -444,6 +444,17 @@
 					</if>
 
 					<apply-templates select="$state/s:onentry/*[self::s:if or self::s:raise or self::s:log
or self::s:script or self::s:send or self::s:cancel or self::s:invoke or self::s:finalize
or self::s:datamodel or self::s:data or self::s:assign or self::s:validate or self::s:param]"/>
+
+					<if test="$genListenerHooks">
+						<call-template name="genForEach">
+							<with-param name="var" select="'listener'"/>
+							<with-param name="in" select="'listeners'"/>
+							<with-param name="do">
+								//to
+								listener.onEntry("<value-of select="$stateName"/>");
+							</with-param>
+						</call-template>
+					</if>
 				}
 
 				this.exitAction = function(){
@@ -456,6 +467,21 @@
 					</if>
 
 					<apply-templates select="$state/s:onexit/*[self::s:if or self::s:raise or self::s:log
or self::s:script or self::s:send or self::s:cancel or self::s:invoke or self::s:finalize
or self::s:datamodel or self::s:data or self::s:assign or self::s:validate or self::s:param]"/>
+
+
+					<if test="$genListenerHooks">
+						<call-template name="genForEach">
+							<with-param name="var" select="'listener'"/>
+							<with-param name="in" select="'listeners'"/>
+							<with-param name="do">
+								//from
+								listener.onExit("<value-of select="$stateName"/>");
+							</with-param>
+							<!-- inner loop; assign these so we don't have a collision -->
+							<with-param name="iteratorVarName" select="concat(generate-id(),'_iterator')"/>
+							<with-param name="hoistVarName" select="concat(generate-id(),'_hoist')"/>
+						</call-template>
+					</if>
 				}
 
 				<call-template name="genStateHooks">
@@ -1010,20 +1036,6 @@
 			<with-param name="in" select="'statesExited'"/>
 			<with-param name="do">
 				state.exitAction();
-
-				<if test="$genListenerHooks">
-					<call-template name="genForEach">
-						<with-param name="var" select="'listener'"/>
-						<with-param name="in" select="'listeners'"/>
-						<with-param name="do">
-							//from
-							listener.onExit(state.toString());
-						</with-param>
-						<!-- inner loop; assign these so we don't have a collision -->
-						<with-param name="iteratorVarName" select="concat(generate-id(),'_iterator')"/>
-						<with-param name="hoistVarName" select="concat(generate-id(),'_hoist')"/>
-					</call-template>
-				</if>
 			</with-param>
 		</call-template>
 	</template>
@@ -1098,15 +1110,6 @@
 					<when test="$precomputeExit">
 						<for-each select="$t/c:exitpath/c:state">
 							<value-of select="."/>.exitAction();
-
-							<call-template name="genForEach">
-								<with-param name="var" select="'listener'"/>
-								<with-param name="in" select="'listeners'"/>
-								<with-param name="do">
-									//from
-									listener.onExit("<value-of select="."/>");
-								</with-param>
-							</call-template>
 						</for-each>
 					</when>
 					<otherwise>
@@ -1140,18 +1143,6 @@
 					<!-- iterate in reverse order -->
 					<sort select="position()" data-type="number" order="descending"/>
 					<value-of select="."/>.enterAction();
-
-					<if test="$genListenerHooks">
-
-						<call-template name="genForEach">
-							<with-param name="var" select="'listener'"/>
-							<with-param name="in" select="'listeners'"/>
-							<with-param name="do">
-								//to
-								listener.onEntry("<value-of select="."/>");
-							</with-param>
-						</call-template>
-					</if>
 				</for-each>
 
 				//update configuration



Mime
View raw message