Author: jbeard
Date: Thu Mar 17 16:20:26 2011
New Revision: 1082570
URL: http://svn.apache.org/viewvc?rev=1082570&view=rev
Log:
Generate dots for default states.
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/util/scxml-to-dot.xsl
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/util/scxml-to-dot.xsl
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/util/scxml-to-dot.xsl?rev=1082570&r1=1082569&r2=1082570&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/util/scxml-to-dot.xsl
(original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/xslt/util/scxml-to-dot.xsl Thu
Mar 17 16:20:26 2011
@@ -19,6 +19,7 @@
This stylesheet takes as input an scxml document, and produces as output
a document in the graphviz dot syntax.
-->
+<!-- assume initial states have been normalized -->
<stylesheet
xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:c="http://commons.apache.org/scxml-js"
@@ -30,8 +31,6 @@ a document in the graphviz dot syntax.
<param name="maxDepth" select="9999"/>
- <variable name="states" select="//s:state | //s:parallel"/>
-
<template name="htmlTransitionLabel">
<param name="transitions"/>
<param name="heading"/>
@@ -63,14 +62,22 @@ a document in the graphviz dot syntax.
</template>
<template match="/">
+ <variable name="states"
+ select="//s:state[count(ancestor::*) <= $maxDepth] |
+ //s:parallel[count(ancestor::*)
<= $maxDepth] |
+ //s:initial[count(ancestor::*)
<= $maxDepth]"/>
+
digraph G {
+
+ compound=true;
+
<apply-templates select="*[not(self::s:transition)]"/>
- <for-each select="$states[count(ancestor::*) <
$maxDepth]">
+ <for-each select="$states">
<variable name="fromState" select="."/>
- <for-each select="$states[count(ancestor::*)
< $maxDepth]">
+ <for-each select="$states">
<variable name="toState" select="."/>
<variable name="transitions"
select="$fromState/s:transition[@target=$toState/@id]"/>
@@ -95,9 +102,6 @@ a document in the graphviz dot syntax.
<when test="self::s:scxml">
color="blue";
</when>
- <when test="../@initial = @id">
- color="green";
- </when>
<otherwise>
color="black";
</otherwise>
@@ -138,22 +142,19 @@ a document in the graphviz dot syntax.
</when>
<otherwise>
<value-of select="@id"/>
- <text>[shape=box, style="rounded"</text>
- <if test="../@initial = @id">
- <text>,color="green"</text>
- </if>
- <text>];</text>
+ <text>[shape=box, style="rounded"];</text>
</otherwise>
</choose>
</template>
<template match="s:state[not(.//s:state)]">
<value-of select="@id"/>
- <text>[shape=box, style="rounded,filled",fillcolor=gray</text>
- <if test="../@initial = @id">
- <text>,color="green"</text>
- </if>
- <text>];</text>
+ <text>[shape=box, style="rounded,filled",fillcolor=gray];</text>
+ </template>
+
+ <template match="s:initial">
+ <value-of select="@id"/>
+ <text>[shape=point,width=.15];</text>
</template>
<template name="transition-template">