author | Edouard Tisserant <edouard.tisserant@gmail.com> |
Fri, 15 Jul 2022 14:42:08 +0200 | |
changeset 3541 | 916f553a74c3 |
parent 3507 | e87a2daace80 |
child 3582 | 7dcd0de97e6f |
child 3621 | da020d88db0c |
permissions | -rw-r--r-- |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
1 |
<?xml version="1.0"?> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
2 |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:str="http://exslt.org/strings" xmlns:func="http://exslt.org/functions" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:ns="beremiz" version="1.0" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn"> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
3 |
<xsl:output method="xml"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
4 |
<xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/> |
3264 | 5 |
<xsl:variable name="widgetparams" select="ns:GetWidgetParams()"/> |
3222
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
6 |
<xsl:variable name="indexed_hmitree" select="/.."/> |
3506 | 7 |
<xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([-.\d,]*)$'"/> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
8 |
<xsl:template mode="parselabel" match="*"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
9 |
<xsl:variable name="label" select="@inkscape:label"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
10 |
<xsl:variable name="id" select="@id"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
11 |
<xsl:variable name="description" select="substring-after($label,'HMI:')"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
12 |
<xsl:variable name="_args" select="substring-before($description,'@')"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
13 |
<xsl:variable name="args"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
14 |
<xsl:choose> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
15 |
<xsl:when test="$_args"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
16 |
<xsl:value-of select="$_args"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
17 |
</xsl:when> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
18 |
<xsl:otherwise> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
19 |
<xsl:value-of select="$description"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
20 |
</xsl:otherwise> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
21 |
</xsl:choose> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
22 |
</xsl:variable> |
3410 | 23 |
<xsl:variable name="_typefreq" select="substring-before($args,':')"/> |
24 |
<xsl:variable name="typefreq"> |
|
25 |
<xsl:choose> |
|
26 |
<xsl:when test="$_typefreq"> |
|
27 |
<xsl:value-of select="$_typefreq"/> |
|
28 |
</xsl:when> |
|
29 |
<xsl:otherwise> |
|
30 |
<xsl:value-of select="$args"/> |
|
31 |
</xsl:otherwise> |
|
32 |
</xsl:choose> |
|
33 |
</xsl:variable> |
|
3414
0ff608310312
SVGHMI: update generated xslt, and svghmi test project files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3410
diff
changeset
|
34 |
<xsl:variable name="freq" select="substring-after($typefreq,'|')"/> |
3410 | 35 |
<xsl:variable name="_type" select="substring-before($typefreq,'|')"/> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
36 |
<xsl:variable name="type"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
37 |
<xsl:choose> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
38 |
<xsl:when test="$_type"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
39 |
<xsl:value-of select="$_type"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
40 |
</xsl:when> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
41 |
<xsl:otherwise> |
3410 | 42 |
<xsl:value-of select="$typefreq"/> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
43 |
</xsl:otherwise> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
44 |
</xsl:choose> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
45 |
</xsl:variable> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
46 |
<xsl:if test="$type"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
47 |
<widget> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
48 |
<xsl:attribute name="id"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
49 |
<xsl:value-of select="$id"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
50 |
</xsl:attribute> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
51 |
<xsl:attribute name="type"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
52 |
<xsl:value-of select="$type"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
53 |
</xsl:attribute> |
3414
0ff608310312
SVGHMI: update generated xslt, and svghmi test project files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3410
diff
changeset
|
54 |
<xsl:if test="$freq"> |
3495
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
55 |
<xsl:if test="not(regexp:test($freq,'^[0-9]*(\.[0-9]+)?[smh]?'))"> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
56 |
<xsl:message terminate="yes"> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
57 |
<xsl:text>Widget id:</xsl:text> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
58 |
<xsl:value-of select="$id"/> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
59 |
<xsl:text> label:</xsl:text> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
60 |
<xsl:value-of select="$label"/> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
61 |
<xsl:text> has wrong syntax of frequency forcing </xsl:text> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
62 |
<xsl:value-of select="$freq"/> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
63 |
</xsl:message> |
f422d3d71f89
SVGHMI: fix active/inactive being swapped in ToggleButton
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3414
diff
changeset
|
64 |
</xsl:if> |
3414
0ff608310312
SVGHMI: update generated xslt, and svghmi test project files
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3410
diff
changeset
|
65 |
<xsl:attribute name="freq"> |
3410 | 66 |
<xsl:value-of select="$freq"/> |
67 |
</xsl:attribute> |
|
68 |
</xsl:if> |
|
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
69 |
<xsl:for-each select="str:split(substring-after($args, ':'), ':')"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
70 |
<arg> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
71 |
<xsl:attribute name="value"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
72 |
<xsl:value-of select="."/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
73 |
</xsl:attribute> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
74 |
</arg> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
75 |
</xsl:for-each> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
76 |
<xsl:variable name="paths" select="substring-after($description,'@')"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
77 |
<xsl:for-each select="str:split($paths, '@')"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
78 |
<xsl:if test="string-length(.) > 0"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
79 |
<path> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
80 |
<xsl:variable name="path_match" select="regexp:match(.,$pathregex)"/> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
81 |
<xsl:variable name="pathminmax" select="str:split($path_match[4],',')"/> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
82 |
<xsl:variable name="path" select="$path_match[2]"/> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
83 |
<xsl:variable name="path_accepts" select="$path_match[3]"/> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
84 |
<xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
85 |
<xsl:attribute name="value"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
86 |
<xsl:value-of select="$path"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
87 |
</xsl:attribute> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
88 |
<xsl:if test="string-length($path_accepts)"> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
89 |
<xsl:attribute name="accepts"> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
90 |
<xsl:value-of select="$path_accepts"/> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
91 |
</xsl:attribute> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
92 |
</xsl:if> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
93 |
<xsl:choose> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
94 |
<xsl:when test="$pathminmaxcount = 2"> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
95 |
<xsl:attribute name="min"> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
96 |
<xsl:value-of select="$pathminmax[1]"/> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
97 |
</xsl:attribute> |
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
98 |
<xsl:attribute name="max"> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
99 |
<xsl:value-of select="$pathminmax[2]"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
100 |
</xsl:attribute> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
101 |
</xsl:when> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
102 |
<xsl:when test="$pathminmaxcount = 1 or $pathminmaxcount > 2"> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
103 |
<xsl:message terminate="yes"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
104 |
<xsl:text>Widget id:</xsl:text> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
105 |
<xsl:value-of select="$id"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
106 |
<xsl:text> label:</xsl:text> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
107 |
<xsl:value-of select="$label"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
108 |
<xsl:text> has wrong syntax of path section </xsl:text> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
109 |
<xsl:value-of select="$pathminmax"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
110 |
</xsl:message> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
111 |
</xsl:when> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
112 |
</xsl:choose> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
113 |
<xsl:if test="$indexed_hmitree"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
114 |
<xsl:choose> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
115 |
<xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
116 |
<xsl:attribute name="type"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
117 |
<xsl:text>PAGE_LOCAL</xsl:text> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
118 |
</xsl:attribute> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
119 |
</xsl:when> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
120 |
<xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')"> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
121 |
<xsl:attribute name="type"> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
122 |
<xsl:text>HMI_LOCAL</xsl:text> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
123 |
</xsl:attribute> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
124 |
</xsl:when> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
125 |
<xsl:otherwise> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
126 |
<xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
127 |
<xsl:variable name="pathtype" select="local-name($item)"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
128 |
<xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
129 |
<xsl:message terminate="yes"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
130 |
<xsl:text>Widget id:</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
131 |
<xsl:value-of select="$id"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
132 |
<xsl:text> label:</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
133 |
<xsl:value-of select="$label"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
134 |
<xsl:text> path section </xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
135 |
<xsl:value-of select="$pathminmax"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
136 |
<xsl:text> use min and max on non mumeric value</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
137 |
</xsl:message> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
138 |
</xsl:if> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
139 |
<xsl:if test="count($item) = 1"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
140 |
<xsl:attribute name="index"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
141 |
<xsl:value-of select="$item/@index"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
142 |
</xsl:attribute> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
143 |
<xsl:attribute name="type"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
144 |
<xsl:value-of select="$pathtype"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
145 |
</xsl:attribute> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
146 |
</xsl:if> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
147 |
</xsl:otherwise> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
148 |
</xsl:choose> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
149 |
</xsl:if> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
150 |
</path> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
151 |
</xsl:if> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
152 |
</xsl:for-each> |
3264 | 153 |
<xsl:if test="svg:desc"> |
154 |
<desc> |
|
155 |
<xsl:value-of select="svg:desc/text()"/> |
|
156 |
</desc> |
|
157 |
</xsl:if> |
|
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
158 |
</widget> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
159 |
</xsl:if> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
160 |
</xsl:template> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
161 |
<xsl:template mode="genlabel" match="arg"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
162 |
<xsl:text>:</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
163 |
<xsl:value-of select="@value"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
164 |
</xsl:template> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
165 |
<xsl:template mode="genlabel" match="path"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
166 |
<xsl:text>@</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
167 |
<xsl:value-of select="@value"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
168 |
<xsl:if test="string-length(@min)>0 or string-length(@max)>0"> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
169 |
<xsl:text>,</xsl:text> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
170 |
<xsl:value-of select="@min"/> |
3234
f2bfb047d0e6
SVGHMI: drop useless code from gen_dnd_widget.yslt2, renamed python callback to pass messages
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3229
diff
changeset
|
171 |
<xsl:text>,</xsl:text> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
172 |
<xsl:value-of select="@max"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
173 |
</xsl:if> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
174 |
</xsl:template> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
175 |
<xsl:template mode="genlabel" match="widget"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
176 |
<xsl:text>HMI:</xsl:text> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
177 |
<xsl:value-of select="@type"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
178 |
<xsl:apply-templates mode="genlabel" select="arg"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
179 |
<xsl:apply-templates mode="genlabel" select="path"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
180 |
</xsl:template> |
3222
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
181 |
<xsl:variable name="_parsed_widgets"> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
182 |
<xsl:apply-templates mode="parselabel" select="$hmi_elements"/> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
183 |
</xsl:variable> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
184 |
<xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/> |
3223
061796d9855e
SVGHMI: Widget transform before DnD now should have HMI path as a parameter, but this path isn't computed for some reason... WIP.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3222
diff
changeset
|
185 |
<xsl:variable name="svg_widget" select="$parsed_widgets/widget[1]"/> |
061796d9855e
SVGHMI: Widget transform before DnD now should have HMI path as a parameter, but this path isn't computed for some reason... WIP.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3222
diff
changeset
|
186 |
<xsl:variable name="svg_widget_type" select="$svg_widget/@type"/> |
061796d9855e
SVGHMI: Widget transform before DnD now should have HMI path as a parameter, but this path isn't computed for some reason... WIP.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3222
diff
changeset
|
187 |
<xsl:variable name="svg_widget_path" select="$svg_widget/@path"/> |
061796d9855e
SVGHMI: Widget transform before DnD now should have HMI path as a parameter, but this path isn't computed for some reason... WIP.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3222
diff
changeset
|
188 |
<xsl:variable name="svg_widget_count" select="count($parsed_widgets/widget)"/> |
3264 | 189 |
<xsl:template mode="replace_params" match="@* | node()"> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
190 |
<xsl:copy> |
3264 | 191 |
<xsl:apply-templates mode="replace_params" select="@* | node()"/> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
192 |
</xsl:copy> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
193 |
</xsl:template> |
3264 | 194 |
<xsl:template mode="replace_params" match="arg"/> |
195 |
<xsl:template mode="replace_params" match="path"/> |
|
196 |
<xsl:template mode="replace_params" match="widget"> |
|
197 |
<xsl:copy> |
|
198 |
<xsl:apply-templates mode="replace_params" select="@* | node()"/> |
|
199 |
<xsl:copy-of select="$widgetparams/*"/> |
|
200 |
</xsl:copy> |
|
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
201 |
</xsl:template> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
202 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
203 |
<xsl:copy/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
204 |
</xsl:template> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
205 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@inkscape:label[starts-with(., 'HMI:')]"/> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
206 |
<xsl:template mode="inline_svg" match="node()"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
207 |
<xsl:copy> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
208 |
<xsl:if test="@id = $svg_widget/@id"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
209 |
<xsl:variable name="substituted_widget"> |
3264 | 210 |
<xsl:apply-templates mode="replace_params" select="$svg_widget"/> |
3229
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
211 |
</xsl:variable> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
212 |
<xsl:variable name="substituted_widget_ns" select="exsl:node-set($substituted_widget)"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
213 |
<xsl:variable name="new_label"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
214 |
<xsl:apply-templates mode="genlabel" select="$substituted_widget_ns"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
215 |
</xsl:variable> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
216 |
<xsl:attribute name="inkscape:label"> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
217 |
<xsl:value-of select="$new_label"/> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
218 |
</xsl:attribute> |
c5be4fd425e7
SVGHMI: still quite naive path substitution whn prepearing widget for DnD, but now uses label generation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3225
diff
changeset
|
219 |
</xsl:if> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
220 |
<xsl:apply-templates mode="inline_svg" select="@* | node()"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
221 |
</xsl:copy> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
222 |
</xsl:template> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
223 |
<xsl:template match="/"> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
224 |
<xsl:comment> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
225 |
<xsl:text>Widget dropped in Inkscape from Beremiz</xsl:text> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
226 |
</xsl:comment> |
3222
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
227 |
<xsl:choose> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
228 |
<xsl:when test="$svg_widget_count < 1"> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
229 |
<xsl:message terminate="yes"> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
230 |
<xsl:text>No widget detected on selected SVG</xsl:text> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
231 |
</xsl:message> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
232 |
</xsl:when> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
233 |
<xsl:when test="$svg_widget_count > 1"> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
234 |
<xsl:message terminate="yes"> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
235 |
<xsl:text>Multiple widget DnD not yet supported</xsl:text> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
236 |
</xsl:message> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
237 |
</xsl:when> |
6adeeb16ac3e
SVGHMI: Widget DnD to Inkscape : Added source SVG widget label parsing and pass selecte HMI subtree to XSLT tranform, so that SVG containing multiple widgets can later be matched against hmi tree fragments, in order to DnD complex groups of widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3221
diff
changeset
|
238 |
</xsl:choose> |
3221
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
239 |
<xsl:apply-templates mode="inline_svg" select="/"/> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
240 |
</xsl:template> |
3d307ad803ea
SVGHMI: Widget Library Picker now transforms SVG widget before allowing DnD. Transform is just identity forn now, but label parsing have already been included. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
241 |
</xsl:stylesheet> |