author | usveticic |
Thu, 24 Sep 2020 11:52:40 +0200 | |
branch | svghmi |
changeset 3059 | e0db3f6a5f39 |
parent 3058 | 6ea4b7e1a9ed |
child 3065 | c369a742443d |
permissions | -rw-r--r-- |
2753
9a7e12e96399
SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with.
Edouard Tisserant
parents:
diff
changeset
|
1 |
<?xml version="1.0"?> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
2 |
<xsl:stylesheet xmlns:ns="beremiz" xmlns:definitions="definitions" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:func="http://exslt.org/functions" xmlns:epilogue="epilogue" xmlns:preamble="preamble" 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:svg="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:str="http://exslt.org/strings" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:exsl="http://exslt.org/common" xmlns:declarations="declarations" xmlns:debug="debug" exclude-result-prefixes="ns func exsl regexp str dyn debug preamble epilogue declarations definitions" extension-element-prefixes="ns func exsl regexp str dyn" version="1.0"> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3 |
<xsl:output method="xml" cdata-section-elements="xhtml:script"/> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4 |
<xsl:variable name="svg" select="/svg:svg"/> |
2879 | 5 |
<xsl:variable name="hmi_elements" select="//svg:*[starts-with(@inkscape:label, 'HMI:')]"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
6 |
<xsl:variable name="hmitree" select="ns:GetHMITree()"/> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
7 |
<xsl:variable name="_categories"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
8 |
<noindex> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
9 |
<xsl:text>HMI_PLC_STATUS</xsl:text> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
10 |
</noindex> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
11 |
<noindex> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
12 |
<xsl:text>HMI_CURRENT_PAGE</xsl:text> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
13 |
</noindex> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
14 |
</xsl:variable> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
15 |
<xsl:variable name="categories" select="exsl:node-set($_categories)"/> |
2867
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
16 |
<xsl:variable name="_indexed_hmitree"> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
17 |
<xsl:apply-templates mode="index" select="$hmitree"/> |
2867
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
18 |
</xsl:variable> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
19 |
<xsl:variable name="indexed_hmitree" select="exsl:node-set($_indexed_hmitree)"/> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
20 |
<preamble:hmi-tree/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
21 |
<xsl:template match="preamble:hmi-tree"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
22 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
23 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
24 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
25 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
26 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
27 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
28 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
29 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
30 |
<xsl:text>var hmi_hash = [</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
31 |
<xsl:value-of select="$hmitree/@hash"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
32 |
<xsl:text>]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
33 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
34 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
35 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
36 |
<xsl:text>var heartbeat_index = </xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
37 |
<xsl:value-of select="$indexed_hmitree/*[@hmipath = '/HEARTBEAT']/@index"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
38 |
<xsl:text>; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
39 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
40 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
41 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
42 |
<xsl:text>var hmitree_types = [ |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
43 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
44 |
<xsl:for-each select="$indexed_hmitree/*"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
45 |
<xsl:text> /* </xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
46 |
<xsl:value-of select="@index"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
47 |
<xsl:text> </xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
48 |
<xsl:value-of select="@hmipath"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
49 |
<xsl:text> */ "</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
50 |
<xsl:value-of select="substring(local-name(), 5)"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
51 |
<xsl:text>"</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
52 |
<xsl:if test="position()!=last()"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
53 |
<xsl:text>,</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
54 |
</xsl:if> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
55 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
56 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
57 |
</xsl:for-each> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
58 |
<xsl:text>] |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
59 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
60 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
61 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
62 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
63 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
64 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
65 |
<xsl:template mode="index" match="*"> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
66 |
<xsl:param name="index" select="0"/> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
67 |
<xsl:param name="parentpath" select="''"/> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
68 |
<xsl:variable name="content"> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
69 |
<xsl:variable name="path"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
70 |
<xsl:choose> |
2890
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
71 |
<xsl:when test="count(ancestor::*)=0"> |
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
72 |
<xsl:text>/</xsl:text> |
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
73 |
</xsl:when> |
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
74 |
<xsl:when test="count(ancestor::*)=1"> |
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
75 |
<xsl:text>/</xsl:text> |
ae8063127e95
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2889
diff
changeset
|
76 |
<xsl:value-of select="@name"/> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
77 |
</xsl:when> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
78 |
<xsl:otherwise> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
79 |
<xsl:value-of select="$parentpath"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
80 |
<xsl:text>/</xsl:text> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
81 |
<xsl:value-of select="@name"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
82 |
</xsl:otherwise> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
83 |
</xsl:choose> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
84 |
</xsl:variable> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
85 |
<xsl:choose> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
86 |
<xsl:when test="not(local-name() = $categories/noindex)"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
87 |
<xsl:copy> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
88 |
<xsl:attribute name="index"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
89 |
<xsl:value-of select="$index"/> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
90 |
</xsl:attribute> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
91 |
<xsl:attribute name="hmipath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
92 |
<xsl:value-of select="$path"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
93 |
</xsl:attribute> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
94 |
<xsl:for-each select="@*"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
95 |
<xsl:copy/> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
96 |
</xsl:for-each> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
97 |
</xsl:copy> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
98 |
<xsl:apply-templates mode="index" select="*[1]"> |
2867
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
99 |
<xsl:with-param name="index" select="$index + 1"/> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
100 |
<xsl:with-param name="parentpath"> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
101 |
<xsl:value-of select="$path"/> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
102 |
</xsl:with-param> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
103 |
</xsl:apply-templates> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
104 |
</xsl:when> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
105 |
<xsl:otherwise> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
106 |
<xsl:apply-templates mode="index" select="*[1]"> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
107 |
<xsl:with-param name="index" select="$index"/> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
108 |
<xsl:with-param name="parentpath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
109 |
<xsl:value-of select="$path"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
110 |
</xsl:with-param> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
111 |
</xsl:apply-templates> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
112 |
</xsl:otherwise> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
113 |
</xsl:choose> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
114 |
</xsl:variable> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
115 |
<xsl:copy-of select="$content"/> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
116 |
<xsl:apply-templates mode="index" select="following-sibling::*[1]"> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
117 |
<xsl:with-param name="index" select="$index + count(exsl:node-set($content)/*)"/> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
118 |
<xsl:with-param name="parentpath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
119 |
<xsl:value-of select="$parentpath"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
120 |
</xsl:with-param> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
121 |
</xsl:apply-templates> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
122 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
123 |
<xsl:template mode="parselabel" match="*"> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
124 |
<xsl:variable name="label" select="@inkscape:label"/> |
2792
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
125 |
<xsl:variable name="description" select="substring-after($label,'HMI:')"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
126 |
<xsl:variable name="_args" select="substring-before($description,'@')"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
127 |
<xsl:variable name="args"> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
128 |
<xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
129 |
<xsl:when test="$_args"> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
130 |
<xsl:value-of select="$_args"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
131 |
</xsl:when> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
132 |
<xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
133 |
<xsl:value-of select="$description"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
134 |
</xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
135 |
</xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
136 |
</xsl:variable> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
137 |
<xsl:variable name="_type" select="substring-before($args,':')"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
138 |
<xsl:variable name="type"> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
139 |
<xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
140 |
<xsl:when test="$_type"> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
141 |
<xsl:value-of select="$_type"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
142 |
</xsl:when> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
143 |
<xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
144 |
<xsl:value-of select="$args"/> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
145 |
</xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
146 |
</xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
147 |
</xsl:variable> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
148 |
<xsl:if test="$type"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
149 |
<widget> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
150 |
<xsl:attribute name="id"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
151 |
<xsl:value-of select="@id"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
152 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
153 |
<xsl:attribute name="type"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
154 |
<xsl:value-of select="$type"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
155 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
156 |
<xsl:for-each select="str:split(substring-after($args, ':'), ':')"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
157 |
<arg> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
158 |
<xsl:attribute name="value"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
159 |
<xsl:value-of select="."/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
160 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
161 |
</arg> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
162 |
</xsl:for-each> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
163 |
<xsl:variable name="paths" select="substring-after($description,'@')"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
164 |
<xsl:for-each select="str:split($paths, '@')"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
165 |
<xsl:if test="string-length(.) > 0"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
166 |
<path> |
2793
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
167 |
<xsl:attribute name="value"> |
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
168 |
<xsl:value-of select="."/> |
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
169 |
</xsl:attribute> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
170 |
<xsl:variable name="path" select="."/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
171 |
<xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
172 |
<xsl:choose> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
173 |
<xsl:when test="count($item) = 1"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
174 |
<xsl:attribute name="index"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
175 |
<xsl:value-of select="$item/@index"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
176 |
</xsl:attribute> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
177 |
<xsl:attribute name="type"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
178 |
<xsl:value-of select="local-name($item)"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
179 |
</xsl:attribute> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
180 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
181 |
<xsl:otherwise> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
182 |
<xsl:choose> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
183 |
<xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+')"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
184 |
<xsl:attribute name="type"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
185 |
<xsl:text>PAGE_LOCAL</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
186 |
</xsl:attribute> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
187 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
188 |
<xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+')"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
189 |
<xsl:attribute name="type"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
190 |
<xsl:text>HMI_LOCAL</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
191 |
</xsl:attribute> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
192 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
193 |
</xsl:choose> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
194 |
</xsl:otherwise> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
195 |
</xsl:choose> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
196 |
</path> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
197 |
</xsl:if> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
198 |
</xsl:for-each> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
199 |
</widget> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
200 |
</xsl:if> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
201 |
</xsl:template> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
202 |
<xsl:variable name="_parsed_widgets"> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
203 |
<xsl:apply-templates mode="parselabel" select="$hmi_elements"/> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
204 |
</xsl:variable> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
205 |
<xsl:variable name="parsed_widgets" select="exsl:node-set($_parsed_widgets)"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
206 |
<func:function name="func:widget"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
207 |
<xsl:param name="id"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
208 |
<func:result select="$parsed_widgets/widget[@id = $id]"/> |
2885
f398896b7ebf
SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets.
Edouard Tisserant
parents:
2883
diff
changeset
|
209 |
</func:function> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
210 |
<func:function name="func:is_descendant_path"> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
211 |
<xsl:param name="descend"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
212 |
<xsl:param name="ancest"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
213 |
<func:result select="string-length($ancest) > 0 and starts-with($descend,$ancest)"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
214 |
</func:function> |
2901
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
215 |
<func:function name="func:same_class_paths"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
216 |
<xsl:param name="a"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
217 |
<xsl:param name="b"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
218 |
<xsl:variable name="class_a" select="$indexed_hmitree/*[@hmipath = $a]/@class"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
219 |
<xsl:variable name="class_b" select="$indexed_hmitree/*[@hmipath = $b]/@class"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
220 |
<func:result select="$class_a and $class_b and $class_a = $class_b"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
221 |
</func:function> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
222 |
<xsl:template mode="testtree" match="*"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
223 |
<xsl:param name="indent" select="''"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
224 |
<xsl:value-of select="$indent"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
225 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
226 |
<xsl:value-of select="local-name()"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
227 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
228 |
<xsl:for-each select="@*"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
229 |
<xsl:value-of select="local-name()"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
230 |
<xsl:text>="</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
231 |
<xsl:value-of select="."/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
232 |
<xsl:text>" </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
233 |
</xsl:for-each> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
234 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
235 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
236 |
<xsl:apply-templates mode="testtree" select="*"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
237 |
<xsl:with-param name="indent"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
238 |
<xsl:value-of select="concat($indent,'>')"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
239 |
</xsl:with-param> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
240 |
</xsl:apply-templates> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
241 |
</xsl:template> |
2940
034b6ce4f885
SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2939
diff
changeset
|
242 |
<debug:hmi-tree/> |
034b6ce4f885
SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2939
diff
changeset
|
243 |
<xsl:template match="debug:hmi-tree"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
244 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
245 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
246 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
247 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
248 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
249 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
250 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
251 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
252 |
<xsl:text>Raw HMI tree |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
253 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
254 |
<xsl:apply-templates mode="testtree" select="$hmitree"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
255 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
256 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
257 |
<xsl:text>Indexed HMI tree |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
258 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
259 |
<xsl:apply-templates mode="testtree" select="$indexed_hmitree"/> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
260 |
<xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
261 |
</xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
262 |
<xsl:text>Parsed Widgets |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
263 |
</xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
264 |
<xsl:copy-of select="_parsed_widgets"/> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
265 |
<xsl:apply-templates mode="testtree" select="$parsed_widgets"/> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
266 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
267 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
268 |
</xsl:template> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
269 |
<xsl:variable name="geometry" select="ns:GetSVGGeometry()"/> |
2939
4296ab974d4d
SVGHMI: Move reflective debug tags from "reflect" to "debug" namespace, preparing for per-purpose namespaces.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2938
diff
changeset
|
270 |
<debug:geometry/> |
2940
034b6ce4f885
SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2939
diff
changeset
|
271 |
<xsl:template match="debug:geometry"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
272 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
273 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
274 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
275 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
276 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
277 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
278 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
279 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
280 |
<xsl:text>ID, x, y, w, h |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
281 |
</xsl:text> |
2879 | 282 |
<xsl:for-each select="$geometry"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
283 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
284 |
<xsl:value-of select="@Id"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
285 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
286 |
<xsl:value-of select="@x"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
287 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
288 |
<xsl:value-of select="@y"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
289 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
290 |
<xsl:value-of select="@w"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
291 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
292 |
<xsl:value-of select="@h"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
293 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
294 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
295 |
</xsl:for-each> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
296 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
297 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
298 |
</xsl:template> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
299 |
<func:function name="func:intersect_1d"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
300 |
<xsl:param name="a0"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
301 |
<xsl:param name="a1"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
302 |
<xsl:param name="b0"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
303 |
<xsl:param name="b1"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
304 |
<xsl:variable name="d0" select="$a0 >= $b0"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
305 |
<xsl:variable name="d1" select="$a1 >= $b1"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
306 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
307 |
<xsl:when test="not($d0) and $d1"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
308 |
<func:result select="3"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
309 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
310 |
<xsl:when test="$d0 and not($d1)"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
311 |
<func:result select="2"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
312 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
313 |
<xsl:when test="$d0 and $d1 and $a0 < $b1"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
314 |
<func:result select="1"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
315 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
316 |
<xsl:when test="not($d0) and not($d1) and $b0 < $a1"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
317 |
<func:result select="1"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
318 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
319 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
320 |
<func:result select="0"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
321 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
322 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
323 |
</func:function> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
324 |
<func:function name="func:intersect"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
325 |
<xsl:param name="a"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
326 |
<xsl:param name="b"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
327 |
<xsl:variable name="x_intersect" select="func:intersect_1d($a/@x, $a/@x+$a/@w, $b/@x, $b/@x+$b/@w)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
328 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
329 |
<xsl:when test="$x_intersect != 0"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
330 |
<xsl:variable name="y_intersect" select="func:intersect_1d($a/@y, $a/@y+$a/@h, $b/@y, $b/@y+$b/@h)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
331 |
<func:result select="$x_intersect * $y_intersect"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
332 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
333 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
334 |
<func:result select="0"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
335 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
336 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
337 |
</func:function> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
338 |
<func:function name="func:overlapping_geometry"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
339 |
<xsl:param name="elt"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
340 |
<xsl:variable name="groups" select="/svg:svg | //svg:g"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
341 |
<xsl:variable name="g" select="$geometry[@Id = $elt/@id]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
342 |
<xsl:variable name="candidates" select="$geometry[@Id != $elt/@id]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
343 |
<func:result select="$candidates[(@Id = $groups/@id and (func:intersect($g, .) = 9)) or (not(@Id = $groups/@id) and (func:intersect($g, .) > 0 ))]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
344 |
</func:function> |
2887 | 345 |
<xsl:variable name="hmi_pages_descs" select="$parsed_widgets/widget[@type = 'Page']"/> |
346 |
<xsl:variable name="hmi_pages" select="$hmi_elements[@id = $hmi_pages_descs/@id]"/> |
|
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
347 |
<xsl:variable name="default_page"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
348 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
349 |
<xsl:when test="count($hmi_pages) > 1"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
350 |
<xsl:choose> |
2887 | 351 |
<xsl:when test="$hmi_pages_descs/arg[1]/@value = 'Home'"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
352 |
<xsl:text>Home</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
353 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
354 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
355 |
<xsl:message terminate="yes">No Home page defined!</xsl:message> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
356 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
357 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
358 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
359 |
<xsl:when test="count($hmi_pages) = 0"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
360 |
<xsl:message terminate="yes">No page defined!</xsl:message> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
361 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
362 |
<xsl:otherwise> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
363 |
<xsl:value-of select="func:widget($hmi_pages/@id)/arg[1]/@value"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
364 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
365 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
366 |
</xsl:variable> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
367 |
<preamble:default-page/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
368 |
<xsl:template match="preamble:default-page"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
369 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
370 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
371 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
372 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
373 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
374 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
375 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
376 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
377 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
378 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
379 |
<xsl:text>var default_page = "</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
380 |
<xsl:value-of select="$default_page"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
381 |
<xsl:text>"; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
382 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
383 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
384 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
385 |
</xsl:template> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
386 |
<xsl:variable name="keypads_descs" select="$parsed_widgets/widget[@type = 'Keypad']"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
387 |
<xsl:variable name="keypads" select="$hmi_elements[@id = $keypads_descs/@id]"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
388 |
<func:function name="func:refered_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
389 |
<xsl:param name="elems"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
390 |
<xsl:variable name="descend" select="$elems/descendant-or-self::svg:*"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
391 |
<xsl:variable name="clones" select="$descend[self::svg:use]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
392 |
<xsl:variable name="originals" select="//svg:*[concat('#',@id) = $clones/@xlink:href]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
393 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
394 |
<xsl:when test="$originals"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
395 |
<func:result select="$descend | func:refered_elements($originals)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
396 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
397 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
398 |
<func:result select="$descend"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
399 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
400 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
401 |
</func:function> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
402 |
<func:function name="func:all_related_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
403 |
<xsl:param name="page"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
404 |
<xsl:variable name="page_overlapping_geometry" select="func:overlapping_geometry($page)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
405 |
<xsl:variable name="page_overlapping_elements" select="//svg:*[@id = $page_overlapping_geometry/@Id]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
406 |
<xsl:variable name="page_sub_elements" select="func:refered_elements($page | $page_overlapping_elements)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
407 |
<func:result select="$page_sub_elements"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
408 |
</func:function> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
409 |
<func:function name="func:required_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
410 |
<xsl:param name="pages"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
411 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
412 |
<xsl:when test="$pages"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
413 |
<func:result select="func:all_related_elements($pages[1]) | func:required_elements($pages[position()!=1])"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
414 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
415 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
416 |
<func:result select="/.."/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
417 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
418 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
419 |
</func:function> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
420 |
<xsl:variable name="required_elements" select="//svg:defs/descendant-or-self::svg:* | func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
421 |
<xsl:variable name="discardable_elements" select="//svg:*[not(@id = $required_elements/@id)]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
422 |
<func:function name="func:sumarized_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
423 |
<xsl:param name="elements"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
424 |
<xsl:variable name="short_list" select="$elements[not(ancestor::*/@id = $elements/@id)]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
425 |
<xsl:variable name="filled_groups" select="$short_list/parent::svg:*[ not(descendant::*[ not(self::svg:g) and not(@id = $discardable_elements/@id) and not(@id = $short_list/descendant-or-self::*[not(self::svg:g)]/@id) ])]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
426 |
<xsl:variable name="groups_to_add" select="$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
427 |
<func:result select="$groups_to_add | $short_list[not(ancestor::svg:g/@id = $filled_groups/@id)]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
428 |
</func:function> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
429 |
<func:function name="func:detachable_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
430 |
<xsl:param name="pages"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
431 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
432 |
<xsl:when test="$pages"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
433 |
<func:result select="func:sumarized_elements(func:all_related_elements($pages[1])) | func:detachable_elements($pages[position()!=1])"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
434 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
435 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
436 |
<func:result select="/.."/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
437 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
438 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
439 |
</func:function> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
440 |
<xsl:variable name="_detachable_elements" select="func:detachable_elements($hmi_pages | $keypads)"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
441 |
<xsl:variable name="detachable_elements" select="$_detachable_elements[not(ancestor::*/@id = $_detachable_elements/@id)]"/> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
442 |
<declarations:detachable-elements/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
443 |
<xsl:template match="declarations:detachable-elements"> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
444 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
445 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
446 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
447 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
448 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
449 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
450 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
451 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
452 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
453 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
454 |
<xsl:text>var detachable_elements = { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
455 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
456 |
<xsl:for-each select="$detachable_elements"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
457 |
<xsl:text> "</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
458 |
<xsl:value-of select="@id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
459 |
<xsl:text>":[id("</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
460 |
<xsl:value-of select="@id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
461 |
<xsl:text>"), id("</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
462 |
<xsl:value-of select="../@id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
463 |
<xsl:text>")]</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
464 |
<xsl:if test="position()!=last()"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
465 |
<xsl:text>,</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
466 |
</xsl:if> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
467 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
468 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
469 |
</xsl:for-each> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
470 |
<xsl:text>} |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
471 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
472 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
473 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
474 |
</xsl:template> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
475 |
<xsl:variable name="forEach_widgets_ids" select="$parsed_widgets/widget[@type = 'ForEach']/@id"/> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
476 |
<xsl:variable name="forEach_widgets" select="$hmi_elements[@id = $forEach_widgets_ids]"/> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
477 |
<xsl:variable name="in_forEach_widget_ids" select="func:refered_elements($forEach_widgets)[not(@id = $forEach_widgets_ids)]/@id"/> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
478 |
<xsl:template mode="page_desc" match="svg:*"> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
479 |
<xsl:variable name="desc" select="func:widget(@id)"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
480 |
<xsl:variable name="page" select="."/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
481 |
<xsl:variable name="p" select="$geometry[@Id = $page/@id]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
482 |
<xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/> |
2901
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
483 |
<xsl:variable name="all_page_widgets" select="$hmi_elements[@id = $page_all_elements/@id and @id != $page/@id]"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
484 |
<xsl:variable name="page_managed_widgets" select="$all_page_widgets[not(@id=$in_forEach_widget_ids)]"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
485 |
<xsl:variable name="page_relative_widgets" select="$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
486 |
<xsl:variable name="required_detachables" select="func:sumarized_elements($page_all_elements)/ ancestor-or-self::*[@id = $detachable_elements/@id]"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
487 |
<xsl:text> "</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
488 |
<xsl:value-of select="$desc/arg[1]/@value"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
489 |
<xsl:text>": { |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
490 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
491 |
<xsl:text> bbox: [</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
492 |
<xsl:value-of select="$p/@x"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
493 |
<xsl:text>, </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
494 |
<xsl:value-of select="$p/@y"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
495 |
<xsl:text>, </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
496 |
<xsl:value-of select="$p/@w"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
497 |
<xsl:text>, </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
498 |
<xsl:value-of select="$p/@h"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
499 |
<xsl:text>], |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
500 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
501 |
<xsl:if test="$desc/path/@value"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
502 |
<xsl:if test="count($desc/path/@index)=0"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
503 |
<xsl:message terminate="no"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
504 |
<xsl:text>Page id="</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
505 |
<xsl:value-of select="$page/@id"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
506 |
<xsl:text>" : No match for path "</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
507 |
<xsl:value-of select="$desc/path/@value"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
508 |
<xsl:text>" in HMI tree</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
509 |
</xsl:message> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
510 |
</xsl:if> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
511 |
<xsl:text> page_index: </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
512 |
<xsl:value-of select="$desc/path/@index"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
513 |
<xsl:text>, |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
514 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
515 |
</xsl:if> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
516 |
<xsl:text> widgets: [ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
517 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
518 |
<xsl:for-each select="$page_managed_widgets"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
519 |
<xsl:variable name="widget_paths_relativeness"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
520 |
<xsl:for-each select="func:widget(@id)/path"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
521 |
<xsl:value-of select="func:is_descendant_path(@value, $desc/path/@value)"/> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
522 |
<xsl:if test="position()!=last()"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
523 |
<xsl:text>,</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
524 |
</xsl:if> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
525 |
</xsl:for-each> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
526 |
</xsl:variable> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
527 |
<xsl:text> [hmi_widgets["</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
528 |
<xsl:value-of select="@id"/> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
529 |
<xsl:text>"], [</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
530 |
<xsl:value-of select="$widget_paths_relativeness"/> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
531 |
<xsl:text>]]</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
532 |
<xsl:if test="position()!=last()"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
533 |
<xsl:text>,</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
534 |
</xsl:if> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
535 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
536 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
537 |
</xsl:for-each> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
538 |
<xsl:text> ], |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
539 |
</xsl:text> |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
540 |
<xsl:text> jumps: [ |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
541 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
542 |
<xsl:for-each select="$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
543 |
<xsl:variable name="_id" select="@id"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
544 |
<xsl:variable name="opts"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
545 |
<xsl:call-template name="jump_widget_activity"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
546 |
<xsl:with-param name="hmi_element" select="$hmi_elements[@id=$_id]"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
547 |
</xsl:call-template> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
548 |
</xsl:variable> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
549 |
<xsl:if test="string-length($opts)>0"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
550 |
<xsl:text> hmi_widgets["</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
551 |
<xsl:value-of select="@id"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
552 |
<xsl:text>"]</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
553 |
<xsl:if test="position()!=last()"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
554 |
<xsl:text>,</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
555 |
</xsl:if> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
556 |
<xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
557 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
558 |
</xsl:if> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
559 |
</xsl:for-each> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
560 |
<xsl:text> ], |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
561 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
562 |
<xsl:text> required_detachables: { |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
563 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
564 |
<xsl:for-each select="$required_detachables"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
565 |
<xsl:text> "</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
566 |
<xsl:value-of select="@id"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
567 |
<xsl:text>": detachable_elements["</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
568 |
<xsl:value-of select="@id"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
569 |
<xsl:text>"]</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
570 |
<xsl:if test="position()!=last()"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
571 |
<xsl:text>,</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
572 |
</xsl:if> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
573 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
574 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
575 |
</xsl:for-each> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
576 |
<xsl:text> } |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
577 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
578 |
<xsl:apply-templates mode="per_page_widget_template" select="$parsed_widgets/widget[@id = $all_page_widgets/@id]"> |
2901
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
579 |
<xsl:with-param name="page_desc" select="$desc"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
580 |
</xsl:apply-templates> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
581 |
<xsl:text> }</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
582 |
<xsl:if test="position()!=last()"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
583 |
<xsl:text>,</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
584 |
</xsl:if> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
585 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
586 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
587 |
</xsl:template> |
3008
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
588 |
<definitions:page-desc/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
589 |
<xsl:template match="definitions:page-desc"> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
590 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
591 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
592 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
593 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
594 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
595 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
596 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
597 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
598 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
599 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
600 |
<xsl:text>var page_desc = { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
601 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
602 |
<xsl:apply-templates mode="page_desc" select="$hmi_pages"/> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
603 |
<xsl:text>} |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
604 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
605 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
606 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
607 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
608 |
<xsl:template mode="per_page_widget_template" match="*"/> |
2939
4296ab974d4d
SVGHMI: Move reflective debug tags from "reflect" to "debug" namespace, preparing for per-purpose namespaces.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2938
diff
changeset
|
609 |
<debug:detachable-pages/> |
2940
034b6ce4f885
SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2939
diff
changeset
|
610 |
<xsl:template match="debug:detachable-pages"> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
611 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
612 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
613 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
614 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
615 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
616 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
617 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
618 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
619 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
620 |
</xsl:text> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
621 |
<xsl:text>DETACHABLES: |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
622 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
623 |
<xsl:for-each select="$detachable_elements"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
624 |
<xsl:text> </xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
625 |
<xsl:value-of select="@id"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
626 |
<xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
627 |
</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
628 |
</xsl:for-each> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
629 |
<xsl:text>In Foreach: |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
630 |
</xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
631 |
<xsl:for-each select="$in_forEach_widget_ids"> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
632 |
<xsl:text> </xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
633 |
<xsl:value-of select="."/> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
634 |
<xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
635 |
</xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
636 |
</xsl:for-each> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
637 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
638 |
</xsl:text> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
639 |
</xsl:template> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
640 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="@*"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
641 |
<xsl:copy/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
642 |
</xsl:template> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
643 |
<xsl:template mode="inline_svg" match="node()"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
644 |
<xsl:if test="not(@id = $discardable_elements/@id)"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
645 |
<xsl:copy> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
646 |
<xsl:apply-templates mode="inline_svg" select="@* | node()"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
647 |
</xsl:copy> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
648 |
</xsl:if> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
649 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
650 |
<xsl:template mode="inline_svg" match="svg:svg/@width"/> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
651 |
<xsl:template mode="inline_svg" match="svg:svg/@height"/> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
652 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:svg"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
653 |
<svg> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
654 |
<xsl:attribute name="preserveAspectRatio"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
655 |
<xsl:text>none</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
656 |
</xsl:attribute> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
657 |
<xsl:attribute name="height"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
658 |
<xsl:text>100vh</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
659 |
</xsl:attribute> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
660 |
<xsl:attribute name="width"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
661 |
<xsl:text>100vw</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
662 |
</xsl:attribute> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
663 |
<xsl:apply-templates mode="inline_svg" select="@* | node()"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
664 |
</svg> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
665 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
666 |
<xsl:template mode="inline_svg" match="svg:svg[@viewBox!=concat('0 0 ', @width, ' ', @height)]"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
667 |
<xsl:message terminate="yes"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
668 |
<xsl:text>ViewBox settings other than X=0, Y=0 and Scale=1 are not supported</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
669 |
</xsl:message> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
670 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
671 |
<xsl:template mode="inline_svg" match="sodipodi:namedview[@units!='px' or @inkscape:document-units!='px']"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
672 |
<xsl:message terminate="yes"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
673 |
<xsl:text>All units must be set to "px" in Inkscape's document properties</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
674 |
</xsl:message> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
675 |
</xsl:template> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
676 |
<xsl:variable name="hmi_lists_descs" select="$parsed_widgets/widget[@type = 'List']"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
677 |
<xsl:variable name="hmi_lists" select="$hmi_elements[@id = $hmi_lists_descs/@id]"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
678 |
<xsl:variable name="targets_not_to_unlink" select="$hmi_lists/descendant-or-self::svg:*"/> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
679 |
<xsl:variable name="to_unlink" select="$hmi_elements[not(@id = $hmi_pages/@id)]/descendant-or-self::svg:use"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
680 |
<func:function name="func:is_unlinkable"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
681 |
<xsl:param name="targetid"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
682 |
<xsl:param name="eltid"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
683 |
<func:result select="$eltid = $to_unlink/@id and not($targetid = $targets_not_to_unlink/@id)"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
684 |
</func:function> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
685 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:use"> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
686 |
<xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
687 |
<xsl:choose> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
688 |
<xsl:when test="func:is_unlinkable($targetid, @id)"> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
689 |
<xsl:call-template name="unlink_clone"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
690 |
<xsl:with-param name="targetid" select="$targetid"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
691 |
</xsl:call-template> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
692 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
693 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
694 |
<xsl:copy> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
695 |
<xsl:apply-templates mode="inline_svg" select="@*"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
696 |
</xsl:copy> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
697 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
698 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
699 |
</xsl:template> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
700 |
<xsl:variable name="_excluded_use_attrs"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
701 |
<name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
702 |
<xsl:text>href</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
703 |
</name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
704 |
<name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
705 |
<xsl:text>width</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
706 |
</name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
707 |
<name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
708 |
<xsl:text>height</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
709 |
</name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
710 |
<name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
711 |
<xsl:text>x</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
712 |
</name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
713 |
<name> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
714 |
<xsl:text>y</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
715 |
</name> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
716 |
<name> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
717 |
<xsl:text>id</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
718 |
</name> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
719 |
</xsl:variable> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
720 |
<xsl:variable name="excluded_use_attrs" select="exsl:node-set($_excluded_use_attrs)"/> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
721 |
<xsl:variable name="_merge_use_attrs"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
722 |
<name> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
723 |
<xsl:text>transform</xsl:text> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
724 |
</name> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
725 |
<name> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
726 |
<xsl:text>style</xsl:text> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
727 |
</name> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
728 |
</xsl:variable> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
729 |
<xsl:variable name="merge_use_attrs" select="exsl:node-set($_merge_use_attrs)"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
730 |
<xsl:template xmlns="http://www.w3.org/2000/svg" name="unlink_clone"> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
731 |
<xsl:param name="targetid"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
732 |
<xsl:param name="seed" select="''"/> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
733 |
<xsl:variable name="target" select="//svg:*[@id = $targetid]"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
734 |
<xsl:variable name="seeded_id"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
735 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
736 |
<xsl:when test="string-length($seed) > 0"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
737 |
<xsl:value-of select="$seed"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
738 |
<xsl:text>_</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
739 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
740 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
741 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
742 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
743 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
744 |
</xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
745 |
</xsl:variable> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
746 |
<g> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
747 |
<xsl:attribute name="id"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
748 |
<xsl:value-of select="$seeded_id"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
749 |
</xsl:attribute> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
750 |
<xsl:attribute name="original"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
751 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
752 |
</xsl:attribute> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
753 |
<xsl:choose> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
754 |
<xsl:when test="$target[self::svg:g]"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
755 |
<xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name | $merge_use_attrs)]"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
756 |
<xsl:attribute name="{name()}"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
757 |
<xsl:value-of select="."/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
758 |
</xsl:attribute> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
759 |
</xsl:for-each> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
760 |
<xsl:if test="@style | $target/@style"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
761 |
<xsl:attribute name="style"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
762 |
<xsl:value-of select="@style"/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
763 |
<xsl:if test="@style and $target/@style"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
764 |
<xsl:text>;</xsl:text> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
765 |
</xsl:if> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
766 |
<xsl:value-of select="$target/@style"/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
767 |
</xsl:attribute> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
768 |
</xsl:if> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
769 |
<xsl:if test="@transform | $target/@transform"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
770 |
<xsl:attribute name="transform"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
771 |
<xsl:value-of select="@transform"/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
772 |
<xsl:if test="@transform and $target/@transform"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
773 |
<xsl:text> </xsl:text> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
774 |
</xsl:if> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
775 |
<xsl:value-of select="$target/@transform"/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
776 |
</xsl:attribute> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
777 |
</xsl:if> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
778 |
<xsl:apply-templates mode="unlink_clone" select="$target/*"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
779 |
<xsl:with-param name="seed" select="$seeded_id"/> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
780 |
</xsl:apply-templates> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
781 |
</xsl:when> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
782 |
<xsl:otherwise> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
783 |
<xsl:for-each select="@*[not(local-name() = $excluded_use_attrs/name)]"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
784 |
<xsl:attribute name="{name()}"> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
785 |
<xsl:value-of select="."/> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
786 |
</xsl:attribute> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
787 |
</xsl:for-each> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
788 |
<xsl:apply-templates mode="unlink_clone" select="$target"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
789 |
<xsl:with-param name="seed" select="$seeded_id"/> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
790 |
</xsl:apply-templates> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
791 |
</xsl:otherwise> |
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
792 |
</xsl:choose> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
793 |
</g> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
794 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
795 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@id"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
796 |
<xsl:param name="seed"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
797 |
<xsl:attribute name="id"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
798 |
<xsl:value-of select="$seed"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
799 |
<xsl:text>_</xsl:text> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
800 |
<xsl:value-of select="."/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
801 |
</xsl:attribute> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
802 |
<xsl:attribute name="original"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
803 |
<xsl:value-of select="."/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
804 |
</xsl:attribute> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
805 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
806 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="@*"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
807 |
<xsl:copy/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
808 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
809 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:use"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
810 |
<xsl:param name="seed"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
811 |
<xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
812 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
813 |
<xsl:when test="func:is_unlinkable($targetid, @id)"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
814 |
<xsl:call-template name="unlink_clone"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
815 |
<xsl:with-param name="targetid" select="$targetid"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
816 |
<xsl:with-param name="seed" select="$seed"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
817 |
</xsl:call-template> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
818 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
819 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
820 |
<xsl:copy> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
821 |
<xsl:apply-templates mode="unlink_clone" select="@*"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
822 |
<xsl:with-param name="seed" select="$seed"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
823 |
</xsl:apply-templates> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
824 |
</xsl:copy> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
825 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
826 |
</xsl:choose> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
827 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
828 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="unlink_clone" match="svg:*"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
829 |
<xsl:param name="seed"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
830 |
<xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
831 |
<xsl:when test="@id = $hmi_elements/@id"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
832 |
<use> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
833 |
<xsl:attribute name="xlink:href"> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
834 |
<xsl:value-of select="concat('#',@id)"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
835 |
</xsl:attribute> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
836 |
</use> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
837 |
</xsl:when> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
838 |
<xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
839 |
<xsl:copy> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
840 |
<xsl:apply-templates mode="unlink_clone" select="@* | node()"> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
841 |
<xsl:with-param name="seed" select="$seed"/> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
842 |
</xsl:apply-templates> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
843 |
</xsl:copy> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
844 |
</xsl:otherwise> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
845 |
</xsl:choose> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
846 |
</xsl:template> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
847 |
<xsl:variable name="result_svg"> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
848 |
<xsl:apply-templates mode="inline_svg" select="/"/> |
2877
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
849 |
</xsl:variable> |
682bce953795
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.
Edouard Tisserant
parents:
2876
diff
changeset
|
850 |
<xsl:variable name="result_svg_ns" select="exsl:node-set($result_svg)"/> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
851 |
<preamble:inline-svg/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
852 |
<xsl:template match="preamble:inline-svg"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
853 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
854 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
855 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
856 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
857 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
858 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
859 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
860 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
861 |
<xsl:text>let id = document.getElementById.bind(document); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
862 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
863 |
<xsl:text>var svg_root = id("</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
864 |
<xsl:value-of select="$svg/@id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
865 |
<xsl:text>"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
866 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
867 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
868 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
869 |
</xsl:template> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
870 |
<debug:clone-unlinking/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
871 |
<xsl:template match="debug:clone-unlinking"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
872 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
873 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
874 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
875 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
876 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
877 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
878 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
879 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
880 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
881 |
</xsl:text> |
2904
92d115d8828d
SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2903
diff
changeset
|
882 |
<xsl:text>Unlinked : |
92d115d8828d
SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2903
diff
changeset
|
883 |
</xsl:text> |
2878 | 884 |
<xsl:for-each select="$to_unlink"> |
885 |
<xsl:value-of select="@id"/> |
|
886 |
<xsl:text> |
|
887 |
</xsl:text> |
|
888 |
</xsl:for-each> |
|
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
889 |
<xsl:text>Not to unlink : |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
890 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
891 |
<xsl:for-each select="$targets_not_to_unlink"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
892 |
<xsl:value-of select="@id"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
893 |
<xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
894 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
895 |
</xsl:for-each> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
896 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
897 |
</xsl:text> |
2878 | 898 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
899 |
<xsl:template mode="hmi_widgets" match="svg:*"> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
900 |
<xsl:variable name="widget" select="func:widget(@id)"/> |
2881 | 901 |
<xsl:variable name="eltid" select="@id"/> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
902 |
<xsl:variable name="args"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
903 |
<xsl:for-each select="$widget/arg"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
904 |
<xsl:text>"</xsl:text> |
3024 | 905 |
<xsl:value-of select="func:escape_quotes(@value)"/> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
906 |
<xsl:text>"</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
907 |
<xsl:if test="position()!=last()"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
908 |
<xsl:text>,</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
909 |
</xsl:if> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
910 |
</xsl:for-each> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
911 |
</xsl:variable> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
912 |
<xsl:variable name="indexes"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
913 |
<xsl:for-each select="$widget/path"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
914 |
<xsl:choose> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
915 |
<xsl:when test="not(@index)"> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
916 |
<xsl:choose> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
917 |
<xsl:when test="not(@type)"> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
918 |
<xsl:message terminate="no"> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
919 |
<xsl:text>Widget </xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
920 |
<xsl:value-of select="$widget/@type"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
921 |
<xsl:text> id="</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
922 |
<xsl:value-of select="$eltid"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
923 |
<xsl:text>" : No match for path "</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
924 |
<xsl:value-of select="@value"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
925 |
<xsl:text>" in HMI tree</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
926 |
</xsl:message> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
927 |
<xsl:text>undefined</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
928 |
<xsl:if test="position()!=last()"> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
929 |
<xsl:text>,</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
930 |
</xsl:if> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
931 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
932 |
<xsl:when test="@type = 'PAGE_LOCAL'"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
933 |
<xsl:text>"</xsl:text> |
3025
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
934 |
<xsl:value-of select="@value"/> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
935 |
<xsl:text>"</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
936 |
<xsl:if test="position()!=last()"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
937 |
<xsl:text>,</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
938 |
</xsl:if> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
939 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
940 |
<xsl:when test="@type = 'HMI_LOCAL'"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
941 |
<xsl:text>hmi_local_index("</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
942 |
<xsl:value-of select="@value"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
943 |
<xsl:text>")</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
944 |
<xsl:if test="position()!=last()"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
945 |
<xsl:text>,</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
946 |
</xsl:if> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
947 |
</xsl:when> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
948 |
</xsl:choose> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
949 |
</xsl:when> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
950 |
<xsl:otherwise> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
951 |
<xsl:value-of select="@index"/> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
952 |
<xsl:if test="position()!=last()"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
953 |
<xsl:text>,</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
954 |
</xsl:if> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
955 |
</xsl:otherwise> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
956 |
</xsl:choose> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
957 |
</xsl:for-each> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
958 |
</xsl:variable> |
2881 | 959 |
<xsl:text> "</xsl:text> |
960 |
<xsl:value-of select="@id"/> |
|
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
961 |
<xsl:text>": new </xsl:text> |
2881 | 962 |
<xsl:value-of select="$widget/@type"/> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
963 |
<xsl:text>Widget ("</xsl:text> |
2881 | 964 |
<xsl:value-of select="@id"/> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
965 |
<xsl:text>",[</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
966 |
<xsl:value-of select="$args"/> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
967 |
<xsl:text>],[</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
968 |
<xsl:value-of select="$indexes"/> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
969 |
<xsl:text>],{ |
2881 | 970 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
971 |
<xsl:apply-templates mode="widget_defs" select="$widget"> |
2881 | 972 |
<xsl:with-param name="hmi_element" select="."/> |
973 |
</xsl:apply-templates> |
|
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
974 |
<xsl:text> })</xsl:text> |
2881 | 975 |
<xsl:if test="position()!=last()"> |
976 |
<xsl:text>,</xsl:text> |
|
977 |
</xsl:if> |
|
978 |
<xsl:text> |
|
2793
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
979 |
</xsl:text> |
2792
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
980 |
</xsl:template> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
981 |
<func:function name="func:unique_types"> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
982 |
<xsl:param name="elts_with_type"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
983 |
<xsl:choose> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
984 |
<xsl:when test="count($elts_with_type) > 1"> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
985 |
<xsl:variable name="prior_results" select="func:unique_types($elts_with_type[position()!=last()])"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
986 |
<xsl:choose> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
987 |
<xsl:when test="$elts_with_type[last()][@type = $prior_results/@type]"> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
988 |
<func:result select="$prior_results"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
989 |
</xsl:when> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
990 |
<xsl:otherwise> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
991 |
<func:result select="$prior_results | $elts_with_type[last()]"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
992 |
</xsl:otherwise> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
993 |
</xsl:choose> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
994 |
</xsl:when> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
995 |
<xsl:otherwise> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
996 |
<func:result select="$elts_with_type"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
997 |
</xsl:otherwise> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
998 |
</xsl:choose> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
999 |
</func:function> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1000 |
<preamble:local-variable-indexes/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1001 |
<xsl:template match="preamble:local-variable-indexes"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1002 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1003 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1004 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1005 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1006 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1007 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1008 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1009 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1010 |
<xsl:text>let hmi_locals = {}; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1011 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1012 |
<xsl:text>var last_remote_index = hmitree_types.length - 1; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1013 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1014 |
<xsl:text>var next_available_index = hmitree_types.length; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1015 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1016 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1017 |
</xsl:text> |
3024 | 1018 |
<xsl:text>const local_defaults = { |
1019 |
</xsl:text> |
|
1020 |
<xsl:for-each select="$parsed_widgets/widget[@type = 'VarInit']"> |
|
1021 |
<xsl:if test="count(path) != 1"> |
|
1022 |
<xsl:message terminate="yes"> |
|
1023 |
<xsl:text>VarInit </xsl:text> |
|
1024 |
<xsl:value-of select="@id"/> |
|
1025 |
<xsl:text> must have only one variable given.</xsl:text> |
|
1026 |
</xsl:message> |
|
1027 |
</xsl:if> |
|
1028 |
<xsl:if test="path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'"> |
|
1029 |
<xsl:message terminate="yes"> |
|
1030 |
<xsl:text>VarInit </xsl:text> |
|
1031 |
<xsl:value-of select="@id"/> |
|
1032 |
<xsl:text> only applies to HMI variable.</xsl:text> |
|
1033 |
</xsl:message> |
|
1034 |
</xsl:if> |
|
3025
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1035 |
<xsl:text>"</xsl:text> |
3024 | 1036 |
<xsl:value-of select="path/@value"/> |
3025
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1037 |
<xsl:text>":</xsl:text> |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1038 |
<xsl:value-of select="arg[1]/@value"/> |
3024 | 1039 |
<xsl:if test="position()!=last()"> |
1040 |
<xsl:text>,</xsl:text> |
|
1041 |
</xsl:if> |
|
1042 |
<xsl:text> |
|
1043 |
</xsl:text> |
|
1044 |
</xsl:for-each> |
|
1045 |
<xsl:text>}; |
|
1046 |
</xsl:text> |
|
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1047 |
<xsl:text>var cache = hmitree_types.map(_ignored => undefined); |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1048 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1049 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1050 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1051 |
<xsl:text>function page_local_index(varname, pagename){ |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1052 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1053 |
<xsl:text> let pagevars = hmi_locals[pagename]; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1054 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1055 |
<xsl:text> let new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1056 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1057 |
<xsl:text> if(pagevars == undefined){ |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1058 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1059 |
<xsl:text> new_index = next_available_index++; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1060 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1061 |
<xsl:text> hmi_locals[pagename] = {[varname]:new_index} |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1062 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1063 |
<xsl:text> } else { |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1064 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1065 |
<xsl:text> let result = pagevars[varname]; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1066 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1067 |
<xsl:text> if(result != undefined) { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1068 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1069 |
<xsl:text> return result; |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1070 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1071 |
<xsl:text> } |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1072 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1073 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1074 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1075 |
<xsl:text> new_index = next_available_index++; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1076 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1077 |
<xsl:text> pagevars[varname] = new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1078 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1079 |
<xsl:text> } |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1080 |
</xsl:text> |
3025
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1081 |
<xsl:text> let defaultval = local_defaults[varname]; |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1082 |
</xsl:text> |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1083 |
<xsl:text> if(defaultval != undefined) |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1084 |
</xsl:text> |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1085 |
<xsl:text> cache[new_index] = defaultval; |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1086 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1087 |
<xsl:text> return new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1088 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1089 |
<xsl:text>} |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1090 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1091 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1092 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1093 |
<xsl:text>function hmi_local_index(varname){ |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1094 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1095 |
<xsl:text> return page_local_index(varname, "HMI_LOCAL"); |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1096 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1097 |
<xsl:text>} |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1098 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1099 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1100 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1101 |
</xsl:template> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1102 |
<preamble:widget-base-class/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1103 |
<xsl:template match="preamble:widget-base-class"> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1104 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1105 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1106 |
<xsl:text>/* </xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1107 |
<xsl:value-of select="local-name()"/> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1108 |
<xsl:text> */ |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1109 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1110 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1111 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1112 |
<xsl:text>var pending_widget_animates = []; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1113 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1114 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1115 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1116 |
<xsl:text>class Widget { |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1117 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1118 |
<xsl:text> offset = 0; |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1119 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1120 |
<xsl:text> frequency = 10; /* FIXME arbitrary default max freq. Obtain from config ? */ |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1121 |
</xsl:text> |
2980
2a21d6060d64
SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons.
Edouard Tisserant
parents:
2979
diff
changeset
|
1122 |
<xsl:text> unsubscribable = false; |
2a21d6060d64
SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons.
Edouard Tisserant
parents:
2979
diff
changeset
|
1123 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1124 |
<xsl:text> pending_animate = false; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1125 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1126 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1127 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1128 |
<xsl:text> constructor(elt_id,args,indexes,members){ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1129 |
</xsl:text> |
2961
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1130 |
<xsl:text> this.element_id = elt_id; |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1131 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1132 |
<xsl:text> this.element = id(elt_id); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1133 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1134 |
<xsl:text> this.args = args; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1135 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1136 |
<xsl:text> this.indexes = indexes; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1137 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1138 |
<xsl:text> Object.keys(members).forEach(prop => this[prop]=members[prop]); |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1139 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1140 |
<xsl:text> } |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1141 |
</xsl:text> |
2961
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1142 |
<xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1143 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1144 |
<xsl:text> unsub(){ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1145 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1146 |
<xsl:text> /* remove subsribers */ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1147 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1148 |
<xsl:text> if(!this.unsubscribable) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1149 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1150 |
<xsl:text> for(let i = 0; i < this.indexes.length; i++) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1151 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1152 |
<xsl:text> let index = this.indexes[i]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1153 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1154 |
<xsl:text> if(this.relativeness[i]) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1155 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1156 |
<xsl:text> index += this.offset; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1157 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1158 |
<xsl:text> subscribers(index).delete(this); |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1159 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1160 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1161 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1162 |
<xsl:text> this.offset = 0; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1163 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1164 |
<xsl:text> this.relativeness = undefined; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1165 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1166 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1167 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1168 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1169 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1170 |
<xsl:text> sub(new_offset=0, relativeness, container_id){ |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1171 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1172 |
<xsl:text> this.offset = new_offset; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1173 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1174 |
<xsl:text> this.relativeness = relativeness; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1175 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1176 |
<xsl:text> this.container_id = container_id ; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1177 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1178 |
<xsl:text> /* add this's subsribers */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1179 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1180 |
<xsl:text> if(!this.unsubscribable) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1181 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1182 |
<xsl:text> for(let i = 0; i < this.indexes.length; i++) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1183 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1184 |
<xsl:text> let index = this.get_variable_index(i); |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
1185 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1186 |
<xsl:text> if(index == undefined) continue; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1187 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1188 |
<xsl:text> subscribers(index).add(this); |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1189 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1190 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1191 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1192 |
<xsl:text> need_cache_apply.push(this); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1193 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1194 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1195 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1196 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1197 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1198 |
<xsl:text> apply_cache() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1199 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1200 |
<xsl:text> if(!this.unsubscribable) for(let index in this.indexes){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1201 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1202 |
<xsl:text> /* dispatch current cache in newly opened page widgets */ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1203 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1204 |
<xsl:text> let realindex = this.get_variable_index(index); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1205 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1206 |
<xsl:text> if(realindex == undefined) continue; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1207 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1208 |
<xsl:text> let cached_val = cache[realindex]; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1209 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1210 |
<xsl:text> if(cached_val != undefined) |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1211 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1212 |
<xsl:text> this._dispatch(cached_val, cached_val, index); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1213 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1214 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1215 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1216 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1217 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1218 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1219 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1220 |
<xsl:text> get_variable_index(varnum) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1221 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1222 |
<xsl:text> let index = this.indexes[varnum]; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1223 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1224 |
<xsl:text> if(typeof(index) == "string"){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1225 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1226 |
<xsl:text> index = page_local_index(index, this.container_id); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1227 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1228 |
<xsl:text> } else { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1229 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1230 |
<xsl:text> if(this.relativeness[varnum]){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1231 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1232 |
<xsl:text> index += this.offset; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1233 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1234 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1235 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1236 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1237 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1238 |
<xsl:text> return index; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1239 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1240 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1241 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1242 |
<xsl:text> change_hmi_value(index, opstr) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1243 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1244 |
<xsl:text> let realindex = this.get_variable_index(index); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1245 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1246 |
<xsl:text> if(realindex == undefined) return undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1247 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1248 |
<xsl:text> return change_hmi_value(realindex, opstr); |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1249 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1250 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1251 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1252 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1253 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1254 |
<xsl:text> apply_hmi_value(index, new_val) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1255 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1256 |
<xsl:text> let realindex = this.get_variable_index(index); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1257 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1258 |
<xsl:text> if(realindex == undefined) return undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1259 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1260 |
<xsl:text> return apply_hmi_value(realindex, new_val); |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1261 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1262 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1263 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1264 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1265 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1266 |
<xsl:text> new_hmi_value(index, value, oldval) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1267 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1268 |
<xsl:text> // TODO avoid searching, store index at sub() |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1269 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1270 |
<xsl:text> for(let i = 0; i < this.indexes.length; i++) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1271 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1272 |
<xsl:text> let refindex = this.get_variable_index(i); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1273 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1274 |
<xsl:text> if(refindex == undefined) continue; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1275 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1276 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1277 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1278 |
<xsl:text> if(index == refindex) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1279 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1280 |
<xsl:text> this._dispatch(value, oldval, i); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1281 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1282 |
<xsl:text> break; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1283 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1284 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1285 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1286 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1287 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1288 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1289 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1290 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1291 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1292 |
<xsl:text> _dispatch(value, oldval, varnum) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1293 |
</xsl:text> |
3025
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1294 |
<xsl:text> let dispatch = this.dispatch; |
48e7e336c052
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant
parents:
3024
diff
changeset
|
1295 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1296 |
<xsl:text> if(dispatch != undefined){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1297 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1298 |
<xsl:text> try { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1299 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1300 |
<xsl:text> dispatch.call(this, value, oldval, varnum); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1301 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1302 |
<xsl:text> } catch(err) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1303 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1304 |
<xsl:text> console.log(err); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1305 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1306 |
<xsl:text> } |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1307 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1308 |
<xsl:text> } |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1309 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1310 |
<xsl:text> } |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1311 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1312 |
<xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1313 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1314 |
<xsl:text> _animate(){ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1315 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1316 |
<xsl:text> this.animate(); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1317 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1318 |
<xsl:text> this.pending_animate = false; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1319 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1320 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1321 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1322 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1323 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1324 |
<xsl:text> request_animate(){ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1325 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1326 |
<xsl:text> if(!this.pending_animate){ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1327 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1328 |
<xsl:text> pending_widget_animates.push(this); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1329 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1330 |
<xsl:text> this.pending_animate = true; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1331 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1332 |
<xsl:text> requestHMIAnimation(); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1333 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1334 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1335 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1336 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1337 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1338 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1339 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1340 |
<xsl:text>} |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1341 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1342 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1343 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1344 |
</xsl:template> |
3008
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
1345 |
<declarations:hmi-classes/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
1346 |
<xsl:template match="declarations:hmi-classes"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1347 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1348 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1349 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1350 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1351 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1352 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1353 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1354 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1355 |
<xsl:variable name="used_widget_types" select="func:unique_types($parsed_widgets/widget)"/> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1356 |
<xsl:apply-templates mode="widget_class" select="$used_widget_types"/> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1357 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1358 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1359 |
</xsl:template> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1360 |
<xsl:template mode="widget_class" match="widget"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1361 |
<xsl:text>class </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1362 |
<xsl:value-of select="@type"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1363 |
<xsl:text>Widget extends Widget{ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1364 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1365 |
<xsl:text> /* empty class, as </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1366 |
<xsl:value-of select="@type"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1367 |
<xsl:text> widget didn't provide any */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1368 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1369 |
<xsl:text>} |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1370 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1371 |
</xsl:template> |
3024 | 1372 |
<xsl:variable name="excluded_types" select="str:split('Page Lang VarInit')"/> |
1373 |
<xsl:variable name="included_ids" select="$parsed_widgets/widget[not(@type = $excluded_types)]/@id"/> |
|
3008
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
1374 |
<declarations:hmi-elements/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
1375 |
<xsl:template match="declarations:hmi-elements"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1376 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1377 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1378 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1379 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1380 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1381 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1382 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1383 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
1384 |
<xsl:text>var hmi_widgets = { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
1385 |
</xsl:text> |
3024 | 1386 |
<xsl:apply-templates mode="hmi_widgets" select="$hmi_elements[@id = $included_ids]"/> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
1387 |
<xsl:text>} |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
1388 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1389 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
1390 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
1391 |
</xsl:template> |
2808
dc78ffa5253d
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant
parents:
2807
diff
changeset
|
1392 |
<xsl:template name="defs_by_labels"> |
dc78ffa5253d
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant
parents:
2807
diff
changeset
|
1393 |
<xsl:param name="labels" select="''"/> |
dc78ffa5253d
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant
parents:
2807
diff
changeset
|
1394 |
<xsl:param name="mandatory" select="'yes'"/> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1395 |
<xsl:param name="subelements" select="/.."/> |
2800
68cee1366b9c
SVGHMI: dispatching data to minimalist "Display" text widget.
Edouard Tisserant
parents:
2799
diff
changeset
|
1396 |
<xsl:param name="hmi_element"/> |
2834
6ac6a9dff594
SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime.
Edouard Tisserant
parents:
2833
diff
changeset
|
1397 |
<xsl:variable name="widget_type" select="@type"/> |
2808
dc78ffa5253d
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant
parents:
2807
diff
changeset
|
1398 |
<xsl:for-each select="str:split($labels)"> |
2807 | 1399 |
<xsl:variable name="name" select="."/> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1400 |
<xsl:variable name="elt" select="$result_svg_ns//*[@id = $hmi_element/@id]//*[@inkscape:label=$name][1]"/> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1401 |
<xsl:choose> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1402 |
<xsl:when test="not($elt/@id)"> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1403 |
<xsl:if test="$mandatory='yes'"> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1404 |
<xsl:message terminate="yes"> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1405 |
<xsl:value-of select="$widget_type"/> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1406 |
<xsl:text> widget must have a </xsl:text> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1407 |
<xsl:value-of select="$name"/> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1408 |
<xsl:text> element</xsl:text> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1409 |
</xsl:message> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1410 |
</xsl:if> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1411 |
</xsl:when> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1412 |
<xsl:otherwise> |
2852
f7349ca820c9
SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation.
Edouard Tisserant
parents:
2851
diff
changeset
|
1413 |
<xsl:text> </xsl:text> |
2807 | 1414 |
<xsl:value-of select="$name"/> |
2847
dffade5c83d3
SVGHMI: fix some JS + add generation of detachable elements, to be continued
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2846
diff
changeset
|
1415 |
<xsl:text>_elt: id("</xsl:text> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1416 |
<xsl:value-of select="$elt/@id"/> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1417 |
<xsl:text>"), |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1418 |
</xsl:text> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1419 |
<xsl:if test="$subelements"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1420 |
<xsl:text> </xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1421 |
<xsl:value-of select="$name"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1422 |
<xsl:text>_sub: { |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1423 |
</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1424 |
<xsl:for-each select="str:split($subelements)"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1425 |
<xsl:variable name="subname" select="."/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1426 |
<xsl:variable name="subelt" select="$elt/*[@inkscape:label=$subname][1]"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1427 |
<xsl:choose> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1428 |
<xsl:when test="not($subelt/@id)"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1429 |
<xsl:if test="$mandatory='yes'"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1430 |
<xsl:message terminate="yes"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1431 |
<xsl:value-of select="$widget_type"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1432 |
<xsl:text> widget must have a </xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1433 |
<xsl:value-of select="$name"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1434 |
<xsl:text>/</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1435 |
<xsl:value-of select="$subname"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1436 |
<xsl:text> element</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1437 |
</xsl:message> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1438 |
</xsl:if> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1439 |
<xsl:text> /* missing </xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1440 |
<xsl:value-of select="$name"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1441 |
<xsl:text>/</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1442 |
<xsl:value-of select="$subname"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1443 |
<xsl:text> element */ |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1444 |
</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1445 |
</xsl:when> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1446 |
<xsl:otherwise> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1447 |
<xsl:text> "</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1448 |
<xsl:value-of select="$subname"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1449 |
<xsl:text>": id("</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1450 |
<xsl:value-of select="$subelt/@id"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1451 |
<xsl:text>")</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1452 |
<xsl:if test="position()!=last()"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1453 |
<xsl:text>,</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1454 |
</xsl:if> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1455 |
<xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1456 |
</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1457 |
</xsl:otherwise> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1458 |
</xsl:choose> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1459 |
</xsl:for-each> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1460 |
<xsl:text> }, |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1461 |
</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
1462 |
</xsl:if> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1463 |
</xsl:otherwise> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
1464 |
</xsl:choose> |
2807 | 1465 |
</xsl:for-each> |
2808
dc78ffa5253d
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant
parents:
2807
diff
changeset
|
1466 |
</xsl:template> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1467 |
<func:function name="func:escape_quotes"> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1468 |
<xsl:param name="txt"/> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1469 |
<xsl:choose> |
3024 | 1470 |
<xsl:when test="contains($txt,'"')"> |
1471 |
<func:result select="concat(substring-before($txt,'"'),'\"',func:escape_quotes(substring-after($txt,'"')))"/> |
|
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1472 |
</xsl:when> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1473 |
<xsl:otherwise> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1474 |
<func:result select="$txt"/> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1475 |
</xsl:otherwise> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1476 |
</xsl:choose> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1477 |
</func:function> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1478 |
<xsl:template mode="widget_class" match="widget[@type='Back']"> |
2961
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1479 |
<xsl:text>class BackWidget extends Widget{ |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1480 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1481 |
<xsl:text> on_click(evt) { |
2902 | 1482 |
</xsl:text> |
1483 |
<xsl:text> if(jump_history.length > 1){ |
|
1484 |
</xsl:text> |
|
1485 |
<xsl:text> jump_history.pop(); |
|
1486 |
</xsl:text> |
|
1487 |
<xsl:text> let [page_name, index] = jump_history.pop(); |
|
1488 |
</xsl:text> |
|
1489 |
<xsl:text> switch_page(page_name, index); |
|
1490 |
</xsl:text> |
|
1491 |
<xsl:text> } |
|
1492 |
</xsl:text> |
|
2961
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1493 |
<xsl:text> } |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1494 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1495 |
<xsl:text> init() { |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1496 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1497 |
<xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1498 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1499 |
<xsl:text> } |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1500 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1501 |
<xsl:text>} |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1502 |
</xsl:text> |
00825316ed00
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2955
diff
changeset
|
1503 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1504 |
<xsl:template mode="widget_class" match="widget[@type='Button']"> |
3024 | 1505 |
<xsl:text>class ButtonWidget extends Widget{ |
1506 |
</xsl:text> |
|
1507 |
<xsl:text> frequency = 5; |
|
1508 |
</xsl:text> |
|
1509 |
<xsl:text> state = 0; |
|
1510 |
</xsl:text> |
|
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1511 |
<xsl:text> plc_lock = false; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1512 |
</xsl:text> |
3024 | 1513 |
<xsl:text> active_style = undefined; |
1514 |
</xsl:text> |
|
1515 |
<xsl:text> inactive_style = undefined; |
|
1516 |
</xsl:text> |
|
1517 |
<xsl:text> |
|
1518 |
</xsl:text> |
|
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1519 |
<xsl:text> dispatch(value) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1520 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1521 |
<xsl:text> if(value){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1522 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1523 |
<xsl:text> this.button_release(); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1524 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1525 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1526 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1527 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1528 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1529 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1530 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1531 |
<xsl:text> on_mouse_down(evt) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1532 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1533 |
<xsl:text> if (this.active_style && this.inactive_style) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1534 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1535 |
<xsl:text> this.active_elt.setAttribute("style", this.active_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1536 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1537 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1538 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1539 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1540 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1541 |
<xsl:text> this.apply_hmi_value(0, 1); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1542 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1543 |
<xsl:text> this.plc_lock = false; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1544 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1545 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1546 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1547 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1548 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1549 |
<xsl:text> on_mouse_up(evt) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1550 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1551 |
<xsl:text> this.button_release(); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1552 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1553 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1554 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1555 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1556 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1557 |
<xsl:text> button_release(){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1558 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1559 |
<xsl:text> if(!this.plc_lock){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1560 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1561 |
<xsl:text> this.plc_lock = true; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1562 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1563 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1564 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1565 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1566 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1567 |
<xsl:text> if (this.active_style && this.inactive_style) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1568 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1569 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1570 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1571 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1572 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1573 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1574 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1575 |
<xsl:text> this.apply_hmi_value(0, 0); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1576 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1577 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1578 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1579 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1580 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1581 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1582 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1583 |
<xsl:text> init() { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1584 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1585 |
<xsl:text> this.active_style = this.active_elt ? this.active_elt.style.cssText : undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1586 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1587 |
<xsl:text> this.inactive_style = this.inactive_elt ? this.inactive_elt.style.cssText : undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1588 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1589 |
<xsl:text> |
3024 | 1590 |
</xsl:text> |
1591 |
<xsl:text> if (this.active_style && this.inactive_style) { |
|
1592 |
</xsl:text> |
|
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1593 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1594 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1595 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
1596 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
1597 |
<xsl:text> } |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
1598 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1599 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1600 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1601 |
<xsl:text> this.element.setAttribute("onmousedown", "hmi_widgets["+this.element_id+"].on_mouse_down(evt)"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1602 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1603 |
<xsl:text> this.element.setAttribute("onmouseup", "hmi_widgets["+this.element_id+"].on_mouse_up(evt)"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1604 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
1605 |
<xsl:text> } |
3024 | 1606 |
</xsl:text> |
1607 |
<xsl:text>} |
|
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1608 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1609 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1610 |
<xsl:template mode="widget_defs" match="widget[@type='Button']"> |
2976
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1611 |
<xsl:param name="hmi_element"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1612 |
<xsl:call-template name="defs_by_labels"> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1613 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1614 |
<xsl:with-param name="labels"> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1615 |
<xsl:text>active inactive</xsl:text> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1616 |
</xsl:with-param> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1617 |
<xsl:with-param name="mandatory" select="'no'"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
1618 |
</xsl:call-template> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1619 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1620 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1621 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1622 |
<xsl:template mode="widget_class" match="widget[@type='CircularBar']"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1623 |
<xsl:text>class CircularBarWidget extends Widget{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1624 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1625 |
<xsl:text> frequency = 10; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1626 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1627 |
<xsl:text> range = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1628 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1629 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1630 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1631 |
<xsl:text> dispatch(value) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1632 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1633 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1634 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1635 |
<xsl:text> this.value_elt.textContent = String(value); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1636 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1637 |
<xsl:text> let [min,max,start,end] = this.range; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1638 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1639 |
<xsl:text> let [cx,cy] = this.center; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1640 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1641 |
<xsl:text> let [rx,ry] = this.proportions; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1642 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1643 |
<xsl:text> let tip = start + (end-start)*Number(value)/(max-min); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1644 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1645 |
<xsl:text> let size = 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1646 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1647 |
<xsl:text> if (tip-start > Math.PI) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1648 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1649 |
<xsl:text> size = 1; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1650 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1651 |
<xsl:text> } else { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1652 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1653 |
<xsl:text> size = 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1654 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1655 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1656 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1657 |
<xsl:text> this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+" A "+rx+","+ry+" 0 "+size+" 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip))); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1658 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1659 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1660 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1661 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1662 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1663 |
<xsl:text> init() { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1664 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1665 |
<xsl:text> let start = Number(this.path_elt.getAttribute('sodipodi:start')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1666 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1667 |
<xsl:text> let end = Number(this.path_elt.getAttribute('sodipodi:end')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1668 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1669 |
<xsl:text> let cx = Number(this.path_elt.getAttribute('sodipodi:cx')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1670 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1671 |
<xsl:text> let cy = Number(this.path_elt.getAttribute('sodipodi:cy')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1672 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1673 |
<xsl:text> let rx = Number(this.path_elt.getAttribute('sodipodi:rx')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1674 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1675 |
<xsl:text> let ry = Number(this.path_elt.getAttribute('sodipodi:ry')); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1676 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1677 |
<xsl:text> if (ry == 0) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1678 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1679 |
<xsl:text> ry = rx; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1680 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1681 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1682 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1683 |
<xsl:text> if (start > end) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1684 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1685 |
<xsl:text> end = end + 2*Math.PI; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1686 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1687 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1688 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1689 |
<xsl:text> let min = this.min_elt ? |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1690 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1691 |
<xsl:text> Number(this.min_elt.textContent) : |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1692 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1693 |
<xsl:text> this.args.length >= 1 ? this.args[0] : 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1694 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1695 |
<xsl:text> let max = this.max_elt ? |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1696 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1697 |
<xsl:text> Number(this.max_elt.textContent) : |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1698 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1699 |
<xsl:text> this.args.length >= 2 ? this.args[1] : 100; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1700 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1701 |
<xsl:text> this.range = [min, max, start, end]; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1702 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1703 |
<xsl:text> this.center = [cx, cy]; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1704 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1705 |
<xsl:text> this.proportions = [rx, ry]; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1706 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1707 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1708 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1709 |
<xsl:text>} |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1710 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1711 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1712 |
<xsl:template mode="widget_defs" match="widget[@type='CircularBar']"> |
2944 | 1713 |
<xsl:param name="hmi_element"/> |
1714 |
<xsl:call-template name="defs_by_labels"> |
|
1715 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
1716 |
<xsl:with-param name="labels"> |
|
1717 |
<xsl:text>path</xsl:text> |
|
1718 |
</xsl:with-param> |
|
1719 |
</xsl:call-template> |
|
1720 |
<xsl:call-template name="defs_by_labels"> |
|
1721 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
1722 |
<xsl:with-param name="labels"> |
|
1723 |
<xsl:text>value min max</xsl:text> |
|
1724 |
</xsl:with-param> |
|
1725 |
<xsl:with-param name="mandatory" select="'no'"/> |
|
1726 |
</xsl:call-template> |
|
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1727 |
<xsl:text> |
2944 | 1728 |
</xsl:text> |
1729 |
</xsl:template> |
|
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
1730 |
<xsl:template mode="widget_class" match="widget[@type='CircularSlider']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1731 |
<xsl:text>class CircularSliderWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1732 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1733 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1734 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1735 |
<xsl:text> range = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1736 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1737 |
<xsl:text> circle = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1738 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1739 |
<xsl:text> handle_pos = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1740 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1741 |
<xsl:text> svg_dist = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1742 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1743 |
<xsl:text> drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1744 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1745 |
<xsl:text> enTimer = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1746 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1747 |
<xsl:text> last_drag = false; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1748 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1749 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1750 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1751 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1752 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1753 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1754 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1755 |
<xsl:text> this.value_elt.textContent = String(value); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1756 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1757 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1758 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1759 |
<xsl:text> this.update_DOM(value, this.handle_elt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1760 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1761 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1762 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1763 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1764 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1765 |
<xsl:text> update_DOM(value, elt){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1766 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1767 |
<xsl:text> let [min,max,totalDistance] = this.range; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1768 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1769 |
<xsl:text> let length = Math.max(0,Math.min((totalDistance),(Number(value)-min)/(max-min)*(totalDistance))); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1770 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1771 |
<xsl:text> let tip = this.range_elt.getPointAtLength(length); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1772 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1773 |
<xsl:text> elt.setAttribute('transform',"translate("+(tip.x-this.handle_pos.x)+","+(tip.y-this.handle_pos.y)+")"); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1774 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1775 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1776 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1777 |
<xsl:text> if(this.setpoint_elt != undefined){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1778 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1779 |
<xsl:text> if(this.last_drag!= this.drag){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1780 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1781 |
<xsl:text> if(this.drag){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1782 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1783 |
<xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1784 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1785 |
<xsl:text> }else{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1786 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1787 |
<xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1788 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1789 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1790 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1791 |
<xsl:text> this.last_drag = this.drag; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1792 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1793 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1794 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1795 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1796 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1797 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1798 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1799 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1800 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1801 |
<xsl:text> on_release(evt) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1802 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1803 |
<xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1804 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1805 |
<xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1806 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1807 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1808 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1809 |
<xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1810 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1811 |
<xsl:text> window.removeEventListener("touchend", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1812 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1813 |
<xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1814 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1815 |
<xsl:text> if(this.drag){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1816 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1817 |
<xsl:text> this.drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1818 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1819 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1820 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1821 |
<xsl:text> this.update_position(evt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1822 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1823 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1824 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1825 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1826 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1827 |
<xsl:text> on_drag(evt){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1828 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1829 |
<xsl:text> if(this.enTimer && this.drag){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1830 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1831 |
<xsl:text> this.update_position(evt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1832 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1833 |
<xsl:text> //reset timer |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1834 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1835 |
<xsl:text> this.enTimer = false; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1836 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1837 |
<xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1838 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1839 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1840 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1841 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1842 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1843 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1844 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1845 |
<xsl:text> update_position(evt){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1846 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1847 |
<xsl:text> if(this.drag && this.enTimer){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1848 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1849 |
<xsl:text> var svg_dist = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1850 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1851 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1852 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1853 |
<xsl:text> //calculate center of widget in html |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1854 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1855 |
<xsl:text> // --TODO maybe it would be better to bind this part to window change size event ??? |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1856 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1857 |
<xsl:text> let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1858 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1859 |
<xsl:text> let [cX, cY,fiStart,fiEnd,minMax,x1,y1,width,height] = this.circle; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1860 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1861 |
<xsl:text> let htmlCirc = this.range_elt.getBoundingClientRect(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1862 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1863 |
<xsl:text> let cxHtml = ((htmlCirc.right-htmlCirc.left)/(width)*(cX-x1))+htmlCirc.left; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1864 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1865 |
<xsl:text> let cyHtml = ((htmlCirc.bottom-htmlCirc.top)/(height)*(cY-y1))+htmlCirc.top; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1866 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1867 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1868 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1869 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1870 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1871 |
<xsl:text> //get mouse coordinates |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1872 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1873 |
<xsl:text> let mouseX = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1874 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1875 |
<xsl:text> let mouseY = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1876 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1877 |
<xsl:text> if (evt.type.startsWith("touch")){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1878 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1879 |
<xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1880 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1881 |
<xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1882 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1883 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1884 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1885 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1886 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1887 |
<xsl:text> mouseX = evt.pageX; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1888 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1889 |
<xsl:text> mouseY = evt.pageY; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1890 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1891 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1892 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1893 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1894 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1895 |
<xsl:text> //calculate angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1896 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1897 |
<xsl:text> let fi = Math.atan2(cyHtml-mouseY, mouseX-cxHtml); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1898 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1899 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1900 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1901 |
<xsl:text> // transform from 0 to 2PI |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1902 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1903 |
<xsl:text> if (fi > 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1904 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1905 |
<xsl:text> fi = 2*Math.PI-fi; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1906 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1907 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1908 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1909 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1910 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1911 |
<xsl:text> fi = -fi; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1912 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1913 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1914 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1915 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1916 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1917 |
<xsl:text> //offset it to 0 |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1918 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1919 |
<xsl:text> fi = fi - fiStart; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1920 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1921 |
<xsl:text> if (fi < 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1922 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1923 |
<xsl:text> fi = fi + 2*Math.PI; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1924 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1925 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1926 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1927 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1928 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1929 |
<xsl:text> //get handle distance from mouse position |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1930 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1931 |
<xsl:text> if(fi<fiEnd){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1932 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1933 |
<xsl:text> this.svg_dist=(fi)/(fiEnd)*(this.range[1]-this.range[0]); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1934 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1935 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1936 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1937 |
<xsl:text> else if(fiEnd<fi && fi<fiEnd+minMax){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1938 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1939 |
<xsl:text> this.svg_dist = this.range[1]; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1940 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1941 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1942 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1943 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1944 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1945 |
<xsl:text> this.svg_dist = this.range[0]; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1946 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1947 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1948 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1949 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1950 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1951 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1952 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1953 |
<xsl:text> this.apply_hmi_value(0, Math.ceil(this.svg_dist)); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1954 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1955 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1956 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1957 |
<xsl:text> // update ghost cursor |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1958 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1959 |
<xsl:text> if(this.setpoint_elt != undefined){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1960 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1961 |
<xsl:text> this.request_animate(); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1962 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1963 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1964 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1965 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1966 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1967 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1968 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1969 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1970 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1971 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1972 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1973 |
<xsl:text> animate(){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1974 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1975 |
<xsl:text> this.update_DOM(this.svg_dist, this.setpoint_elt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1976 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1977 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1978 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1979 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1980 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1981 |
<xsl:text> on_select(evt){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1982 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1983 |
<xsl:text> this.drag = true; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1984 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1985 |
<xsl:text> this.enTimer = true; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1986 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1987 |
<xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1988 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1989 |
<xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1990 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1991 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1992 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1993 |
<xsl:text> window.addEventListener("mouseup", this.bound_on_release, true) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1994 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1995 |
<xsl:text> window.addEventListener("touchend", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1996 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1997 |
<xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
1998 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
1999 |
<xsl:text> this.update_position(evt); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2000 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2001 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2002 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2003 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2004 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2005 |
<xsl:text> init() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2006 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2007 |
<xsl:text> //get min max |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2008 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2009 |
<xsl:text> let min = this.min_elt ? |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2010 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2011 |
<xsl:text> Number(this.min_elt.textContent) : |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2012 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2013 |
<xsl:text> this.args.length >= 1 ? this.args[0] : 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2014 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2015 |
<xsl:text> let max = this.max_elt ? |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2016 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2017 |
<xsl:text> Number(this.max_elt.textContent) : |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2018 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2019 |
<xsl:text> this.args.length >= 2 ? this.args[1] : 100; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2020 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2021 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2022 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2023 |
<xsl:text> //fiStart ==> offset |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2024 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2025 |
<xsl:text> let fiStart = Number(this.range_elt.getAttribute('sodipodi:start')); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2026 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2027 |
<xsl:text> let fiEnd = Number(this.range_elt.getAttribute('sodipodi:end')); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2028 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2029 |
<xsl:text> fiEnd = fiEnd - fiStart; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2030 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2031 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2032 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2033 |
<xsl:text> //fiEnd ==> size of angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2034 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2035 |
<xsl:text> if (fiEnd < 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2036 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2037 |
<xsl:text> fiEnd = 2*Math.PI + fiEnd; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2038 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2039 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2040 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2041 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2042 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2043 |
<xsl:text> //min max barrier angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2044 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2045 |
<xsl:text> let minMax = (2*Math.PI - fiEnd)/2; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2046 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2047 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2048 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2049 |
<xsl:text> //get parameters from svg |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2050 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2051 |
<xsl:text> let cX = Number(this.range_elt.getAttribute('sodipodi:cx')); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2052 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2053 |
<xsl:text> let cY = Number(this.range_elt.getAttribute('sodipodi:cy')); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2054 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2055 |
<xsl:text> this.range_elt.style.strokeMiterlimit="0"; //eliminates some weird border around html object |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2056 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2057 |
<xsl:text> this.range = [min, max,this.range_elt.getTotalLength()]; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2058 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2059 |
<xsl:text> let cPos = this.range_elt.getBBox(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2060 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2061 |
<xsl:text> this.handle_pos = this.range_elt.getPointAtLength(0); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2062 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2063 |
<xsl:text> this.circle = [cX, cY,fiStart,fiEnd,minMax,cPos.x,cPos.y,cPos.width,cPos.height]; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2064 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2065 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2066 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2067 |
<xsl:text> //bind functions |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2068 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2069 |
<xsl:text> this.bound_on_select = this.on_select.bind(this); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2070 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2071 |
<xsl:text> this.bound_on_release = this.on_release.bind(this); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2072 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2073 |
<xsl:text> this.on_bound_drag = this.on_drag.bind(this); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2074 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2075 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2076 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2077 |
<xsl:text> //init events |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2078 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2079 |
<xsl:text> this.element.addEventListener("mousedown", this.bound_on_select); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2080 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2081 |
<xsl:text> this.element.addEventListener("touchstart", this.bound_on_select); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2082 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2083 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2084 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2085 |
<xsl:text> if(this.setpoint_elt != undefined){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2086 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2087 |
<xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style"); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2088 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2089 |
<xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2090 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2091 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2092 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2093 |
<xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2094 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2095 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2096 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2097 |
<xsl:text> window.addEventListener("touchmove", hmi_widgets[this.element_id].update_position.bind(this)); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2098 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2099 |
<xsl:text> window.addEventListener("mousemove", hmi_widgets[this.element_id].update_position.bind(this)); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2100 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2101 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2102 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2103 |
<xsl:text> window.addEventListener("mouseup", hmi_widgets[this.element_id].on_release.bind(this)) |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2104 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2105 |
<xsl:text> window.addEventListener("touchend", hmi_widgets[this.element_id].on_release.bind(this)); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2106 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2107 |
<xsl:text> window.addEventListener("touchcancel", hmi_widgets[this.element_id].on_release.bind(this)); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2108 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2109 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2110 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2111 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2112 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2113 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2114 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2115 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
2116 |
<xsl:template mode="widget_defs" match="widget[@type='CircularSlider']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2117 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2118 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2119 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2120 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2121 |
<xsl:text>handle range</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2122 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2123 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2124 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2125 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2126 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2127 |
<xsl:text>value min max</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2128 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2129 |
<xsl:with-param name="mandatory" select="'no'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2130 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2131 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2132 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2133 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
2134 |
<xsl:template mode="widget_class" match="widget[@type='Display']"> |
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2135 |
<xsl:text>class DisplayWidget extends Widget{ |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2136 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2137 |
<xsl:text> frequency = 5; |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2138 |
</xsl:text> |
3008
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2139 |
<xsl:text> dispatch(value, oldval, index) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2140 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2141 |
<xsl:text> this.fields[index] = value; |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2142 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2143 |
<xsl:text> this.element.textContent = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' '); |
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2144 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2145 |
<xsl:text> } |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2146 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2147 |
<xsl:text>} |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2148 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2149 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
2150 |
<xsl:template mode="widget_defs" match="widget[@type='Display']"> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
2151 |
<xsl:param name="hmi_element"/> |
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2152 |
<xsl:if test="$hmi_element[not(self::svg:text)]"> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2153 |
<xsl:message terminate="yes"> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2154 |
<xsl:text>Display Widget id="</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2155 |
<xsl:value-of select="$hmi_element/@id"/> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2156 |
<xsl:text>" is not a svg::text element</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2157 |
</xsl:message> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2158 |
</xsl:if> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2159 |
<xsl:variable name="field_initializer"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2160 |
<xsl:for-each select="path"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2161 |
<xsl:choose> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2162 |
<xsl:when test="@type='HMI_STRING'"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2163 |
<xsl:text>""</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2164 |
</xsl:when> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2165 |
<xsl:otherwise>0</xsl:otherwise> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2166 |
</xsl:choose> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2167 |
<xsl:if test="position()!=last()"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2168 |
<xsl:text>,</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2169 |
</xsl:if> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2170 |
</xsl:for-each> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2171 |
</xsl:variable> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2172 |
<xsl:text> fields: [</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2173 |
<xsl:value-of select="$field_initializer"/> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2174 |
<xsl:text>], |
3008
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2175 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2176 |
</xsl:template> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2177 |
<preamble:display/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2178 |
<xsl:template match="preamble:display"> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2179 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2180 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2181 |
<xsl:text>/* </xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2182 |
<xsl:value-of select="local-name()"/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2183 |
<xsl:text> */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2184 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2185 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2186 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2187 |
<xsl:text>/* https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2188 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2189 |
<xsl:text>/* global window, exports, define */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2190 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2191 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2192 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2193 |
<xsl:text>!function() { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2194 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2195 |
<xsl:text> 'use strict' |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2196 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2197 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2198 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2199 |
<xsl:text> var re = { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2200 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2201 |
<xsl:text> not_string: /[^s]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2202 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2203 |
<xsl:text> not_bool: /[^t]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2204 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2205 |
<xsl:text> not_type: /[^T]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2206 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2207 |
<xsl:text> not_primitive: /[^v]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2208 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2209 |
<xsl:text> number: /[diefg]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2210 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2211 |
<xsl:text> numeric_arg: /[bcdiefguxX]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2212 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2213 |
<xsl:text> json: /[j]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2214 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2215 |
<xsl:text> not_json: /[^j]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2216 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2217 |
<xsl:text> text: /^[^%]+/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2218 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2219 |
<xsl:text> modulo: /^%{2}/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2220 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2221 |
<xsl:text> placeholder: /^%(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2222 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2223 |
<xsl:text> key: /^([a-z_][a-z_\d]*)/i, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2224 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2225 |
<xsl:text> key_access: /^\.([a-z_][a-z_\d]*)/i, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2226 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2227 |
<xsl:text> index_access: /^\[(\d+)\]/, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2228 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2229 |
<xsl:text> sign: /^[+-]/ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2230 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2231 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2232 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2233 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2234 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2235 |
<xsl:text> function sprintf(key) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2236 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2237 |
<xsl:text> // </xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2238 |
<arguments/> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2239 |
<xsl:text> is not an array, but should be fine for this call |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2240 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2241 |
<xsl:text> return sprintf_format(sprintf_parse(key), arguments) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2242 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2243 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2244 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2245 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2246 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2247 |
<xsl:text> function vsprintf(fmt, argv) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2248 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2249 |
<xsl:text> return sprintf.apply(null, [fmt].concat(argv || [])) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2250 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2251 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2252 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2253 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2254 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2255 |
<xsl:text> function sprintf_format(parse_tree, argv) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2256 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2257 |
<xsl:text> var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2258 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2259 |
<xsl:text> for (i = 0; i < tree_length; i++) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2260 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2261 |
<xsl:text> if (typeof parse_tree[i] === 'string') { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2262 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2263 |
<xsl:text> output += parse_tree[i] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2264 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2265 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2266 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2267 |
<xsl:text> else if (typeof parse_tree[i] === 'object') { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2268 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2269 |
<xsl:text> ph = parse_tree[i] // convenience purposes only |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2270 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2271 |
<xsl:text> if (ph.keys) { // keyword argument |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2272 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2273 |
<xsl:text> arg = argv[cursor] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2274 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2275 |
<xsl:text> for (k = 0; k < ph.keys.length; k++) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2276 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2277 |
<xsl:text> if (arg == undefined) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2278 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2279 |
<xsl:text> throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k-1])) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2280 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2281 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2282 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2283 |
<xsl:text> arg = arg[ph.keys[k]] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2284 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2285 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2286 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2287 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2288 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2289 |
<xsl:text> else if (ph.param_no) { // positional argument (explicit) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2290 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2291 |
<xsl:text> arg = argv[ph.param_no] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2292 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2293 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2294 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2295 |
<xsl:text> else { // positional argument (implicit) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2296 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2297 |
<xsl:text> arg = argv[cursor++] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2298 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2299 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2300 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2301 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2302 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2303 |
<xsl:text> if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2304 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2305 |
<xsl:text> arg = arg() |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2306 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2307 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2308 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2309 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2310 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2311 |
<xsl:text> if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2312 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2313 |
<xsl:text> throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2314 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2315 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2316 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2317 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2318 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2319 |
<xsl:text> if (re.number.test(ph.type)) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2320 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2321 |
<xsl:text> is_positive = arg >= 0 |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2322 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2323 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2324 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2325 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2326 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2327 |
<xsl:text> switch (ph.type) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2328 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2329 |
<xsl:text> case 'b': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2330 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2331 |
<xsl:text> arg = parseInt(arg, 10).toString(2) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2332 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2333 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2334 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2335 |
<xsl:text> case 'c': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2336 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2337 |
<xsl:text> arg = String.fromCharCode(parseInt(arg, 10)) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2338 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2339 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2340 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2341 |
<xsl:text> case 'd': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2342 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2343 |
<xsl:text> case 'i': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2344 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2345 |
<xsl:text> arg = parseInt(arg, 10) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2346 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2347 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2348 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2349 |
<xsl:text> case 'j': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2350 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2351 |
<xsl:text> arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2352 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2353 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2354 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2355 |
<xsl:text> case 'e': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2356 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2357 |
<xsl:text> arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2358 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2359 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2360 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2361 |
<xsl:text> case 'f': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2362 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2363 |
<xsl:text> arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2364 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2365 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2366 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2367 |
<xsl:text> case 'g': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2368 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2369 |
<xsl:text> arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2370 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2371 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2372 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2373 |
<xsl:text> case 'o': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2374 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2375 |
<xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(8) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2376 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2377 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2378 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2379 |
<xsl:text> case 's': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2380 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2381 |
<xsl:text> arg = String(arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2382 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2383 |
<xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2384 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2385 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2386 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2387 |
<xsl:text> case 't': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2388 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2389 |
<xsl:text> arg = String(!!arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2390 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2391 |
<xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2392 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2393 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2394 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2395 |
<xsl:text> case 'T': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2396 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2397 |
<xsl:text> arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2398 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2399 |
<xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2400 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2401 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2402 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2403 |
<xsl:text> case 'u': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2404 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2405 |
<xsl:text> arg = parseInt(arg, 10) >>> 0 |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2406 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2407 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2408 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2409 |
<xsl:text> case 'v': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2410 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2411 |
<xsl:text> arg = arg.valueOf() |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2412 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2413 |
<xsl:text> arg = (ph.precision ? arg.substring(0, ph.precision) : arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2414 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2415 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2416 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2417 |
<xsl:text> case 'x': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2418 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2419 |
<xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2420 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2421 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2422 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2423 |
<xsl:text> case 'X': |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2424 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2425 |
<xsl:text> arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2426 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2427 |
<xsl:text> break |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2428 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2429 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2430 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2431 |
<xsl:text> if (re.json.test(ph.type)) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2432 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2433 |
<xsl:text> output += arg |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2434 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2435 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2436 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2437 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2438 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2439 |
<xsl:text> if (re.number.test(ph.type) && (!is_positive || ph.sign)) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2440 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2441 |
<xsl:text> sign = is_positive ? '+' : '-' |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2442 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2443 |
<xsl:text> arg = arg.toString().replace(re.sign, '') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2444 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2445 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2446 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2447 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2448 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2449 |
<xsl:text> sign = '' |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2450 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2451 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2452 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2453 |
<xsl:text> pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2454 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2455 |
<xsl:text> pad_length = ph.width - (sign + arg).length |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2456 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2457 |
<xsl:text> pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2458 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2459 |
<xsl:text> output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2460 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2461 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2462 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2463 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2464 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2465 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2466 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2467 |
<xsl:text> return output |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2468 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2469 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2470 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2471 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2472 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2473 |
<xsl:text> var sprintf_cache = Object.create(null) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2474 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2475 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2476 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2477 |
<xsl:text> function sprintf_parse(fmt) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2478 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2479 |
<xsl:text> if (sprintf_cache[fmt]) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2480 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2481 |
<xsl:text> return sprintf_cache[fmt] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2482 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2483 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2484 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2485 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2486 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2487 |
<xsl:text> var _fmt = fmt, match, parse_tree = [], arg_names = 0 |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2488 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2489 |
<xsl:text> while (_fmt) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2490 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2491 |
<xsl:text> if ((match = re.text.exec(_fmt)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2492 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2493 |
<xsl:text> parse_tree.push(match[0]) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2494 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2495 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2496 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2497 |
<xsl:text> else if ((match = re.modulo.exec(_fmt)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2498 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2499 |
<xsl:text> parse_tree.push('%') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2500 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2501 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2502 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2503 |
<xsl:text> else if ((match = re.placeholder.exec(_fmt)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2504 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2505 |
<xsl:text> if (match[2]) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2506 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2507 |
<xsl:text> arg_names |= 1 |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2508 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2509 |
<xsl:text> var field_list = [], replacement_field = match[2], field_match = [] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2510 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2511 |
<xsl:text> if ((field_match = re.key.exec(replacement_field)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2512 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2513 |
<xsl:text> field_list.push(field_match[1]) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2514 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2515 |
<xsl:text> while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2516 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2517 |
<xsl:text> if ((field_match = re.key_access.exec(replacement_field)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2518 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2519 |
<xsl:text> field_list.push(field_match[1]) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2520 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2521 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2522 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2523 |
<xsl:text> else if ((field_match = re.index_access.exec(replacement_field)) !== null) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2524 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2525 |
<xsl:text> field_list.push(field_match[1]) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2526 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2527 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2528 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2529 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2530 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2531 |
<xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2532 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2533 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2534 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2535 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2536 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2537 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2538 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2539 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2540 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2541 |
<xsl:text> throw new SyntaxError('[sprintf] failed to parse named argument key') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2542 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2543 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2544 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2545 |
<xsl:text> match[2] = field_list |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2546 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2547 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2548 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2549 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2550 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2551 |
<xsl:text> arg_names |= 2 |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2552 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2553 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2554 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2555 |
<xsl:text> if (arg_names === 3) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2556 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2557 |
<xsl:text> throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2558 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2559 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2560 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2561 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2562 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2563 |
<xsl:text> parse_tree.push( |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2564 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2565 |
<xsl:text> { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2566 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2567 |
<xsl:text> placeholder: match[0], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2568 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2569 |
<xsl:text> param_no: match[1], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2570 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2571 |
<xsl:text> keys: match[2], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2572 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2573 |
<xsl:text> sign: match[3], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2574 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2575 |
<xsl:text> pad_char: match[4], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2576 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2577 |
<xsl:text> align: match[5], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2578 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2579 |
<xsl:text> width: match[6], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2580 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2581 |
<xsl:text> precision: match[7], |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2582 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2583 |
<xsl:text> type: match[8] |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2584 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2585 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2586 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2587 |
<xsl:text> ) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2588 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2589 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2590 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2591 |
<xsl:text> else { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2592 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2593 |
<xsl:text> throw new SyntaxError('[sprintf] unexpected placeholder') |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2594 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2595 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2596 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2597 |
<xsl:text> _fmt = _fmt.substring(match[0].length) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2598 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2599 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2600 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2601 |
<xsl:text> return sprintf_cache[fmt] = parse_tree |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2602 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2603 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2604 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2605 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2606 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2607 |
<xsl:text> /** |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2608 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2609 |
<xsl:text> * export to either browser or node.js |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2610 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2611 |
<xsl:text> */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2612 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2613 |
<xsl:text> /* eslint-disable quote-props */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2614 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2615 |
<xsl:text> if (typeof exports !== 'undefined') { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2616 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2617 |
<xsl:text> exports['sprintf'] = sprintf |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2618 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2619 |
<xsl:text> exports['vsprintf'] = vsprintf |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2620 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2621 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2622 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2623 |
<xsl:text> if (typeof window !== 'undefined') { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2624 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2625 |
<xsl:text> window['sprintf'] = sprintf |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2626 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2627 |
<xsl:text> window['vsprintf'] = vsprintf |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2628 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2629 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2630 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2631 |
<xsl:text> if (typeof define === 'function' && define['amd']) { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2632 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2633 |
<xsl:text> define(function() { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2634 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2635 |
<xsl:text> return { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2636 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2637 |
<xsl:text> 'sprintf': sprintf, |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2638 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2639 |
<xsl:text> 'vsprintf': vsprintf |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2640 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2641 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2642 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2643 |
<xsl:text> }) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2644 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2645 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2646 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2647 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2648 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2649 |
<xsl:text> /* eslint-enable quote-props */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2650 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2651 |
<xsl:text>}(); // eslint-disable-line |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2652 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2653 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2654 |
</xsl:text> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
2655 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
2656 |
<xsl:template mode="widget_defs" match="widget[@type='DropDown']"> |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2657 |
<xsl:param name="hmi_element"/> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2658 |
<xsl:call-template name="defs_by_labels"> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2659 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2660 |
<xsl:with-param name="labels"> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2661 |
<xsl:text>text box button</xsl:text> |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2662 |
</xsl:with-param> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2663 |
</xsl:call-template> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2664 |
<xsl:text> dispatch: function(value) { |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2665 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2666 |
<xsl:text> if(!this.opened) this.set_selection(value); |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2667 |
</xsl:text> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2668 |
<xsl:text> }, |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2669 |
</xsl:text> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2670 |
<xsl:text> init: function() { |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2671 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2672 |
<xsl:text> this.button_elt.setAttribute("onclick", "hmi_widgets['</xsl:text> |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2673 |
<xsl:value-of select="$hmi_element/@id"/> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2674 |
<xsl:text>'].on_button_click()"); |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2675 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2676 |
<xsl:text> // Save original size of rectangle |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2677 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2678 |
<xsl:text> this.box_bbox = this.box_elt.getBBox() |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2679 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2680 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2681 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2682 |
<xsl:text> // Compute margins |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2683 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2684 |
<xsl:text> text_bbox = this.text_elt.getBBox() |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2685 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2686 |
<xsl:text> lmargin = text_bbox.x - this.box_bbox.x; |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2687 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2688 |
<xsl:text> tmargin = text_bbox.y - this.box_bbox.y; |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2689 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2690 |
<xsl:text> this.margins = [lmargin, tmargin].map(x => Math.max(x,0)); |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2691 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2692 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2693 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2694 |
<xsl:text> // It is assumed that list content conforms to Array interface. |
2931
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2695 |
</xsl:text> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2696 |
<xsl:text> this.content = [ |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2697 |
</xsl:text> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2698 |
<xsl:for-each select="arg"> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2699 |
<xsl:text>"</xsl:text> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2700 |
<xsl:value-of select="@value"/> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2701 |
<xsl:text>", |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2702 |
</xsl:text> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2703 |
</xsl:for-each> |
f51c0e2e0bcb
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2930
diff
changeset
|
2704 |
<xsl:text> ]; |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2705 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2706 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2707 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2708 |
<xsl:text> // Index of first visible element in the menu, when opened |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2709 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2710 |
<xsl:text> this.menu_offset = 0; |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2711 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2712 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2713 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2714 |
<xsl:text> // How mutch to lift the menu vertically so that it does not cross bottom border |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2715 |
</xsl:text> |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2716 |
<xsl:text> this.lift = 0; |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2717 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2718 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2719 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2720 |
<xsl:text> // Event handlers cannot be object method ('this' is unknown) |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2721 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2722 |
<xsl:text> // as a workaround, handler given to addEventListener is bound in advance. |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2723 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2724 |
<xsl:text> this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this); |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2725 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2726 |
<xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2727 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2728 |
<xsl:text> this.opened = false; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2729 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2730 |
<xsl:text> }, |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2731 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2732 |
<xsl:text> // Called when a menu entry is clicked |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2733 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2734 |
<xsl:text> on_selection_click: function(selection) { |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2735 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2736 |
<xsl:text> this.close(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2737 |
</xsl:text> |
3004
705e34c6fe93
SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3003
diff
changeset
|
2738 |
<xsl:text> this.apply_hmi_value(0, selection); |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2739 |
</xsl:text> |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
2740 |
<xsl:text> }, |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
2741 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2742 |
<xsl:text> on_button_click: function() { |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2743 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2744 |
<xsl:text> this.open(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2745 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2746 |
<xsl:text> }, |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2747 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2748 |
<xsl:text> on_backward_click: function(){ |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2749 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2750 |
<xsl:text> this.scroll(false); |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2751 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2752 |
<xsl:text> }, |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2753 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2754 |
<xsl:text> on_forward_click:function(){ |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2755 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2756 |
<xsl:text> this.scroll(true); |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2757 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2758 |
<xsl:text> }, |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2759 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2760 |
<xsl:text> set_selection: function(value) { |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2761 |
</xsl:text> |
2934
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2762 |
<xsl:text> let display_str; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2763 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2764 |
<xsl:text> if(value >= 0 && value < this.content.length){ |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2765 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2766 |
<xsl:text> // if valid selection resolve content |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2767 |
</xsl:text> |
2934
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2768 |
<xsl:text> display_str = this.content[value]; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2769 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2770 |
<xsl:text> this.last_selection = value; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2771 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2772 |
<xsl:text> } else { |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2773 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2774 |
<xsl:text> // otherwise show problem |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2775 |
</xsl:text> |
2934
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2776 |
<xsl:text> display_str = "?"+String(value)+"?"; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2777 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2778 |
<xsl:text> } |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2779 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2780 |
<xsl:text> // It is assumed that first span always stays, |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2781 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2782 |
<xsl:text> // and contains selection when menu is closed |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2783 |
</xsl:text> |
2934
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
2784 |
<xsl:text> this.text_elt.firstElementChild.textContent = display_str; |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2785 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2786 |
<xsl:text> }, |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2787 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2788 |
<xsl:text> grow_text: function(up_to) { |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2789 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2790 |
<xsl:text> let count = 1; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2791 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2792 |
<xsl:text> let txt = this.text_elt; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2793 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2794 |
<xsl:text> let first = txt.firstElementChild; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2795 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2796 |
<xsl:text> // Real world (pixels) boundaries of current page |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2797 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2798 |
<xsl:text> let bounds = svg_root.getBoundingClientRect(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2799 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2800 |
<xsl:text> this.lift = 0; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2801 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2802 |
<xsl:text> while(count < up_to) { |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2803 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2804 |
<xsl:text> let next = first.cloneNode(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2805 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2806 |
<xsl:text> // relative line by line text flow instead of absolute y coordinate |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2807 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2808 |
<xsl:text> next.removeAttribute("y"); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2809 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2810 |
<xsl:text> next.setAttribute("dy", "1.1em"); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2811 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2812 |
<xsl:text> // default content to allow computing text element bbox |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2813 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2814 |
<xsl:text> next.textContent = "..."; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2815 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2816 |
<xsl:text> // append new span to text element |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2817 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2818 |
<xsl:text> txt.appendChild(next); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2819 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2820 |
<xsl:text> // now check if text extended by one row fits to page |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2821 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2822 |
<xsl:text> // FIXME : exclude margins to be more accurate on box size |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2823 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2824 |
<xsl:text> let rect = txt.getBoundingClientRect(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2825 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2826 |
<xsl:text> if(rect.bottom > bounds.bottom){ |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2827 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2828 |
<xsl:text> // in case of overflow at the bottom, lift up one row |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2829 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2830 |
<xsl:text> let backup = first.getAttribute("dy"); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2831 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2832 |
<xsl:text> // apply lift asr a dy added too first span (y attrib stays) |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2833 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2834 |
<xsl:text> first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em"); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2835 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2836 |
<xsl:text> rect = txt.getBoundingClientRect(); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2837 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2838 |
<xsl:text> if(rect.top > bounds.top){ |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2839 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2840 |
<xsl:text> this.lift += 1; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2841 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2842 |
<xsl:text> } else { |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2843 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2844 |
<xsl:text> // if it goes over the top, then backtrack |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2845 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2846 |
<xsl:text> // restore dy attribute on first span |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2847 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2848 |
<xsl:text> if(backup) |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2849 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2850 |
<xsl:text> first.setAttribute("dy", backup); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2851 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2852 |
<xsl:text> else |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2853 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2854 |
<xsl:text> first.removeAttribute("dy"); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2855 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2856 |
<xsl:text> // remove unwanted child |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2857 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2858 |
<xsl:text> txt.removeChild(next); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2859 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2860 |
<xsl:text> return count; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2861 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2862 |
<xsl:text> } |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2863 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2864 |
<xsl:text> } |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2865 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2866 |
<xsl:text> count++; |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2867 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2868 |
<xsl:text> } |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2869 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2870 |
<xsl:text> return count; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2871 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2872 |
<xsl:text> }, |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2873 |
</xsl:text> |
2933
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2874 |
<xsl:text> close_on_click_elsewhere: function(e) { |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2875 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2876 |
<xsl:text> // inhibit events not targetting spans (menu items) |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2877 |
</xsl:text> |
2933
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2878 |
<xsl:text> if(e.target.parentNode !== this.text_elt){ |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2879 |
</xsl:text> |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2880 |
<xsl:text> e.stopPropagation(); |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2881 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2882 |
<xsl:text> // close menu in case click is outside box |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2883 |
</xsl:text> |
2933
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2884 |
<xsl:text> if(e.target !== this.box_elt) |
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2885 |
</xsl:text> |
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2886 |
<xsl:text> this.close(); |
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2887 |
</xsl:text> |
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2888 |
<xsl:text> } |
ed3f712a8eef
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2932
diff
changeset
|
2889 |
</xsl:text> |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2890 |
<xsl:text> }, |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2891 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2892 |
<xsl:text> close: function(){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2893 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2894 |
<xsl:text> // Stop hogging all click events |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2895 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2896 |
<xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2897 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2898 |
<xsl:text> // Restore position and sixe of widget elements |
2932
abb995a30088
SVGHMI: Fix HMI:DropDown flicker on close.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2931
diff
changeset
|
2899 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2900 |
<xsl:text> this.reset_text(); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2901 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2902 |
<xsl:text> this.reset_box(); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2903 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2904 |
<xsl:text> // Put the button back in place |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2905 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2906 |
<xsl:text> this.element.appendChild(this.button_elt); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
2907 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2908 |
<xsl:text> // Mark as closed (to allow dispatch) |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2909 |
</xsl:text> |
2932
abb995a30088
SVGHMI: Fix HMI:DropDown flicker on close.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2931
diff
changeset
|
2910 |
<xsl:text> this.opened = false; |
abb995a30088
SVGHMI: Fix HMI:DropDown flicker on close.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2931
diff
changeset
|
2911 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2912 |
<xsl:text> // Dispatch last cached value |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2913 |
</xsl:text> |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2914 |
<xsl:text> this.apply_cache(); |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
2915 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2916 |
<xsl:text> }, |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2917 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2918 |
<xsl:text> // Set text content when content is smaller than menu (no scrolling) |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2919 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2920 |
<xsl:text> set_complete_text: function(){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2921 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2922 |
<xsl:text> let spans = this.text_elt.children; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2923 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2924 |
<xsl:text> let c = 0; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2925 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2926 |
<xsl:text> for(let item of this.content){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2927 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2928 |
<xsl:text> let span=spans[c]; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2929 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2930 |
<xsl:text> span.textContent = item; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2931 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2932 |
<xsl:text> span.setAttribute("onclick", "hmi_widgets['</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2933 |
<xsl:value-of select="$hmi_element/@id"/> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2934 |
<xsl:text>'].on_selection_click("+c+")"); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2935 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2936 |
<xsl:text> c++; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2937 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2938 |
<xsl:text> } |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2939 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2940 |
<xsl:text> }, |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2941 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2942 |
<xsl:text> // Move partial view : |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2943 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2944 |
<xsl:text> // false : upward, lower value |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2945 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2946 |
<xsl:text> // true : downward, higher value |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2947 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2948 |
<xsl:text> scroll: function(forward){ |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2949 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2950 |
<xsl:text> let contentlength = this.content.length; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2951 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2952 |
<xsl:text> let spans = this.text_elt.children; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2953 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2954 |
<xsl:text> let spanslength = spans.length; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2955 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2956 |
<xsl:text> // reduce accounted menu size according to jumps |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2957 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2958 |
<xsl:text> if(this.menu_offset != 0) spanslength--; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2959 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2960 |
<xsl:text> if(this.menu_offset < contentlength - 1) spanslength--; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2961 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2962 |
<xsl:text> if(forward){ |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2963 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2964 |
<xsl:text> this.menu_offset = Math.min( |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2965 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2966 |
<xsl:text> contentlength - spans.length + 1, |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2967 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2968 |
<xsl:text> this.menu_offset + spanslength); |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2969 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2970 |
<xsl:text> }else{ |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2971 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2972 |
<xsl:text> this.menu_offset = Math.max( |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2973 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2974 |
<xsl:text> 0, |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2975 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2976 |
<xsl:text> this.menu_offset - spanslength); |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2977 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2978 |
<xsl:text> } |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2979 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2980 |
<xsl:text> this.set_partial_text(); |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2981 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2982 |
<xsl:text> }, |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2983 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2984 |
<xsl:text> // Setup partial view text content |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2985 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2986 |
<xsl:text> // with jumps at first and last entry when appropriate |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
2987 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2988 |
<xsl:text> set_partial_text: function(){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2989 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2990 |
<xsl:text> let spans = this.text_elt.children; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2991 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2992 |
<xsl:text> let contentlength = this.content.length; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2993 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2994 |
<xsl:text> let spanslength = spans.length; |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2995 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2996 |
<xsl:text> let i = this.menu_offset, c = 0; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
2997 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2998 |
<xsl:text> while(c < spanslength){ |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
2999 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3000 |
<xsl:text> let span=spans[c]; |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3001 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3002 |
<xsl:text> // backward jump only present if not exactly at start |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3003 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3004 |
<xsl:text> if(c == 0 && i != 0){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3005 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3006 |
<xsl:text> span.textContent = "↑ ↑ ↑"; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3007 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3008 |
<xsl:text> span.setAttribute("onclick", "hmi_widgets['</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3009 |
<xsl:value-of select="$hmi_element/@id"/> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3010 |
<xsl:text>'].on_backward_click()"); |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3011 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3012 |
<xsl:text> // presence of forward jump when not right at the end |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3013 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3014 |
<xsl:text> }else if(c == spanslength-1 && i < contentlength - 1){ |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3015 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3016 |
<xsl:text> span.textContent = "↓ ↓ ↓"; |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3017 |
</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3018 |
<xsl:text> span.setAttribute("onclick", "hmi_widgets['</xsl:text> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3019 |
<xsl:value-of select="$hmi_element/@id"/> |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3020 |
<xsl:text>'].on_forward_click()"); |
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3021 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3022 |
<xsl:text> // otherwise normal content |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3023 |
</xsl:text> |
2925
220172cbdcff
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2924
diff
changeset
|
3024 |
<xsl:text> }else{ |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3025 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3026 |
<xsl:text> span.textContent = this.content[i]; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3027 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3028 |
<xsl:text> span.setAttribute("onclick", "hmi_widgets['</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3029 |
<xsl:value-of select="$hmi_element/@id"/> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3030 |
<xsl:text>'].on_selection_click("+i+")"); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3031 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3032 |
<xsl:text> i++; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3033 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3034 |
<xsl:text> } |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3035 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3036 |
<xsl:text> c++; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3037 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3038 |
<xsl:text> } |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3039 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3040 |
<xsl:text> }, |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3041 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3042 |
<xsl:text> open: function(){ |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3043 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3044 |
<xsl:text> let length = this.content.length; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3045 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3046 |
<xsl:text> // systematically reset text, to strip eventual whitespace spans |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3047 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3048 |
<xsl:text> this.reset_text(); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3049 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3050 |
<xsl:text> // grow as much as needed or possible |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3051 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3052 |
<xsl:text> let slots = this.grow_text(length); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3053 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3054 |
<xsl:text> // Depending on final size |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3055 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3056 |
<xsl:text> if(slots == length) { |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3057 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3058 |
<xsl:text> // show all at once |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3059 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3060 |
<xsl:text> this.set_complete_text(); |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3061 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3062 |
<xsl:text> } else { |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3063 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3064 |
<xsl:text> // eventualy align menu to current selection, compensating for lift |
2934
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3065 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3066 |
<xsl:text> let offset = this.last_selection - this.lift; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3067 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3068 |
<xsl:text> if(offset > 0) |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3069 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3070 |
<xsl:text> this.menu_offset = Math.min(offset + 1, length - slots + 1); |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3071 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3072 |
<xsl:text> else |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3073 |
</xsl:text> |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3074 |
<xsl:text> this.menu_offset = 0; |
ee483e8346f5
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2933
diff
changeset
|
3075 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3076 |
<xsl:text> // show surrounding values |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3077 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3078 |
<xsl:text> this.set_partial_text(); |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3079 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3080 |
<xsl:text> } |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3081 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3082 |
<xsl:text> // Now that text size is known, we can set the box around it |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3083 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3084 |
<xsl:text> this.adjust_box_to_text(); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3085 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3086 |
<xsl:text> // Take button out until menu closed |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3087 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3088 |
<xsl:text> this.element.removeChild(this.button_elt); |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3089 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3090 |
<xsl:text> // Rise widget to top by moving it to last position among siblings |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3091 |
</xsl:text> |
2930
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
3092 |
<xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
3093 |
</xsl:text> |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
3094 |
<xsl:text> // disable interaction with background |
41edcb8e0a01
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2926
diff
changeset
|
3095 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3096 |
<xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3097 |
</xsl:text> |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3098 |
<xsl:text> // mark as open |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3099 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3100 |
<xsl:text> this.opened = true; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3101 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3102 |
<xsl:text> }, |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3103 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3104 |
<xsl:text> // Put text element in normalized state |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3105 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3106 |
<xsl:text> reset_text: function(){ |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3107 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3108 |
<xsl:text> let txt = this.text_elt; |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3109 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3110 |
<xsl:text> let first = txt.firstElementChild; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3111 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3112 |
<xsl:text> // remove attribute eventually added to first text line while opening |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3113 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3114 |
<xsl:text> first.removeAttribute("onclick"); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3115 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3116 |
<xsl:text> first.removeAttribute("dy"); |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3117 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3118 |
<xsl:text> // keep only the first line of text |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3119 |
</xsl:text> |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3120 |
<xsl:text> for(let span of Array.from(txt.children).slice(1)){ |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3121 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3122 |
<xsl:text> txt.removeChild(span) |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3123 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3124 |
<xsl:text> } |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3125 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3126 |
<xsl:text> }, |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3127 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3128 |
<xsl:text> // Put rectangle element in saved original state |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3129 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3130 |
<xsl:text> reset_box: function(){ |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3131 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3132 |
<xsl:text> let m = this.box_bbox; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3133 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3134 |
<xsl:text> let b = this.box_elt; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3135 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3136 |
<xsl:text> b.x.baseVal.value = m.x; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3137 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3138 |
<xsl:text> b.y.baseVal.value = m.y; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3139 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3140 |
<xsl:text> b.width.baseVal.value = m.width; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3141 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3142 |
<xsl:text> b.height.baseVal.value = m.height; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3143 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3144 |
<xsl:text> }, |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3145 |
</xsl:text> |
2936
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3146 |
<xsl:text> // Use margin and text size to compute box size |
53fb11263ff1
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant
parents:
2934
diff
changeset
|
3147 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3148 |
<xsl:text> adjust_box_to_text: function(){ |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3149 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3150 |
<xsl:text> let [lmargin, tmargin] = this.margins; |
2923
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3151 |
</xsl:text> |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3152 |
<xsl:text> let m = this.text_elt.getBBox(); |
5ec1c07ce582
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2922
diff
changeset
|
3153 |
</xsl:text> |
2924
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3154 |
<xsl:text> let b = this.box_elt; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3155 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3156 |
<xsl:text> b.x.baseVal.value = m.x - lmargin; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3157 |
</xsl:text> |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3158 |
<xsl:text> b.y.baseVal.value = m.y - tmargin; |
69bb58eb0eac
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2923
diff
changeset
|
3159 |
</xsl:text> |
2926
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3160 |
<xsl:text> b.width.baseVal.value = 2 * lmargin + m.width; |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3161 |
</xsl:text> |
90f9d9782632
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2925
diff
changeset
|
3162 |
<xsl:text> b.height.baseVal.value = 2 * tmargin + m.height; |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
3163 |
</xsl:text> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
3164 |
<xsl:text> }, |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
3165 |
</xsl:text> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
3166 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3167 |
<xsl:template mode="widget_defs" match="widget[@type='ForEach']"> |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3168 |
<xsl:param name="hmi_element"/> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3169 |
<xsl:if test="count(path) != 1"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3170 |
<xsl:message terminate="yes"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3171 |
<xsl:text>ForEach widget </xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3172 |
<xsl:value-of select="$hmi_element/@id"/> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3173 |
<xsl:text> must have one HMI path given.</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3174 |
</xsl:message> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3175 |
</xsl:if> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3176 |
<xsl:if test="count(arg) != 1"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3177 |
<xsl:message terminate="yes"> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3178 |
<xsl:text>ForEach widget </xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3179 |
<xsl:value-of select="$hmi_element/@id"/> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3180 |
<xsl:text> must have one argument given : a class name.</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3181 |
</xsl:message> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3182 |
</xsl:if> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3183 |
<xsl:variable name="class" select="arg[1]/@value"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3184 |
<xsl:variable name="base_path" select="path/@value"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3185 |
<xsl:variable name="hmi_index_base" select="$indexed_hmitree/*[@hmipath = $base_path]"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3186 |
<xsl:variable name="hmi_tree_base" select="$hmitree/descendant-or-self::*[@path = $hmi_index_base/@path]"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3187 |
<xsl:variable name="hmi_tree_items" select="$hmi_tree_base/*[@class = $class]"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3188 |
<xsl:variable name="hmi_index_items" select="$indexed_hmitree/*[@path = $hmi_tree_items/@path]"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3189 |
<xsl:variable name="items_paths" select="$hmi_index_items/@hmipath"/> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3190 |
<xsl:text> index_pool: [ |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3191 |
</xsl:text> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3192 |
<xsl:for-each select="$hmi_index_items"> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3193 |
<xsl:text> </xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3194 |
<xsl:value-of select="@index"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3195 |
<xsl:if test="position()!=last()"> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3196 |
<xsl:text>,</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3197 |
</xsl:if> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3198 |
<xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3199 |
</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3200 |
</xsl:for-each> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3201 |
<xsl:text> ], |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3202 |
</xsl:text> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3203 |
<xsl:text> init: function() { |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3204 |
</xsl:text> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3205 |
<xsl:variable name="prefix" select="concat($class,':')"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3206 |
<xsl:variable name="buttons_regex" select="concat('^',$prefix,'[+\-][0-9]+')"/> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3207 |
<xsl:variable name="buttons" select="$hmi_element/*[regexp:test(@inkscape:label, $buttons_regex)]"/> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3208 |
<xsl:for-each select="$buttons"> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3209 |
<xsl:variable name="op" select="substring-after(@inkscape:label, $prefix)"/> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3210 |
<xsl:text> id("</xsl:text> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3211 |
<xsl:value-of select="@id"/> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3212 |
<xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3213 |
<xsl:value-of select="$hmi_element/@id"/> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3214 |
<xsl:text>'].on_click('</xsl:text> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3215 |
<xsl:value-of select="$op"/> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3216 |
<xsl:text>', evt)"); |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3217 |
</xsl:text> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3218 |
</xsl:for-each> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3219 |
<xsl:text> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3220 |
</xsl:text> |
2895
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3221 |
<xsl:text> this.items = [ |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3222 |
</xsl:text> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3223 |
<xsl:variable name="items_regex" select="concat('^',$prefix,'[0-9]+')"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3224 |
<xsl:variable name="unordered_items" select="$hmi_element//*[regexp:test(@inkscape:label, $items_regex)]"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3225 |
<xsl:for-each select="$unordered_items"> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3226 |
<xsl:variable name="elt_label" select="concat($prefix, string(position()))"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3227 |
<xsl:variable name="elt" select="$unordered_items[@inkscape:label = $elt_label]"/> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3228 |
<xsl:variable name="pos" select="position()"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3229 |
<xsl:variable name="item_path" select="$items_paths[$pos]"/> |
2895
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3230 |
<xsl:text> [ /* item="</xsl:text> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3231 |
<xsl:value-of select="$elt_label"/> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3232 |
<xsl:text>" path="</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3233 |
<xsl:value-of select="$item_path"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3234 |
<xsl:text>" */ |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3235 |
</xsl:text> |
2893
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3236 |
<xsl:if test="count($elt)=0"> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3237 |
<xsl:message terminate="yes"> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3238 |
<xsl:text>Missing item labeled </xsl:text> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3239 |
<xsl:value-of select="$elt_label"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3240 |
<xsl:text> in ForEach widget </xsl:text> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3241 |
<xsl:value-of select="$hmi_element/@id"/> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3242 |
</xsl:message> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3243 |
</xsl:if> |
d57a12b8f5db
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.
Edouard Tisserant
parents:
2892
diff
changeset
|
3244 |
<xsl:for-each select="func:refered_elements($elt)[@id = $hmi_elements/@id][not(@id = $elt/@id)]"> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3245 |
<xsl:if test="not(func:is_descendant_path(func:widget(@id)/path/@value, $item_path))"> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3246 |
<xsl:message terminate="yes"> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3247 |
<xsl:text>Widget id="</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3248 |
<xsl:value-of select="@id"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3249 |
<xsl:text>" label="</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3250 |
<xsl:value-of select="@inkscape:label"/> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3251 |
<xsl:text>" is having wrong path. Accroding to ForEach widget ancestor id="</xsl:text> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3252 |
<xsl:value-of select="$hmi_element/@id"/> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3253 |
<xsl:text>", path should be descendant of "</xsl:text> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3254 |
<xsl:value-of select="$item_path"/> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
3255 |
<xsl:text>".</xsl:text> |
2894
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3256 |
</xsl:message> |
4cf9ad35e6d0
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2893
diff
changeset
|
3257 |
</xsl:if> |
2895
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3258 |
<xsl:text> hmi_widgets["</xsl:text> |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3259 |
<xsl:value-of select="@id"/> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3260 |
<xsl:text>"]</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3261 |
<xsl:if test="position()!=last()"> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3262 |
<xsl:text>,</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3263 |
</xsl:if> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3264 |
<xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3265 |
</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3266 |
</xsl:for-each> |
2895
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3267 |
<xsl:text> ]</xsl:text> |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3268 |
<xsl:if test="position()!=last()"> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3269 |
<xsl:text>,</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3270 |
</xsl:if> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3271 |
<xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3272 |
</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3273 |
</xsl:for-each> |
2895
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3274 |
<xsl:text> ] |
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3275 |
</xsl:text> |
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3276 |
<xsl:text> }, |
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3277 |
</xsl:text> |
89c02b452717
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.
Edouard Tisserant
parents:
2894
diff
changeset
|
3278 |
<xsl:text> item_offset: 0, |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
3279 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3280 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3281 |
<xsl:template mode="widget_class" match="widget[@type='ForEach']"> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3282 |
<xsl:text>class ForEachWidget extends Widget{ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3283 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3284 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3285 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3286 |
<xsl:text> unsub_items(){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3287 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3288 |
<xsl:text> for(let item of this.items){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3289 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3290 |
<xsl:text> for(let widget of item) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3291 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3292 |
<xsl:text> widget.unsub(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3293 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3294 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3295 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3296 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3297 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3298 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3299 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3300 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3301 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3302 |
<xsl:text> unsub(){ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3303 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3304 |
<xsl:text> this.unsub_items(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3305 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3306 |
<xsl:text> this.offset = 0; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3307 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3308 |
<xsl:text> this.relativeness = undefined; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3309 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3310 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3311 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3312 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3313 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3314 |
<xsl:text> sub_items(){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3315 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3316 |
<xsl:text> for(let i = 0; i < this.items.length; i++) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3317 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3318 |
<xsl:text> let item = this.items[i]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3319 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3320 |
<xsl:text> let orig_item_index = this.index_pool[i]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3321 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3322 |
<xsl:text> let item_index = this.index_pool[i+this.item_offset]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3323 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3324 |
<xsl:text> let item_index_offset = item_index - orig_item_index; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3325 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3326 |
<xsl:text> if(this.relativeness[0]) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3327 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3328 |
<xsl:text> item_index_offset += this.offset; |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3329 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3330 |
<xsl:text> for(let widget of item) { |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3331 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3332 |
<xsl:text> /* all variables of all widgets in a ForEach are all relative. |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3333 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3334 |
<xsl:text> Really. |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3335 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3336 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3337 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3338 |
<xsl:text> TODO: allow absolute variables in ForEach widgets |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3339 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3340 |
<xsl:text> */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3341 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3342 |
<xsl:text> widget.sub(item_index_offset, widget.indexes.map(_=>true)); |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3343 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3344 |
<xsl:text> } |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3345 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3346 |
<xsl:text> } |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3347 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3348 |
<xsl:text> } |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3349 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3350 |
<xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3351 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3352 |
<xsl:text> sub(new_offset=0, relativeness=[]){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3353 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3354 |
<xsl:text> this.offset = new_offset; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3355 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3356 |
<xsl:text> this.relativeness = relativeness; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3357 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3358 |
<xsl:text> this.sub_items(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3359 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3360 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3361 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3362 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3363 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3364 |
<xsl:text> apply_cache() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3365 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3366 |
<xsl:text> this.items.forEach(item=>item.forEach(widget=>widget.apply_cache())); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3367 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3368 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3369 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3370 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3371 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3372 |
<xsl:text> on_click(opstr, evt) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3373 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3374 |
<xsl:text> let new_item_offset = eval(String(this.item_offset)+opstr); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3375 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3376 |
<xsl:text> if(new_item_offset + this.items.length > this.index_pool.length) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3377 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3378 |
<xsl:text> if(this.item_offset + this.items.length == this.index_pool.length) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3379 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3380 |
<xsl:text> new_item_offset = 0; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3381 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3382 |
<xsl:text> else |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3383 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3384 |
<xsl:text> new_item_offset = this.index_pool.length - this.items.length; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3385 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3386 |
<xsl:text> } else if(new_item_offset < 0) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3387 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3388 |
<xsl:text> if(this.item_offset == 0) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3389 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3390 |
<xsl:text> new_item_offset = this.index_pool.length - this.items.length; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3391 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3392 |
<xsl:text> else |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3393 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3394 |
<xsl:text> new_item_offset = 0; |
3003
9771a724af09
SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2998
diff
changeset
|
3395 |
</xsl:text> |
9771a724af09
SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2998
diff
changeset
|
3396 |
<xsl:text> } |
9771a724af09
SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2998
diff
changeset
|
3397 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3398 |
<xsl:text> this.item_offset = new_item_offset; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3399 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3400 |
<xsl:text> this.unsub_items(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3401 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
3402 |
<xsl:text> this.sub_items(); |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3403 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3404 |
<xsl:text> update_subscriptions(); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3405 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3406 |
<xsl:text> need_cache_apply.push(this); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3407 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3408 |
<xsl:text> jumps_need_update = true; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3409 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3410 |
<xsl:text> requestHMIAnimation(); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3411 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
3412 |
<xsl:text> } |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3413 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3414 |
<xsl:text>} |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3415 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
3416 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3417 |
<xsl:template mode="widget_defs" match="widget[@type='Input']"> |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3418 |
<xsl:param name="hmi_element"/> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3419 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3420 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3421 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3422 |
<xsl:text>key_pos</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3423 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3424 |
<xsl:with-param name="mandatory" select="'no'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3425 |
</xsl:call-template> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3426 |
<xsl:variable name="value_elt"> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3427 |
<xsl:call-template name="defs_by_labels"> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3428 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3429 |
<xsl:with-param name="labels"> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3430 |
<xsl:text>value</xsl:text> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3431 |
</xsl:with-param> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3432 |
<xsl:with-param name="mandatory" select="'no'"/> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3433 |
</xsl:call-template> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3434 |
</xsl:variable> |
2861
84c16ece8e10
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant
parents:
2859
diff
changeset
|
3435 |
<xsl:variable name="have_value" select="string-length($value_elt)>0"/> |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3436 |
<xsl:value-of select="$value_elt"/> |
2861
84c16ece8e10
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant
parents:
2859
diff
changeset
|
3437 |
<xsl:if test="$have_value"> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3438 |
<xsl:text> frequency: 5, |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3439 |
</xsl:text> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3440 |
</xsl:if> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3441 |
<xsl:text> last_val: undefined, |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3442 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3443 |
<xsl:text> dispatch: function(value) { |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3444 |
</xsl:text> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3445 |
<xsl:text> this.last_val = value; |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3446 |
</xsl:text> |
2861
84c16ece8e10
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant
parents:
2859
diff
changeset
|
3447 |
<xsl:if test="$have_value"> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3448 |
<xsl:text> this.value_elt.textContent = String(value); |
2836
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3449 |
</xsl:text> |
ce6cecdb7320
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant
parents:
2834
diff
changeset
|
3450 |
</xsl:if> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3451 |
<xsl:text> }, |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3452 |
</xsl:text> |
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3453 |
<xsl:variable name="edit_elt_id" select="$hmi_element/*[@inkscape:label='edit'][1]/@id"/> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3454 |
<xsl:text> init: function() { |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3455 |
</xsl:text> |
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3456 |
<xsl:if test="$edit_elt_id"> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3457 |
<xsl:text> id("</xsl:text> |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3458 |
<xsl:value-of select="$edit_elt_id"/> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3459 |
<xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3460 |
<xsl:value-of select="$hmi_element/@id"/> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3461 |
<xsl:text>'].on_edit_click()"); |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3462 |
</xsl:text> |
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3463 |
</xsl:if> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
3464 |
<xsl:for-each select="$hmi_element/*[regexp:test(@inkscape:label,'^[=+\-].+')]"> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3465 |
<xsl:text> id("</xsl:text> |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3466 |
<xsl:value-of select="@id"/> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3467 |
<xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3468 |
<xsl:value-of select="$hmi_element/@id"/> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3469 |
<xsl:text>'].on_op_click('</xsl:text> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
3470 |
<xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3471 |
<xsl:text>')"); |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3472 |
</xsl:text> |
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3473 |
</xsl:for-each> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
3474 |
<xsl:text> }, |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3475 |
</xsl:text> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3476 |
<xsl:text> on_op_click: function(opstr) { |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3477 |
</xsl:text> |
3004
705e34c6fe93
SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3003
diff
changeset
|
3478 |
<xsl:text> let new_val = this.change_hmi_value(0, opstr); |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3479 |
</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3480 |
<xsl:text> }, |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3481 |
</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3482 |
<xsl:text> on_edit_click: function(opstr) { |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3483 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3484 |
<xsl:text> var size = (typeof this.key_pos_elt !== 'undefined') ? this.key_pos_elt.getBBox() : undefined |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
3485 |
</xsl:text> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3486 |
<xsl:text> edit_value("</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3487 |
<xsl:value-of select="path/@value"/> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3488 |
<xsl:text>", "</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3489 |
<xsl:value-of select="path/@type"/> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3490 |
<xsl:text>", this, this.last_val, size); |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3491 |
</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3492 |
<xsl:text> }, |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3493 |
</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3494 |
<xsl:text> edit_callback: function(new_val) { |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3495 |
</xsl:text> |
3004
705e34c6fe93
SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3003
diff
changeset
|
3496 |
<xsl:text> this.apply_hmi_value(0, new_val); |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3497 |
</xsl:text> |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3498 |
<xsl:text> }, |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
3499 |
</xsl:text> |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
3500 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3501 |
<xsl:template mode="widget_class" match="widget[@type='JsonTable']"> |
2994
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3502 |
<xsl:text>class JsonTableWidget extends Widget{ |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3503 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3504 |
<xsl:text> cache = []; |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3505 |
</xsl:text> |
3048
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3506 |
<xsl:text> do_http_request(...opt) { |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3507 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3508 |
<xsl:text> const query = { |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3509 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3510 |
<xsl:text> args: this.args, |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3511 |
</xsl:text> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3512 |
<xsl:text> vars: this.cache, |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3513 |
</xsl:text> |
3048
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3514 |
<xsl:text> visible: this.visible, |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3515 |
</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3516 |
<xsl:text> options: opt |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3517 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3518 |
<xsl:text> }; |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3519 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3520 |
<xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3521 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3522 |
<xsl:text> const options = { |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3523 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3524 |
<xsl:text> method: 'POST', |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3525 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3526 |
<xsl:text> body: JSON.stringify(query), |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3527 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3528 |
<xsl:text> headers: {'Content-Type': 'application/json'} |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3529 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3530 |
<xsl:text> }; |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3531 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3532 |
<xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3533 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3534 |
<xsl:text> fetch(this.args[0], options) |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3535 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3536 |
<xsl:text> .then(res => res.json()) |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3537 |
</xsl:text> |
3041
de4503de2f8c
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant
parents:
3038
diff
changeset
|
3538 |
<xsl:text> .then(this.spread_json_data.bind(this)); |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3539 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3540 |
<xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3541 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3542 |
<xsl:text> } |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3543 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3544 |
<xsl:text> dispatch(value, oldval, index) { |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3545 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
3546 |
<xsl:text> this.cache[index] = value; |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3547 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3548 |
<xsl:text> this.do_http_request(); |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3549 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3550 |
<xsl:text> } |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3551 |
</xsl:text> |
3048
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3552 |
<xsl:text> on_click(evt, ...options) { |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3553 |
</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3554 |
<xsl:text> this.do_http_request(...options); |
2994
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3555 |
</xsl:text> |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3556 |
<xsl:text> } |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3557 |
</xsl:text> |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3558 |
<xsl:text>} |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3559 |
</xsl:text> |
b6a9ef7f7e43
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2980
diff
changeset
|
3560 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3561 |
<xsl:template mode="json_table_elt_render" match="svg:*"> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3562 |
<xsl:message terminate="yes"> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3563 |
<xsl:text>JsonTable Widget can't contain element of type </xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3564 |
<xsl:value-of select="local-name()"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3565 |
<xsl:text>.</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3566 |
</xsl:message> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3567 |
</xsl:template> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3568 |
<xsl:variable name="hmi_textstylelists_descs" select="$parsed_widgets/widget[@type = 'TextStyleList']"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3569 |
<xsl:variable name="hmi_textstylelists" select="$hmi_elements[@id = $hmi_textstylelists_descs/@id]"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3570 |
<xsl:variable name="textstylelist_related"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3571 |
<xsl:for-each select="$hmi_textstylelists"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3572 |
<list> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3573 |
<xsl:attribute name="listid"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3574 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3575 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3576 |
<xsl:for-each select="func:refered_elements(.)"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3577 |
<elt> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3578 |
<xsl:attribute name="eltid"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3579 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3580 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3581 |
</elt> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3582 |
</xsl:for-each> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3583 |
</list> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3584 |
</xsl:for-each> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3585 |
</xsl:variable> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3586 |
<xsl:variable name="textstylelist_related_ns" select="exsl:node-set($textstylelist_related)"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3587 |
<func:function name="func:json_expressions"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3588 |
<xsl:param name="expressions"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3589 |
<xsl:param name="label"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3590 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3591 |
<xsl:when test="$label"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3592 |
<xsl:variable name="suffixes" select="str:split($label)"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3593 |
<xsl:variable name="res"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3594 |
<xsl:for-each select="$suffixes"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3595 |
<expression> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3596 |
<xsl:variable name="suffix" select="."/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3597 |
<xsl:variable name="pos" select="position()"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3598 |
<xsl:variable name="expr" select="$expressions[position() <= $pos][last()]/expression"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3599 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3600 |
<xsl:when test="contains($suffix,'=')"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3601 |
<xsl:variable name="name" select="substring-before($suffix,'=')"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3602 |
<xsl:if test="$expr/@name[. != $name]"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3603 |
<xsl:message terminate="yes"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3604 |
<xsl:text>JsonTable : missplaced '=' or inconsistent names in Json data expressions.</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3605 |
</xsl:message> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3606 |
</xsl:if> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3607 |
<xsl:attribute name="name"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3608 |
<xsl:value-of select="$name"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3609 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3610 |
<xsl:attribute name="content"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3611 |
<xsl:value-of select="$expr/@content"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3612 |
<xsl:value-of select="substring-after($suffix,'=')"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3613 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3614 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3615 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3616 |
<xsl:copy-of select="$expr/@name"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3617 |
<xsl:attribute name="content"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3618 |
<xsl:value-of select="$expr/@content"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3619 |
<xsl:value-of select="$suffix"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3620 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3621 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3622 |
</xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3623 |
</expression> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3624 |
</xsl:for-each> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3625 |
</xsl:variable> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3626 |
<func:result select="exsl:node-set($res)"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3627 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3628 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3629 |
<func:result select="$expressions"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3630 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3631 |
</xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3632 |
</func:function> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3633 |
<xsl:variable name="initexpr"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3634 |
<expression> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3635 |
<xsl:attribute name="content"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3636 |
<xsl:text>jdata</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3637 |
</xsl:attribute> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3638 |
</expression> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3639 |
</xsl:variable> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3640 |
<xsl:variable name="initexpr_ns" select="exsl:node-set($initexpr)"/> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3641 |
<xsl:template mode="json_table_elt_render" match="svg:use"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3642 |
<xsl:param name="expressions"/> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3643 |
<xsl:variable name="targetid" select="substring-after(@xlink:href,'#')"/> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3644 |
<xsl:variable name="from_list" select="$hmi_lists[(@id | */@id) = $targetid]"/> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3645 |
<xsl:choose> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3646 |
<xsl:when test="count($from_list) > 0"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3647 |
<xsl:text> id("</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3648 |
<xsl:value-of select="@id"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3649 |
<xsl:text>").setAttribute("xlink:href", |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3650 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3651 |
<xsl:text> "#"+hmi_widgets["</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3652 |
<xsl:value-of select="$from_list/@id"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3653 |
<xsl:text>"].items[</xsl:text> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3654 |
<xsl:value-of select="$expressions/expression[1]/@content"/> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3655 |
<xsl:text>]); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3656 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3657 |
</xsl:when> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3658 |
<xsl:otherwise> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3659 |
<xsl:message terminate="no"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3660 |
<xsl:text>Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or item. Reference "</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3661 |
<xsl:value-of select="@xlink:href"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3662 |
<xsl:text>" is not valid and will not be updated.</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3663 |
</xsl:message> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3664 |
</xsl:otherwise> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
3665 |
</xsl:choose> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3666 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3667 |
<xsl:template mode="json_table_elt_render" match="svg:text"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3668 |
<xsl:param name="expressions"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3669 |
<xsl:variable name="value_expr" select="$expressions/expression[1]/@content"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3670 |
<xsl:variable name="original" select="@original"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3671 |
<xsl:variable name="from_textstylelist" select="$textstylelist_related_ns/list[elt/@eltid = $original]"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3672 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3673 |
<xsl:when test="count($from_textstylelist) > 0"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3674 |
<xsl:variable name="content_expr" select="$expressions/expression[2]/@content"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3675 |
<xsl:if test="string-length($content_expr) = 0 or $expressions/expression[2]/@name != 'textContent'"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3676 |
<xsl:message terminate="yes"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3677 |
<xsl:text>Clones (svg:use) in JsonTable Widget pointing to a HMI:TextStyleList widget or item must have a "textContent=.someVal" assignement following value expression in label.</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3678 |
</xsl:message> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3679 |
</xsl:if> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3680 |
<xsl:text> { |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3681 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3682 |
<xsl:text> let elt = id("</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3683 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3684 |
<xsl:text>"); |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3685 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3686 |
<xsl:text> elt.textContent = String(</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3687 |
<xsl:value-of select="$content_expr"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3688 |
<xsl:text>); |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3689 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3690 |
<xsl:text> elt.style = hmi_widgets["</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3691 |
<xsl:value-of select="$from_textstylelist/@listid"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3692 |
<xsl:text>"].styles[</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3693 |
<xsl:value-of select="$value_expr"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3694 |
<xsl:text>]; |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3695 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3696 |
<xsl:text> } |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3697 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3698 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3699 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3700 |
<xsl:text> id("</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3701 |
<xsl:value-of select="@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3702 |
<xsl:text>").textContent = String(</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3703 |
<xsl:value-of select="$value_expr"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3704 |
<xsl:text>); |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3705 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3706 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3707 |
</xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3708 |
</xsl:template> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3709 |
<func:function name="func:filter_non_widget_label"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3710 |
<xsl:param name="elt"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3711 |
<xsl:param name="widget_elts"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3712 |
<xsl:variable name="eltid"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3713 |
<xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3714 |
<xsl:when test="$elt/@original"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3715 |
<xsl:value-of select="$elt/@original"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3716 |
</xsl:when> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3717 |
<xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3718 |
<xsl:value-of select="$elt/@id"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3719 |
</xsl:otherwise> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3720 |
</xsl:choose> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3721 |
</xsl:variable> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3722 |
<func:result select="$widget_elts[@id=$eltid]/@inkscape:label"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3723 |
</func:function> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3724 |
<xsl:template mode="json_table_render_except_comments" match="svg:*"> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3725 |
<xsl:param name="expressions"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3726 |
<xsl:param name="widget_elts"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3727 |
<xsl:variable name="label" select="func:filter_non_widget_label(., $widget_elts)"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3728 |
<xsl:if test="not(starts-with($label,'#'))"> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3729 |
<xsl:apply-templates mode="json_table_render" select="."> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3730 |
<xsl:with-param name="expressions" select="$expressions"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3731 |
<xsl:with-param name="widget_elts" select="$widget_elts"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3732 |
<xsl:with-param name="label" select="$label"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3733 |
</xsl:apply-templates> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3734 |
</xsl:if> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3735 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3736 |
<xsl:template mode="json_table_render" match="svg:*"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3737 |
<xsl:param name="expressions"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3738 |
<xsl:param name="widget_elts"/> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3739 |
<xsl:param name="label"/> |
3048
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3740 |
<xsl:variable name="new_expressions" select="func:json_expressions($expressions, $label)"/> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3741 |
<xsl:variable name="elt" select="."/> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3742 |
<xsl:for-each select="$new_expressions/expression[position() > 1][starts-with(@name,'onClick')]"> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3743 |
<xsl:text> id("</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3744 |
<xsl:value-of select="$elt/@id"/> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3745 |
<xsl:text>").setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt, '</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3746 |
<xsl:value-of select="@name"/> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3747 |
<xsl:text>', '"+</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3748 |
<xsl:value-of select="@content"/> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3749 |
<xsl:text>+"')"); |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3750 |
</xsl:text> |
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3751 |
</xsl:for-each> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3752 |
<xsl:apply-templates mode="json_table_elt_render" select="."> |
3048
d46d545ff7b7
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant
parents:
3047
diff
changeset
|
3753 |
<xsl:with-param name="expressions" select="$new_expressions"/> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3754 |
</xsl:apply-templates> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3755 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3756 |
<xsl:template mode="json_table_render" match="svg:g"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3757 |
<xsl:param name="expressions"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3758 |
<xsl:param name="widget_elts"/> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3759 |
<xsl:param name="label"/> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3760 |
<xsl:variable name="gid" select="@id"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3761 |
<xsl:variable name="varprefix"> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3762 |
<xsl:text>obj_</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3763 |
<xsl:value-of select="$gid"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3764 |
<xsl:text>_</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3765 |
</xsl:variable> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3766 |
<xsl:text> try { |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3767 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3768 |
<xsl:for-each select="$expressions/expression"> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3769 |
<xsl:text> let </xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3770 |
<xsl:value-of select="$varprefix"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3771 |
<xsl:value-of select="position()"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3772 |
<xsl:text> = </xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3773 |
<xsl:value-of select="@content"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3774 |
<xsl:text>; |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3775 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3776 |
<xsl:text> if(</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3777 |
<xsl:value-of select="$varprefix"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3778 |
<xsl:value-of select="position()"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3779 |
<xsl:text> == undefined) { |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3780 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3781 |
<xsl:text> console.log("</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3782 |
<xsl:value-of select="$varprefix"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3783 |
<xsl:value-of select="position()"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3784 |
<xsl:text> = </xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3785 |
<xsl:value-of select="@content"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3786 |
<xsl:text>"); |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3787 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3788 |
<xsl:text> throw null; |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3789 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3790 |
<xsl:text> } |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3791 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3792 |
</xsl:for-each> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3793 |
<xsl:variable name="new_expressions"> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3794 |
<xsl:for-each select="$expressions/expression"> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3795 |
<xsl:copy> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3796 |
<xsl:copy-of select="@name"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3797 |
<xsl:attribute name="content"> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3798 |
<xsl:value-of select="$varprefix"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3799 |
<xsl:value-of select="position()"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3800 |
</xsl:attribute> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3801 |
</xsl:copy> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3802 |
</xsl:for-each> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3803 |
</xsl:variable> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3804 |
<xsl:text> id("</xsl:text> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3805 |
<xsl:value-of select="@id"/> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3806 |
<xsl:text>").setAttribute("style", "</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3807 |
<xsl:value-of select="@style"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3808 |
<xsl:text>"); |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3809 |
</xsl:text> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3810 |
<xsl:apply-templates mode="json_table_render_except_comments" select="*"> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3811 |
<xsl:with-param name="expressions" select="func:json_expressions(exsl:node-set($new_expressions), $label)"/> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3812 |
<xsl:with-param name="widget_elts" select="$widget_elts"/> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3813 |
</xsl:apply-templates> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3814 |
<xsl:text> } catch(err) { |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3815 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3816 |
<xsl:text> id("</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3817 |
<xsl:value-of select="$gid"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3818 |
<xsl:text>").setAttribute("style", "display:none"); |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3819 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3820 |
<xsl:text> } |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3821 |
</xsl:text> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3822 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3823 |
<xsl:template mode="widget_defs" match="widget[@type='JsonTable']"> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3824 |
<xsl:param name="hmi_element"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3825 |
<xsl:call-template name="defs_by_labels"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3826 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3827 |
<xsl:with-param name="labels"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3828 |
<xsl:text>data</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3829 |
</xsl:with-param> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3830 |
</xsl:call-template> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3831 |
<xsl:call-template name="defs_by_labels"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3832 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3833 |
<xsl:with-param name="labels"> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3834 |
<xsl:text>forward backward cursor</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3835 |
</xsl:with-param> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3836 |
<xsl:with-param name="mandatory" select="'no'"/> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3837 |
</xsl:call-template> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3838 |
<xsl:variable name="data_elt" select="$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"/> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3839 |
<xsl:text> visible: </xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3840 |
<xsl:value-of select="count($data_elt/*[@inkscape:label])"/> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3841 |
<xsl:text>, |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3842 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3843 |
<xsl:text> spread_json_data: function(janswer) { |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3844 |
</xsl:text> |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3845 |
<xsl:text> let [range,position,jdata] = janswer; |
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3846 |
</xsl:text> |
3041
de4503de2f8c
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant
parents:
3038
diff
changeset
|
3847 |
<xsl:text> this.apply_hmi_value(1, range); |
de4503de2f8c
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant
parents:
3038
diff
changeset
|
3848 |
</xsl:text> |
de4503de2f8c
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant
parents:
3038
diff
changeset
|
3849 |
<xsl:text> this.apply_hmi_value(2, position); |
de4503de2f8c
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant
parents:
3038
diff
changeset
|
3850 |
</xsl:text> |
3038
92101729f7b7
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant
parents:
3034
diff
changeset
|
3851 |
<xsl:text> console.log(range,position,jdata); |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3852 |
</xsl:text> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
3853 |
<xsl:apply-templates mode="json_table_render_except_comments" select="$data_elt"> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3854 |
<xsl:with-param name="expressions" select="$initexpr_ns"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
3855 |
<xsl:with-param name="widget_elts" select="$hmi_element/*[@inkscape:label = 'data']/descendant::svg:*"/> |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3856 |
</xsl:apply-templates> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
3857 |
<xsl:text> } |
2996
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3858 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
3859 |
</xsl:template> |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3860 |
<xsl:template name="jump_widget_activity"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3861 |
<xsl:param name="hmi_element"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3862 |
<xsl:call-template name="defs_by_labels"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3863 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3864 |
<xsl:with-param name="labels"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3865 |
<xsl:text>active inactive</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3866 |
</xsl:with-param> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3867 |
<xsl:with-param name="mandatory" select="'no'"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3868 |
</xsl:call-template> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3869 |
</xsl:template> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3870 |
<xsl:template name="jump_widget_disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3871 |
<xsl:param name="hmi_element"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3872 |
<xsl:call-template name="defs_by_labels"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3873 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3874 |
<xsl:with-param name="labels"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3875 |
<xsl:text>disabled</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3876 |
</xsl:with-param> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3877 |
<xsl:with-param name="mandatory" select="'no'"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3878 |
</xsl:call-template> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3879 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
3880 |
<xsl:template mode="widget_defs" match="widget[@type='Jump']"> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3881 |
<xsl:param name="hmi_element"/> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3882 |
<xsl:variable name="activity"> |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3883 |
<xsl:call-template name="jump_widget_activity"> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3884 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3885 |
</xsl:call-template> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3886 |
</xsl:variable> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3887 |
<xsl:variable name="have_activity" select="string-length($activity)>0"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3888 |
<xsl:value-of select="$activity"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3889 |
<xsl:variable name="disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3890 |
<xsl:call-template name="jump_widget_disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3891 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3892 |
</xsl:call-template> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3893 |
</xsl:variable> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3894 |
<xsl:variable name="have_disability" select="$have_activity and string-length($disability)>0"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3895 |
<xsl:value-of select="$disability"/> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3896 |
<xsl:if test="$have_activity"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3897 |
<xsl:text> active: false, |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3898 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3899 |
<xsl:if test="$have_disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3900 |
<xsl:text> disabled: false, |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3901 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3902 |
<xsl:text> frequency: 2, |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3903 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3904 |
<xsl:text> dispatch: function(value) { |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3905 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3906 |
<xsl:text> this.disabled = !Number(value); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3907 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3908 |
<xsl:text> this.update(); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3909 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3910 |
<xsl:text> }, |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3911 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3912 |
</xsl:if> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3913 |
<xsl:text> update: function(){ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3914 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3915 |
<xsl:if test="$have_disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3916 |
<xsl:text> if(this.disabled) { |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3917 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3918 |
<xsl:text> /* show disabled */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3919 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3920 |
<xsl:text> this.disabled_elt.setAttribute("style", this.active_elt_style); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3921 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3922 |
<xsl:text> /* hide inactive */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3923 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3924 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3925 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3926 |
<xsl:text> /* hide active */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3927 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3928 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3929 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3930 |
<xsl:text> } else { |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3931 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3932 |
<xsl:text> /* hide disabled */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3933 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3934 |
<xsl:text> this.disabled_elt.setAttribute("style", "display:none"); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3935 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3936 |
</xsl:if> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3937 |
<xsl:text> if(this.active) { |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3938 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3939 |
<xsl:text> /* show active */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3940 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3941 |
<xsl:text> this.active_elt.setAttribute("style", this.active_elt_style); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3942 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3943 |
<xsl:text> /* hide inactive */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3944 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3945 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3946 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3947 |
<xsl:text> } else { |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3948 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3949 |
<xsl:text> /* show inactive */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3950 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3951 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_elt_style); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3952 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3953 |
<xsl:text> /* hide active */ |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3954 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3955 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3956 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3957 |
<xsl:text> } |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3958 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3959 |
<xsl:if test="$have_disability"> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3960 |
<xsl:text> } |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3961 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3962 |
</xsl:if> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3963 |
<xsl:text> }, |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3964 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3965 |
</xsl:if> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3966 |
<xsl:text> on_click: function(evt) { |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3967 |
</xsl:text> |
2898
a2910281fcb5
SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget)
Edouard Tisserant
parents:
2897
diff
changeset
|
3968 |
<xsl:text> const index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
a2910281fcb5
SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget)
Edouard Tisserant
parents:
2897
diff
changeset
|
3969 |
</xsl:text> |
2902 | 3970 |
<xsl:text> const name = this.args[0]; |
3971 |
</xsl:text> |
|
3972 |
<xsl:text> switch_page(name, index); |
|
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3973 |
</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3974 |
<xsl:text> }, |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3975 |
</xsl:text> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3976 |
<xsl:if test="$have_activity"> |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3977 |
<xsl:text> notify_page_change: function(page_name, index){ |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3978 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3979 |
<xsl:text> const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3980 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3981 |
<xsl:text> const ref_name = this.args[0]; |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3982 |
</xsl:text> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3983 |
<xsl:text> this.active =((ref_name == undefined || ref_name == page_name) && index == ref_index); |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3984 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3985 |
<xsl:text> this.update(); |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3986 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3987 |
<xsl:text> }, |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3988 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3989 |
</xsl:if> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3990 |
<xsl:text> init: function() { |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3991 |
</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3992 |
<xsl:text> this.element.setAttribute("onclick", "hmi_widgets['</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3993 |
<xsl:value-of select="$hmi_element/@id"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3994 |
<xsl:text>'].on_click(evt)"); |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
3995 |
</xsl:text> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
3996 |
<xsl:if test="$have_activity"> |
2903
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3997 |
<xsl:text> this.active_elt_style = this.active_elt.getAttribute("style"); |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3998 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
3999 |
<xsl:text> this.inactive_elt_style = this.inactive_elt.getAttribute("style"); |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
4000 |
</xsl:text> |
881d0248b3ce
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.
Edouard Tisserant
parents:
2902
diff
changeset
|
4001 |
</xsl:if> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4002 |
<xsl:choose> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4003 |
<xsl:when test="$have_disability"> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4004 |
<xsl:text> this.disabled_elt_style = this.disabled_elt.getAttribute("style"); |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4005 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4006 |
</xsl:when> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4007 |
<xsl:otherwise> |
2980
2a21d6060d64
SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons.
Edouard Tisserant
parents:
2979
diff
changeset
|
4008 |
<xsl:text> this.unsubscribable = true; |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4009 |
</xsl:text> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4010 |
</xsl:otherwise> |
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4011 |
</xsl:choose> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4012 |
<xsl:text> }, |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4013 |
</xsl:text> |
2906
3b4a1319da09
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.
Edouard Tisserant
parents:
2905
diff
changeset
|
4014 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4015 |
<xsl:template mode="per_page_widget_template" match="widget[@type='Jump']"> |
2901
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4016 |
<xsl:param name="page_desc"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4017 |
<xsl:if test="path"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4018 |
<xsl:variable name="target_page_name"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4019 |
<xsl:choose> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4020 |
<xsl:when test="arg"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4021 |
<xsl:value-of select="arg[1]/@value"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4022 |
</xsl:when> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4023 |
<xsl:otherwise> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4024 |
<xsl:value-of select="$page_desc/arg[1]/@value"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4025 |
</xsl:otherwise> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4026 |
</xsl:choose> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4027 |
</xsl:variable> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4028 |
<xsl:variable name="target_page_path"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4029 |
<xsl:choose> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4030 |
<xsl:when test="arg"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4031 |
<xsl:value-of select="$hmi_pages_descs[arg[1]/@value = $target_page_name]/path[1]/@value"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4032 |
</xsl:when> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4033 |
<xsl:otherwise> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4034 |
<xsl:value-of select="$page_desc/path[1]/@value"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4035 |
</xsl:otherwise> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4036 |
</xsl:choose> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4037 |
</xsl:variable> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4038 |
<xsl:if test="not(func:same_class_paths($target_page_path, path[1]/@value))"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4039 |
<xsl:message terminate="yes"> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4040 |
<xsl:text>Jump id="</xsl:text> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4041 |
<xsl:value-of select="@id"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4042 |
<xsl:text>" to page "</xsl:text> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4043 |
<xsl:value-of select="$target_page_name"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4044 |
<xsl:text>" with incompatible path "</xsl:text> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4045 |
<xsl:value-of select="path[1]/@value"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4046 |
<xsl:text> (must be same class as "</xsl:text> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4047 |
<xsl:value-of select="$target_page_path"/> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4048 |
<xsl:text>")</xsl:text> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4049 |
</xsl:message> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4050 |
</xsl:if> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4051 |
</xsl:if> |
3f5194bba67d
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.
Edouard Tisserant
parents:
2899
diff
changeset
|
4052 |
</xsl:template> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
4053 |
<declarations:jump/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
4054 |
<xsl:template match="declarations:jump"> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4055 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4056 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4057 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4058 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4059 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4060 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4061 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4062 |
</xsl:text> |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4063 |
<xsl:text>var jumps_need_update = false; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4064 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4065 |
<xsl:text>var jump_history = [[default_page, undefined]]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4066 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4067 |
<xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4068 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4069 |
<xsl:text>function update_jumps() { |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4070 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4071 |
<xsl:text> page_desc[current_visible_page].jumps.map(w=>w.notify_page_change(current_visible_page,current_page_index)); |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4072 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4073 |
<xsl:text> jumps_need_update = false; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4074 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4075 |
<xsl:text>}; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4076 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4077 |
<xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4078 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4079 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4080 |
</xsl:text> |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
4081 |
</xsl:template> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
4082 |
<declarations:keypad/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
4083 |
<xsl:template match="declarations:keypad"> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4084 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4085 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4086 |
<xsl:text>/* </xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4087 |
<xsl:value-of select="local-name()"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4088 |
<xsl:text> */ |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4089 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4090 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4091 |
</xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4092 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4093 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4094 |
<xsl:text>var keypads = { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4095 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4096 |
<xsl:for-each select="$keypads_descs"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4097 |
<xsl:variable name="keypad_id" select="@id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4098 |
<xsl:for-each select="arg"> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4099 |
<xsl:variable name="g" select="$geometry[@Id = $keypad_id]"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4100 |
<xsl:text> "</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4101 |
<xsl:value-of select="@value"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4102 |
<xsl:text>":["</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4103 |
<xsl:value-of select="$keypad_id"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4104 |
<xsl:text>", </xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4105 |
<xsl:value-of select="$g/@x"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4106 |
<xsl:text>, </xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4107 |
<xsl:value-of select="$g/@y"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4108 |
<xsl:text>], |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4109 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4110 |
</xsl:for-each> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4111 |
</xsl:for-each> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4112 |
<xsl:text>} |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4113 |
</xsl:text> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4114 |
<xsl:text> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
4115 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
4116 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4117 |
<xsl:template mode="widget_class" match="widget[@type='Keypad']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4118 |
<xsl:text>class KeypadWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4119 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4120 |
<xsl:text> moving = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4121 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4122 |
<xsl:text> click = undefined; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4123 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4124 |
<xsl:text> offset = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4125 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4126 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4127 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4128 |
<xsl:text> on_position_click(evt) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4129 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4130 |
<xsl:text> this.moving = true; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4131 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4132 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4133 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4134 |
<xsl:text> // chatch window events |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4135 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4136 |
<xsl:text> window.addEventListener("touchmove", this.bound_on_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4137 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4138 |
<xsl:text> window.addEventListener("mousemove", this.bound_on_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4139 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4140 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4141 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4142 |
<xsl:text> window.addEventListener("mouseup", this.bound_on_release, true) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4143 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4144 |
<xsl:text> window.addEventListener("touchend", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4145 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4146 |
<xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4147 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4148 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4149 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4150 |
<xsl:text> // get click position offset from widget x,y and save it to variable |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4151 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4152 |
<xsl:text> var keypad_borders = this.position_elt.getBoundingClientRect(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4153 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4154 |
<xsl:text> var clickX = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4155 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4156 |
<xsl:text> var clickY = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4157 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4158 |
<xsl:text> if (evt.type == "touchstart"){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4159 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4160 |
<xsl:text> clickX = Math.ceil(evt.touches[0].clientX); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4161 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4162 |
<xsl:text> clickY = Math.ceil(evt.touches[0].clientY); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4163 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4164 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4165 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4166 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4167 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4168 |
<xsl:text> clickX = evt.pageX; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4169 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4170 |
<xsl:text> clickY = evt.pageY; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4171 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4172 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4173 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4174 |
<xsl:text> this.offset=[clickX-keypad_borders.left,clickY-keypad_borders.top] |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4175 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4176 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4177 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4178 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4179 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4180 |
<xsl:text> on_release(evt) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4181 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4182 |
<xsl:text> //relase binds |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4183 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4184 |
<xsl:text> window.removeEventListener("touchmove", this.bound_on_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4185 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4186 |
<xsl:text> window.removeEventListener("mousemove", this.bound_on_drag, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4187 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4188 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4189 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4190 |
<xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4191 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4192 |
<xsl:text> window.removeEventListener("touchend", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4193 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4194 |
<xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4195 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4196 |
<xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4197 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4198 |
<xsl:text> if(this.moving) |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4199 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4200 |
<xsl:text> this.moving = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4201 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4202 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4203 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4204 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4205 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4206 |
<xsl:text> on_drag(evt) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4207 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4208 |
<xsl:text> if(this.moving) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4209 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4210 |
<xsl:text> //get mouse coordinates |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4211 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4212 |
<xsl:text> var clickX = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4213 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4214 |
<xsl:text> var clickY = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4215 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4216 |
<xsl:text> if (evt.type == "touchmove"){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4217 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4218 |
<xsl:text> clickX = Math.ceil(evt.touches[0].clientX); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4219 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4220 |
<xsl:text> clickY = Math.ceil(evt.touches[0].clientY); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4221 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4222 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4223 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4224 |
<xsl:text> else{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4225 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4226 |
<xsl:text> clickX = evt.pageX; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4227 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4228 |
<xsl:text> clickY = evt.pageY; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4229 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4230 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4231 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4232 |
<xsl:text> this.click = [clickX,clickY] |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4233 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4234 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4235 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4236 |
<xsl:text> //requeset redraw |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4237 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4238 |
<xsl:text> this.request_animate(); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4239 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4240 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4241 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4242 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4243 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4244 |
<xsl:text> animate(){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4245 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4246 |
<xsl:text> //get keyboard pos in html |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4247 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4248 |
<xsl:text> let [eltid, tmpgrp] = current_modal; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4249 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4250 |
<xsl:text> let [xcoord,ycoord] = this.coordinates; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4251 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4252 |
<xsl:text> let [clickX,clickY] = this.click; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4253 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4254 |
<xsl:text> let [xdest,ydest,svgWidth,svgHeight] = page_desc[current_visible_page].bbox; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4255 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4256 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4257 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4258 |
<xsl:text> //translate keyboard position |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4259 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4260 |
<xsl:text> let mouseX = ((clickX-this.offset[0])/window.innerWidth)*svgWidth; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4261 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4262 |
<xsl:text> let mouseY = ((clickY-this.offset[1])/window.innerHeight)*svgHeight; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4263 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4264 |
<xsl:text> tmpgrp.setAttribute("transform","translate("+String(xdest-xcoord+mouseX)+","+String(ydest-ycoord+mouseY)+")"); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4265 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4266 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4267 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4268 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4269 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4270 |
<xsl:text> on_key_click(symbols) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4271 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4272 |
<xsl:text> var syms = symbols.split(" "); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4273 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4274 |
<xsl:text> this.shift |= this.caps; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4275 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4276 |
<xsl:text> this.editstr += syms[this.shift?syms.length-1:0]; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4277 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4278 |
<xsl:text> this.shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4279 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4280 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4281 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4282 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4283 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4284 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4285 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4286 |
<xsl:text> on_Esc_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4287 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4288 |
<xsl:text> end_modal.call(this); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4289 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4290 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4291 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4292 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4293 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4294 |
<xsl:text> on_Enter_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4295 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4296 |
<xsl:text> let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr; |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4297 |
</xsl:text> |
3042
ed43facc7137
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant
parents:
3041
diff
changeset
|
4298 |
<xsl:text> if(typeof coercedval == 'number' && isNaN(coercedval)){ |
ed43facc7137
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant
parents:
3041
diff
changeset
|
4299 |
</xsl:text> |
ed43facc7137
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant
parents:
3041
diff
changeset
|
4300 |
<xsl:text> // revert to initial so it explicitely shows input was ignored |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4301 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4302 |
<xsl:text> this.editstr = String(this.initial); |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4303 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4304 |
<xsl:text> this.update(); |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4305 |
</xsl:text> |
3042
ed43facc7137
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant
parents:
3041
diff
changeset
|
4306 |
<xsl:text> } else { |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4307 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4308 |
<xsl:text> let callback_obj = this.result_callback_obj; |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4309 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4310 |
<xsl:text> end_modal.call(this); |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4311 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4312 |
<xsl:text> callback_obj.edit_callback(coercedval); |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4313 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4314 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4315 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4316 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4317 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4318 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4319 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4320 |
<xsl:text> on_BackSpace_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4321 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4322 |
<xsl:text> this.editstr = this.editstr.slice(0,this.editstr.length-1); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4323 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4324 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4325 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4326 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4327 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4328 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4329 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4330 |
<xsl:text> on_Sign_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4331 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4332 |
<xsl:text> if(this.editstr[0] == "-") |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4333 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4334 |
<xsl:text> this.editstr = this.editstr.slice(1,this.editstr.length); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4335 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4336 |
<xsl:text> else |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4337 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4338 |
<xsl:text> this.editstr = "-" + this.editstr; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4339 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4340 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4341 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4342 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4343 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4344 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4345 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4346 |
<xsl:text> on_NumDot_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4347 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4348 |
<xsl:text> if(this.editstr.indexOf(".") == "-1"){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4349 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4350 |
<xsl:text> this.editstr += "."; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4351 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4352 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4353 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4354 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4355 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4356 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4357 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4358 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4359 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4360 |
<xsl:text> on_Space_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4361 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4362 |
<xsl:text> this.editstr += " "; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4363 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4364 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4365 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4366 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4367 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4368 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4369 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4370 |
<xsl:text> caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4371 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4372 |
<xsl:text> _caps = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4373 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4374 |
<xsl:text> on_CapsLock_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4375 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4376 |
<xsl:text> this.caps = !this.caps; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4377 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4378 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4379 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4380 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4381 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4382 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4383 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4384 |
<xsl:text> shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4385 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4386 |
<xsl:text> _shift = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4387 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4388 |
<xsl:text> on_Shift_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4389 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4390 |
<xsl:text> this.shift = !this.shift; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4391 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4392 |
<xsl:text> this.caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4393 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4394 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4395 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4396 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4397 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4398 |
<xsl:text> editstr = ""; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4399 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4400 |
<xsl:text> _editstr = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4401 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4402 |
<xsl:text> result_callback_obj = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4403 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4404 |
<xsl:text> start_edit(info, valuetype, callback_obj, initial,size) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4405 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4406 |
<xsl:text> show_modal.call(this,size); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4407 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4408 |
<xsl:text> this.editstr = String(initial); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4409 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4410 |
<xsl:text> this.result_callback_obj = callback_obj; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4411 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4412 |
<xsl:text> this.Info_elt.textContent = info; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4413 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4414 |
<xsl:text> this.shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4415 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4416 |
<xsl:text> this.caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4417 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4418 |
<xsl:text> this.initial = initial; |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4419 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4420 |
<xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4421 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4422 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4423 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4424 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4425 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4426 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4427 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4428 |
<xsl:text> update() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4429 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4430 |
<xsl:text> if(this.editstr != this._editstr){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4431 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4432 |
<xsl:text> this._editstr = this.editstr; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4433 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4434 |
<xsl:text> this.Value_elt.textContent = this.editstr; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4435 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4436 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4437 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4438 |
<xsl:text> if(this.shift != this._shift){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4439 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4440 |
<xsl:text> this._shift = this.shift; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4441 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4442 |
<xsl:text> (this.shift?widget_active_activable:widget_inactive_activable)(this.Shift_sub); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4443 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4444 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4445 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4446 |
<xsl:text> if(this.caps != this._caps){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4447 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4448 |
<xsl:text> this._caps = this.caps; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4449 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4450 |
<xsl:text> (this.caps?widget_active_activable:widget_inactive_activable)(this.CapsLock_sub); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4451 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4452 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4453 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4454 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4455 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4456 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4457 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4458 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4459 |
<xsl:template mode="widget_defs" match="widget[@type='Keypad']"> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4460 |
<xsl:param name="hmi_element"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4461 |
<xsl:call-template name="defs_by_labels"> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4462 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4463 |
<xsl:with-param name="labels"> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4464 |
<xsl:text>Esc Enter BackSpace Keys Info Value</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4465 |
</xsl:with-param> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4466 |
</xsl:call-template> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4467 |
<xsl:call-template name="defs_by_labels"> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4468 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4469 |
<xsl:with-param name="labels"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4470 |
<xsl:text>Sign Space NumDot position</xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4471 |
</xsl:with-param> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4472 |
<xsl:with-param name="mandatory" select="'no'"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4473 |
</xsl:call-template> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4474 |
<xsl:call-template name="defs_by_labels"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4475 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4476 |
<xsl:with-param name="labels"> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4477 |
<xsl:text>CapsLock Shift</xsl:text> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4478 |
</xsl:with-param> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4479 |
<xsl:with-param name="mandatory" select="'no'"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4480 |
<xsl:with-param name="subelements" select="'active inactive'"/> |
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4481 |
</xsl:call-template> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
4482 |
<xsl:text> init: function() { |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
4483 |
</xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4484 |
<xsl:for-each select="$hmi_element/*[@inkscape:label = 'Keys']/*"> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4485 |
<xsl:text> id("</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4486 |
<xsl:value-of select="@id"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4487 |
<xsl:text>").setAttribute("onclick", "hmi_widgets['</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4488 |
<xsl:value-of select="$hmi_element/@id"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4489 |
<xsl:text>'].on_key_click('</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4490 |
<xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4491 |
<xsl:text>')"); |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4492 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4493 |
</xsl:for-each> |
2920
3ee337c8c769
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2919
diff
changeset
|
4494 |
<xsl:for-each select="str:split('Esc Enter BackSpace Sign Space NumDot CapsLock Shift')"> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4495 |
<xsl:text> if(this.</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4496 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4497 |
<xsl:text>_elt) |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4498 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4499 |
<xsl:text> this.</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4500 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4501 |
<xsl:text>_elt.setAttribute("onclick", "hmi_widgets['</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4502 |
<xsl:value-of select="$hmi_element/@id"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4503 |
<xsl:text>'].on_</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4504 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4505 |
<xsl:text>_click()"); |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4506 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4507 |
</xsl:for-each> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4508 |
<xsl:text> if(this.position_elt){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4509 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4510 |
<xsl:text> this.bound_on_release = this.on_release.bind(this); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4511 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4512 |
<xsl:text> this.bound_on_drag = this.on_drag.bind(this); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4513 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4514 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4515 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4516 |
<xsl:text> this.position_elt.setAttribute("onmousedown", "hmi_widgets['"+this.element_id+"'].on_position_click(evt)"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4517 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4518 |
<xsl:text> this.position_elt.setAttribute("ontouchstart", "hmi_widgets['"+this.element_id+"'].on_position_click(evt)"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4519 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4520 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4521 |
</xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4522 |
<xsl:text> }, |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4523 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4524 |
<xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4525 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4526 |
<xsl:variable name="g" select="$geometry[@Id = $hmi_element/@id]"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4527 |
<xsl:text> coordinates: [</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4528 |
<xsl:value-of select="$g/@x"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4529 |
<xsl:text>, </xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4530 |
<xsl:value-of select="$g/@y"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4531 |
<xsl:text>], |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
4532 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4533 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4534 |
<xsl:template mode="widget_defs" match="widget[@type='List']"> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4535 |
<xsl:param name="hmi_element"/> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4536 |
<xsl:text> items: { |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4537 |
</xsl:text> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4538 |
<xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4539 |
<xsl:text> </xsl:text> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4540 |
<xsl:value-of select="@inkscape:label"/> |
2997
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4541 |
<xsl:text>: "</xsl:text> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4542 |
<xsl:value-of select="@id"/> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4543 |
<xsl:text>", |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4544 |
</xsl:text> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4545 |
</xsl:for-each> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4546 |
<xsl:text> }, |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4547 |
</xsl:text> |
2f298089e32e
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2996
diff
changeset
|
4548 |
</xsl:template> |
3031
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4549 |
<xsl:template mode="widget_defs" match="widget[@type='TextStyleList']"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4550 |
<xsl:param name="hmi_element"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4551 |
<xsl:text> styles: { |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4552 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4553 |
<xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4554 |
<xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4555 |
<xsl:text> </xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4556 |
<xsl:value-of select="@inkscape:label"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4557 |
<xsl:text>: "</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4558 |
<xsl:value-of select="$style"/> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4559 |
<xsl:text>", |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4560 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4561 |
</xsl:for-each> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4562 |
<xsl:text> }, |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4563 |
</xsl:text> |
440d74319a74
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant
parents:
3026
diff
changeset
|
4564 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4565 |
<xsl:template mode="widget_class" match="widget[@type='Meter']"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4566 |
<xsl:text>class MeterWidget extends Widget{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4567 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4568 |
<xsl:text> frequency = 10; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4569 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4570 |
<xsl:text> origin = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4571 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4572 |
<xsl:text> range = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4573 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4574 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4575 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4576 |
<xsl:text> dispatch(value) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4577 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4578 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4579 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4580 |
<xsl:text> this.value_elt.textContent = String(value); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4581 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4582 |
<xsl:text> let [min,max,totallength] = this.range; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4583 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4584 |
<xsl:text> let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4585 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4586 |
<xsl:text> let tip = this.range_elt.getPointAtLength(length); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4587 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4588 |
<xsl:text> this.needle_elt.setAttribute('d', "M "+this.origin.x+","+this.origin.y+" "+tip.x+","+tip.y); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4589 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4590 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4591 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4592 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4593 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4594 |
<xsl:text> init() { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4595 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4596 |
<xsl:text> let min = this.min_elt ? |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4597 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4598 |
<xsl:text> Number(this.min_elt.textContent) : |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4599 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4600 |
<xsl:text> this.args.length >= 1 ? this.args[0] : 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4601 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4602 |
<xsl:text> let max = this.max_elt ? |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4603 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4604 |
<xsl:text> Number(this.max_elt.textContent) : |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4605 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4606 |
<xsl:text> this.args.length >= 2 ? this.args[1] : 100; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4607 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4608 |
<xsl:text> this.range = [min, max, this.range_elt.getTotalLength()] |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4609 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4610 |
<xsl:text> this.origin = this.needle_elt.getPointAtLength(0); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4611 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4612 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4613 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4614 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4615 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4616 |
<xsl:text>} |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4617 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4618 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4619 |
<xsl:template mode="widget_defs" match="widget[@type='Meter']"> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4620 |
<xsl:param name="hmi_element"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4621 |
<xsl:call-template name="defs_by_labels"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4622 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4623 |
<xsl:with-param name="labels"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4624 |
<xsl:text>needle range</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4625 |
</xsl:with-param> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4626 |
</xsl:call-template> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4627 |
<xsl:call-template name="defs_by_labels"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4628 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4629 |
<xsl:with-param name="labels"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4630 |
<xsl:text>value min max</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4631 |
</xsl:with-param> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4632 |
<xsl:with-param name="mandatory" select="'no'"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
4633 |
</xsl:call-template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4634 |
<xsl:text> |
2800
68cee1366b9c
SVGHMI: dispatching data to minimalist "Display" text widget.
Edouard Tisserant
parents:
2799
diff
changeset
|
4635 |
</xsl:text> |
2797
c5ba1e77f054
SVGHMI: added a widgets description object, accessed by id. Added frequency to widgets, as separate template to allow future customization. Excluded non svg elements (i.e inkscape Sets) with HMI: labels from widgets.
Edouard Tisserant
parents:
2796
diff
changeset
|
4636 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4637 |
<xsl:template mode="widget_class" match="widget[@type='MultiState']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4638 |
<xsl:text>class MultiStateWidget extends Widget{ |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4639 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4640 |
<xsl:text> frequency = 5; |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4641 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4642 |
<xsl:text> state = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4643 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4644 |
<xsl:text> dispatch(value) { |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4645 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4646 |
<xsl:text> this.state = value; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4647 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4648 |
<xsl:text> for(let choice of this.choices){ |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4649 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4650 |
<xsl:text> if(this.state != choice.value){ |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4651 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4652 |
<xsl:text> choice.elt.setAttribute("style", "display:none"); |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4653 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4654 |
<xsl:text> } else { |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4655 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4656 |
<xsl:text> choice.elt.setAttribute("style", choice.style); |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4657 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4658 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4659 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4660 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4661 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4662 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4663 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4664 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4665 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4666 |
<xsl:text> on_click(evt) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4667 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4668 |
<xsl:text> //get current selected value |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4669 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4670 |
<xsl:text> let next_ind; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4671 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4672 |
<xsl:text> for(next_ind=0; next_ind<this.choices.length; next_ind++){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4673 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4674 |
<xsl:text> if(this.state == this.choices[next_ind].value){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4675 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4676 |
<xsl:text> next_ind = next_ind + 1; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4677 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4678 |
<xsl:text> break; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4679 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4680 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4681 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4682 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4683 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4684 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4685 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4686 |
<xsl:text> //get next selected value |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4687 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4688 |
<xsl:text> if(this.choices.length > next_ind){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4689 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4690 |
<xsl:text> this.state = this.choices[next_ind].value; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4691 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4692 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4693 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4694 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4695 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4696 |
<xsl:text> this.state = this.choices[0].value; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4697 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4698 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4699 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4700 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4701 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4702 |
<xsl:text> //post value to plc |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4703 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4704 |
<xsl:text> this.apply_hmi_value(0, this.state); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4705 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4706 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4707 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4708 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4709 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4710 |
<xsl:text> init() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4711 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4712 |
<xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4713 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4714 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4715 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4716 |
<xsl:text>} |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4717 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
4718 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4719 |
<xsl:template mode="widget_defs" match="widget[@type='MultiState']"> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4720 |
<xsl:param name="hmi_element"/> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4721 |
<xsl:text> choices: [ |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4722 |
</xsl:text> |
2907
1695122a5e16
SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false'
Edouard Tisserant
parents:
2906
diff
changeset
|
4723 |
<xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
2969
88988edb2e93
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant
parents:
2962
diff
changeset
|
4724 |
<xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]"> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4725 |
<xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4726 |
<xsl:text> { |
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4727 |
</xsl:text> |
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4728 |
<xsl:text> elt:id("</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4729 |
<xsl:value-of select="@id"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4730 |
<xsl:text>"), |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4731 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4732 |
<xsl:text> style:"</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4733 |
<xsl:value-of select="@style"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4734 |
<xsl:text>", |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4735 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4736 |
<xsl:text> value:</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4737 |
<xsl:value-of select="$literal"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4738 |
<xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4739 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4740 |
<xsl:text> }</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4741 |
<xsl:if test="position()!=last()"> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4742 |
<xsl:text>,</xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4743 |
</xsl:if> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4744 |
<xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4745 |
</xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
4746 |
</xsl:for-each> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4747 |
<xsl:text> ], |
2801
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
4748 |
</xsl:text> |
390acff12755
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant
parents:
2800
diff
changeset
|
4749 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4750 |
<xsl:template mode="widget_class" match="widget[@type='Slider']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4751 |
<xsl:text>class SliderWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4752 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4753 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4754 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4755 |
<xsl:text> range = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4756 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4757 |
<xsl:text> handle_orig = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4758 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4759 |
<xsl:text> scroll_size = 10; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4760 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4761 |
<xsl:text> min_size = 0.07; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4762 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4763 |
<xsl:text> fi = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4764 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4765 |
<xsl:text> curr_value = 0; |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4766 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4767 |
<xsl:text> drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4768 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4769 |
<xsl:text> enTimer = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4770 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4771 |
<xsl:text> handle_click = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4772 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4773 |
<xsl:text> last_drag = false; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4774 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4775 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4776 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4777 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4778 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4779 |
<xsl:text> //save current value inside widget |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4780 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4781 |
<xsl:text> this.curr_value = value; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4782 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4783 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4784 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4785 |
<xsl:text> if(this.value_elt) |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4786 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4787 |
<xsl:text> this.value_elt.textContent = String(value); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4788 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4789 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4790 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4791 |
<xsl:text> //don't update if draging and setpoint ghost doesn't exist |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4792 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4793 |
<xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4794 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4795 |
<xsl:text> this.update_DOM(value, this.handle_elt); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4796 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4797 |
<xsl:text> } |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4798 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4799 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4800 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4801 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4802 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4803 |
<xsl:text> update_DOM(value, elt){ |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4804 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4805 |
<xsl:text> let [min,max,start,totallength] = this.range; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4806 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4807 |
<xsl:text> // check if handle is resizeable |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4808 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4809 |
<xsl:text> if (this.scroll_size != undefined){ //size changes |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4810 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4811 |
<xsl:text> //get parameters |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4812 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4813 |
<xsl:text> let length = Math.max(min,Math.min(max,(Number(value)-min)*max/(max-min))); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4814 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4815 |
<xsl:text> let tip = this.range_elt.getPointAtLength(length); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4816 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4817 |
<xsl:text> let handle_min = totallength*this.min_size; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4818 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4819 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4820 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4821 |
<xsl:text> let step = 1; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4822 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4823 |
<xsl:text> //check if range is bigger than max displayed and recalculate step |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4824 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4825 |
<xsl:text> if ((totallength/handle_min) < (max-min+1)){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4826 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4827 |
<xsl:text> step = (max-min+1)/(totallength/handle_min-1); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4828 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4829 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4830 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4831 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4832 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4833 |
<xsl:text> let kx,ky,offseY,offseX = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4834 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4835 |
<xsl:text> //scale on x or y axes |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4836 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4837 |
<xsl:text> if (this.fi > 0.75){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4838 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4839 |
<xsl:text> //get scale factor |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4840 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4841 |
<xsl:text> if(step > 1){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4842 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4843 |
<xsl:text> ky = handle_min/this.handle_orig.height; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4844 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4845 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4846 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4847 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4848 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4849 |
<xsl:text> ky = (totallength-handle_min*(max-min))/this.handle_orig.height; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4850 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4851 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4852 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4853 |
<xsl:text> kx = 1; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4854 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4855 |
<xsl:text> //get 0 offset to stay inside range |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4856 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4857 |
<xsl:text> offseY = start.y - (this.handle_orig.height + this.handle_orig.y) * ky; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4858 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4859 |
<xsl:text> offseX = 0; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4860 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4861 |
<xsl:text> //get distance from value |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4862 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4863 |
<xsl:text> tip.y =this.range_elt.getPointAtLength(0).y - length/step *handle_min; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4864 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4865 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4866 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4867 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4868 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4869 |
<xsl:text> //get scale factor |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4870 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4871 |
<xsl:text> if(step > 1){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4872 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4873 |
<xsl:text> kx = handle_min/this.handle_orig.width; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4874 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4875 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4876 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4877 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4878 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4879 |
<xsl:text> kx = (totallength-handle_min*(max-min))/this.handle_orig.width; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4880 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4881 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4882 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4883 |
<xsl:text> ky = 1; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4884 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4885 |
<xsl:text> //get 0 offset to stay inside range |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4886 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4887 |
<xsl:text> offseX = start.x - (this.handle_orig.x * kx); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4888 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4889 |
<xsl:text> offseY = 0; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4890 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4891 |
<xsl:text> //get distance from value |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4892 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4893 |
<xsl:text> tip.x =this.range_elt.getPointAtLength(0).x + length/step *handle_min; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4894 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4895 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4896 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4897 |
<xsl:text> elt.setAttribute('transform',"matrix("+(kx)+" 0 0 "+(ky)+" "+(tip.x-start.x+offseX)+" "+(tip.y-start.y+offseY)+")"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4898 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4899 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4900 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4901 |
<xsl:text> else{ //size stays the same |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4902 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4903 |
<xsl:text> let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4904 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4905 |
<xsl:text> let tip = this.range_elt.getPointAtLength(length); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4906 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4907 |
<xsl:text> elt.setAttribute('transform',"translate("+(tip.x-start.x)+","+(tip.y-start.y)+")"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4908 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4909 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4910 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4911 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4912 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4913 |
<xsl:text> // show or hide ghost if exists |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4914 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4915 |
<xsl:text> if(this.setpoint_elt != undefined){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4916 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4917 |
<xsl:text> if(this.last_drag!= this.drag){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4918 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4919 |
<xsl:text> if(this.drag){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4920 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4921 |
<xsl:text> this.setpoint_elt.setAttribute("style", this.setpoint_style); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4922 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4923 |
<xsl:text> }else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4924 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4925 |
<xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4926 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4927 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4928 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4929 |
<xsl:text> this.last_drag = this.drag; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4930 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4931 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4932 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4933 |
<xsl:text> } |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4934 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4935 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4936 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4937 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4938 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4939 |
<xsl:text> on_release(evt) { |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4940 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4941 |
<xsl:text> //unbind events |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4942 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4943 |
<xsl:text> window.removeEventListener("touchmove", this.on_bound_drag, true); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4944 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4945 |
<xsl:text> window.removeEventListener("mousemove", this.on_bound_drag, true); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4946 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4947 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4948 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4949 |
<xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true) |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4950 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4951 |
<xsl:text> window.removeEventListener("touchend", this.bound_on_release, true); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4952 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4953 |
<xsl:text> window.removeEventListener("touchcancel", this.bound_on_release, true); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4954 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4955 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4956 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4957 |
<xsl:text> //reset drag flag |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4958 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4959 |
<xsl:text> if(this.drag){ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4960 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4961 |
<xsl:text> this.drag = false; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4962 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4963 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4964 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4965 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4966 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4967 |
<xsl:text> // get final position |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4968 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4969 |
<xsl:text> this.update_position(evt); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4970 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4971 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4972 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4973 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4974 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4975 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4976 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4977 |
<xsl:text> on_drag(evt){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4978 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4979 |
<xsl:text> //ignore drag event for X amount of time and if not selected |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4980 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4981 |
<xsl:text> if(this.enTimer && this.drag){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4982 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4983 |
<xsl:text> this.update_position(evt); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4984 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4985 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
4986 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4987 |
<xsl:text> //reset timer |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4988 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4989 |
<xsl:text> this.enTimer = false; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4990 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4991 |
<xsl:text> setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4992 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4993 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
4994 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4995 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4996 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4997 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
4998 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
4999 |
<xsl:text> update_position(evt){ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5000 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5001 |
<xsl:text> var html_dist = 0; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5002 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5003 |
<xsl:text> let [min,max,start,totallength] = this.range; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5004 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5005 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5006 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5007 |
<xsl:text> //calculate size of widget in html |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5008 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5009 |
<xsl:text> var range_borders = this.range_elt.getBoundingClientRect(); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5010 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5011 |
<xsl:text> var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5012 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5013 |
<xsl:text> var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5014 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5015 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5016 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5017 |
<xsl:text> //get range and mouse coordinates |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5018 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5019 |
<xsl:text> var mouseX = undefined; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5020 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5021 |
<xsl:text> var mouseY = undefined; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5022 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5023 |
<xsl:text> if (evt.type.startsWith("touch")){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5024 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5025 |
<xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5026 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5027 |
<xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5028 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5029 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5030 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5031 |
<xsl:text> else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5032 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5033 |
<xsl:text> mouseX = evt.pageX; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5034 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5035 |
<xsl:text> mouseY = evt.pageY; |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5036 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5037 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5038 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5039 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5040 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5041 |
<xsl:text> // calculate position |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5042 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5043 |
<xsl:text> if (this.handle_click){ //if clicked on handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5044 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5045 |
<xsl:text> let moveDist = 0, resizeAdd = 0; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5046 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5047 |
<xsl:text> let range_percent = 1; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5048 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5049 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5050 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5051 |
<xsl:text> //set paramters for resizeable handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5052 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5053 |
<xsl:text> if (this.scroll_size != undefined){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5054 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5055 |
<xsl:text> // add one more object to stay inside range |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5056 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5057 |
<xsl:text> resizeAdd = 1; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5058 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5059 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5060 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5061 |
<xsl:text> //chack if range is bigger than display option and |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5062 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5063 |
<xsl:text> // calculate percent of range with out handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5064 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5065 |
<xsl:text> if(((max/(max*this.min_size)) < (max-min+1))){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5066 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5067 |
<xsl:text> range_percent = 1-this.min_size; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5068 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5069 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5070 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5071 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5072 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5073 |
<xsl:text> range_percent = 1-(max-max*this.min_size*(max-min))/max; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5074 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5075 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5076 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5077 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5078 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5079 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5080 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5081 |
<xsl:text> //calculate value difference on x or y axis |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5082 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5083 |
<xsl:text> if(this.fi > 0.7){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5084 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5085 |
<xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((this.handle_click[1]-mouseY)/Math.sin(this.fi)); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5086 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5087 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5088 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5089 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5090 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5091 |
<xsl:text> moveDist = ((max-min+resizeAdd)/(range_length*range_percent))*((mouseX-this.handle_click[0])/Math.cos(this.fi)); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5092 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5093 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5094 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5095 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5096 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5097 |
<xsl:text> this.curr_value = Math.ceil(this.handle_click[2] + moveDist); |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5098 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5099 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5100 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5101 |
<xsl:text> else{ //if clicked on widget |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5102 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5103 |
<xsl:text> //get handle distance from mouse position |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5104 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5105 |
<xsl:text> if (minX > mouseX && minY < mouseY){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5106 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5107 |
<xsl:text> html_dist = 0; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5108 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5109 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5110 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5111 |
<xsl:text> else if (maxX < mouseX && maxY > mouseY){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5112 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5113 |
<xsl:text> html_dist = range_length; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5114 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5115 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5116 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5117 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5118 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5119 |
<xsl:text> if(this.fi > 0.7){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5120 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5121 |
<xsl:text> html_dist = (minY - mouseY)/Math.sin(this.fi); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5122 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5123 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5124 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5125 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5126 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5127 |
<xsl:text> html_dist = (mouseX - minX)/Math.cos(this.fi); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5128 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5129 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5130 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5131 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5132 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5133 |
<xsl:text> //calculate distance |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5134 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5135 |
<xsl:text> this.curr_value=Math.ceil((html_dist/range_length)*(this.range[1]-this.range[0])+this.range[0]); |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5136 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5137 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5138 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5139 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5140 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5141 |
<xsl:text> //check if in range |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5142 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5143 |
<xsl:text> if (this.curr_value > max){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5144 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5145 |
<xsl:text> this.curr_value = max; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5146 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5147 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5148 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5149 |
<xsl:text> else if (this.curr_value < min){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5150 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5151 |
<xsl:text> this.curr_value = min; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5152 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5153 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5154 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5155 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5156 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5157 |
<xsl:text> this.apply_hmi_value(0, this.curr_value); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5158 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5159 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5160 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5161 |
<xsl:text> //redraw handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5162 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5163 |
<xsl:text> this.request_animate(); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5164 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5165 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5166 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5167 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5168 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5169 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5170 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5171 |
<xsl:text> animate(){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5172 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5173 |
<xsl:text> // redraw handle on screen refresh |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5174 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5175 |
<xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5176 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5177 |
<xsl:text> if(this.setpoint_elt != undefined){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5178 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5179 |
<xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5180 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5181 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5182 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5183 |
<xsl:text> else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5184 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5185 |
<xsl:text> this.update_DOM(this.curr_value, this.handle_elt); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5186 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5187 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5188 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5189 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5190 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5191 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5192 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5193 |
<xsl:text> on_select(evt){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5194 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5195 |
<xsl:text> //enable drag flag and timer |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5196 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5197 |
<xsl:text> this.drag = true; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5198 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5199 |
<xsl:text> this.enTimer = true; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5200 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5201 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5202 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5203 |
<xsl:text> //bind events |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5204 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5205 |
<xsl:text> window.addEventListener("touchmove", this.on_bound_drag, true); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5206 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5207 |
<xsl:text> window.addEventListener("mousemove", this.on_bound_drag, true); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5208 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5209 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5210 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5211 |
<xsl:text> window.addEventListener("mouseup", this.bound_on_release, true) |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5212 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5213 |
<xsl:text> window.addEventListener("touchend", this.bound_on_release, true); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5214 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5215 |
<xsl:text> window.addEventListener("touchcancel", this.bound_on_release, true); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5216 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5217 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5218 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5219 |
<xsl:text> // check if handle was pressed |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5220 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5221 |
<xsl:text> if (evt.currentTarget == this.handle_elt){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5222 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5223 |
<xsl:text> //get mouse position on the handle |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5224 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5225 |
<xsl:text> let mouseX = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5226 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5227 |
<xsl:text> let mouseY = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5228 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5229 |
<xsl:text> if (evt.type.startsWith("touch")){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5230 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5231 |
<xsl:text> mouseX = Math.ceil(evt.touches[0].clientX); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5232 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5233 |
<xsl:text> mouseY = Math.ceil(evt.touches[0].clientY); |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5234 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5235 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5236 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5237 |
<xsl:text> else{ |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5238 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5239 |
<xsl:text> mouseX = evt.pageX; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5240 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5241 |
<xsl:text> mouseY = evt.pageY; |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5242 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5243 |
<xsl:text> } |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5244 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5245 |
<xsl:text> //save coordinates and orig value |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5246 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5247 |
<xsl:text> this.handle_click = [mouseX,mouseY,this.curr_value]; |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5248 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5249 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5250 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5251 |
<xsl:text> else{ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5252 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5253 |
<xsl:text> // get new handle position and reset if handle was not pressed |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5254 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5255 |
<xsl:text> this.handle_click = undefined; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5256 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5257 |
<xsl:text> this.update_position(evt); |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5258 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5259 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5260 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5261 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5262 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5263 |
<xsl:text> //prevent next events |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5264 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5265 |
<xsl:text> evt.stopPropagation(); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5266 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5267 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5268 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5269 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5270 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5271 |
<xsl:text> init() { |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5272 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5273 |
<xsl:text> //set min max value if not defined |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5274 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5275 |
<xsl:text> let min = this.min_elt ? |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5276 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5277 |
<xsl:text> Number(this.min_elt.textContent) : |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5278 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5279 |
<xsl:text> this.args.length >= 1 ? this.args[0] : 0; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5280 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5281 |
<xsl:text> let max = this.max_elt ? |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5282 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5283 |
<xsl:text> Number(this.max_elt.textContent) : |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5284 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5285 |
<xsl:text> this.args.length >= 2 ? this.args[1] : 100; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5286 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5287 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5288 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5289 |
<xsl:text> // save initial parameters |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5290 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5291 |
<xsl:text> this.range_elt.style.strokeMiterlimit="0"; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5292 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5293 |
<xsl:text> this.range = [min, max, this.range_elt.getPointAtLength(0),this.range_elt.getTotalLength()]; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5294 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5295 |
<xsl:text> let start = this.range_elt.getPointAtLength(0); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5296 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5297 |
<xsl:text> let end = this.range_elt.getPointAtLength(this.range_elt.getTotalLength()); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5298 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5299 |
<xsl:text> this.fi = Math.atan2(start.y-end.y, end.x-start.x); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5300 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5301 |
<xsl:text> this.handle_orig = this.handle_elt.getBBox(); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5302 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5303 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5304 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5305 |
<xsl:text> //bind functions |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5306 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5307 |
<xsl:text> this.bound_on_select = this.on_select.bind(this); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5308 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5309 |
<xsl:text> this.bound_on_release = this.on_release.bind(this); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5310 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5311 |
<xsl:text> this.on_bound_drag = this.on_drag.bind(this); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5312 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5313 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5314 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5315 |
<xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5316 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5317 |
<xsl:text> this.element.addEventListener("mousedown", this.bound_on_select); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5318 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5319 |
<xsl:text> this.element.addEventListener("touchstart", this.bound_on_select); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5320 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5321 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5322 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5323 |
<xsl:text> if(this.setpoint_elt != undefined){ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5324 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5325 |
<xsl:text> this.setpoint_style = this.setpoint_elt.getAttribute("style"); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5326 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5327 |
<xsl:text> this.setpoint_elt.setAttribute("style", "display:none"); |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5328 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5329 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5330 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5331 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5332 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5333 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5334 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5335 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5336 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5337 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5338 |
<xsl:template mode="widget_defs" match="widget[@type='Slider']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5339 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5340 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5341 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5342 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5343 |
<xsl:text>handle range</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5344 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5345 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5346 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5347 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5348 |
<xsl:with-param name="labels"> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
5349 |
<xsl:text>value min max setpoint</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5350 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5351 |
<xsl:with-param name="mandatory" select="'no'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5352 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5353 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5354 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5355 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5356 |
<xsl:template mode="widget_class" match="widget[@type='Switch']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5357 |
<xsl:text>class SwitchWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5358 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5359 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5360 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5361 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5362 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5363 |
<xsl:text> for(let choice of this.choices){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5364 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5365 |
<xsl:text> if(value != choice.value){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5366 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5367 |
<xsl:text> choice.elt.setAttribute("style", "display:none"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5368 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5369 |
<xsl:text> } else { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5370 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5371 |
<xsl:text> choice.elt.setAttribute("style", choice.style); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5372 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5373 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5374 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5375 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5376 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5377 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5378 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5379 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5380 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5381 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5382 |
<xsl:template mode="widget_defs" match="widget[@type='Switch']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5383 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5384 |
<xsl:text> choices: [ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5385 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5386 |
<xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5387 |
<xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5388 |
<xsl:variable name="literal" select="regexp:match(@inkscape:label,$regex)[2]"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5389 |
<xsl:text> { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5390 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5391 |
<xsl:text> elt:id("</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5392 |
<xsl:value-of select="@id"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5393 |
<xsl:text>"), |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5394 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5395 |
<xsl:text> style:"</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5396 |
<xsl:value-of select="@style"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5397 |
<xsl:text>", |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5398 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5399 |
<xsl:text> value:</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5400 |
<xsl:value-of select="$literal"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5401 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5402 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5403 |
<xsl:text> }</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5404 |
<xsl:if test="position()!=last()"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5405 |
<xsl:text>,</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5406 |
</xsl:if> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5407 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5408 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5409 |
</xsl:for-each> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5410 |
<xsl:text> ], |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5411 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5412 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5413 |
<xsl:template mode="widget_class" match="widget[@type='ToggleButton']"> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5414 |
<xsl:text>class ToggleButtonWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5415 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5416 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5417 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5418 |
<xsl:text> state = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5419 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5420 |
<xsl:text> active_style = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5421 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5422 |
<xsl:text> inactive_style = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5423 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5424 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5425 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5426 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5427 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5428 |
<xsl:text> if(this.state != value){ |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5429 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5430 |
<xsl:text> this.state = value; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5431 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5432 |
<xsl:text> if (this.state) { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5433 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5434 |
<xsl:text> this.active_elt.setAttribute("style", this.active_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5435 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5436 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5437 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5438 |
<xsl:text> } else { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5439 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5440 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5441 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5442 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5443 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5444 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5445 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5446 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5447 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5448 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5449 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5450 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5451 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5452 |
<xsl:text> on_click(evt) { |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5453 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5454 |
<xsl:text> if (this.state) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5455 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5456 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5457 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5458 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5459 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5460 |
<xsl:text> this.state = 0; |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5461 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5462 |
<xsl:text> } else { |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5463 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5464 |
<xsl:text> this.active_elt.setAttribute("style", this.active_style); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5465 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5466 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5467 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5468 |
<xsl:text> this.state = 1; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5469 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5470 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5471 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5472 |
<xsl:text> this.apply_hmi_value(0, this.state); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5473 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5474 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5475 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5476 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5477 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5478 |
<xsl:text> init() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5479 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5480 |
<xsl:text> this.active_style = this.active_elt.style.cssText; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5481 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5482 |
<xsl:text> this.inactive_style = this.inactive_elt.style.cssText; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5483 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5484 |
<xsl:text> this.element.setAttribute("onclick", "hmi_widgets['"+this.element_id+"'].on_click(evt)"); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5485 |
</xsl:text> |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5486 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5487 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5488 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
5489 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5490 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5491 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5492 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5493 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5494 |
</xsl:template> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5495 |
<xsl:template mode="widget_defs" match="widget[@type='ToggleButton']"> |
2977 | 5496 |
<xsl:param name="hmi_element"/> |
5497 |
<xsl:call-template name="defs_by_labels"> |
|
5498 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
5499 |
<xsl:with-param name="labels"> |
|
5500 |
<xsl:text>active inactive</xsl:text> |
|
5501 |
</xsl:with-param> |
|
5502 |
</xsl:call-template> |
|
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5503 |
<xsl:text> |
2977 | 5504 |
</xsl:text> |
5505 |
</xsl:template> |
|
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5506 |
<xsl:template match="/"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5507 |
<xsl:comment> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5508 |
<xsl:text>Made with SVGHMI. https://beremiz.org</xsl:text> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5509 |
</xsl:comment> |
2949
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
5510 |
<xsl:comment> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
5511 |
<xsl:apply-templates select="document('')/*/debug:*"/> |
e50908ddec60
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2944
diff
changeset
|
5512 |
</xsl:comment> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5513 |
<html xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml"> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5514 |
<head/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5515 |
<body style="margin:0;overflow:hidden;"> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5516 |
<xsl:copy-of select="$result_svg"/> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
5517 |
<script> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5518 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5519 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5520 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5521 |
// Early independent declarations |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5522 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5523 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5524 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5525 |
<xsl:apply-templates select="document('')/*/preamble:*"/> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5526 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5527 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5528 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5529 |
// Declarations depending on preamble |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5530 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5531 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5532 |
</xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5533 |
<xsl:apply-templates select="document('')/*/declarations:*"/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5534 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5535 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5536 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5537 |
// Order independent declaration and code |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5538 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5539 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5540 |
</xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5541 |
<xsl:apply-templates select="document('')/*/definitions:*"/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5542 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5543 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5544 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5545 |
// Statements that needs to be at the end |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5546 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5547 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5548 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5549 |
<xsl:apply-templates select="document('')/*/epilogue:*"/> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5550 |
<xsl:text>// svghmi.js |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5551 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5552 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5553 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5554 |
<xsl:text>var updates = {}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5555 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5556 |
<xsl:text>var need_cache_apply = []; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5557 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5558 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5559 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5560 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5561 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5562 |
<xsl:text>function dispatch_value(index, value) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5563 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5564 |
<xsl:text> let widgets = subscribers(index); |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5565 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5566 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5567 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5568 |
<xsl:text> let oldval = cache[index]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5569 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5570 |
<xsl:text> cache[index] = value; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5571 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5572 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5573 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5574 |
<xsl:text> if(widgets.size > 0) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5575 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5576 |
<xsl:text> for(let widget of widgets){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5577 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5578 |
<xsl:text> widget.new_hmi_value(index, value, oldval); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5579 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5580 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5581 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5582 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5583 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5584 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5585 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5586 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5587 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5588 |
<xsl:text>function init_widgets() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5589 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5590 |
<xsl:text> Object.keys(hmi_widgets).forEach(function(id) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5591 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5592 |
<xsl:text> let widget = hmi_widgets[id]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5593 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5594 |
<xsl:text> let init = widget.init; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5595 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5596 |
<xsl:text> if(typeof(init) == "function"){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5597 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5598 |
<xsl:text> try { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5599 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5600 |
<xsl:text> init.call(widget); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5601 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5602 |
<xsl:text> } catch(err) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5603 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5604 |
<xsl:text> console.log(err); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5605 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5606 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5607 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5608 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5609 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5610 |
<xsl:text> }); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5611 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5612 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5613 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5614 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5615 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5616 |
<xsl:text>// Open WebSocket to relative "/ws" address |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5617 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5618 |
<xsl:text>var ws = new WebSocket(window.location.href.replace(/^http(s?:\/\/[^\/]*)\/.*$/, 'ws$1/ws')); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5619 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5620 |
<xsl:text>ws.binaryType = 'arraybuffer'; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5621 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5622 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5623 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5624 |
<xsl:text>const dvgetters = { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5625 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5626 |
<xsl:text> INT: (dv,offset) => [dv.getInt16(offset, true), 2], |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5627 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5628 |
<xsl:text> BOOL: (dv,offset) => [dv.getInt8(offset, true), 1], |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5629 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5630 |
<xsl:text> NODE: (dv,offset) => [dv.getInt8(offset, true), 1], |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5631 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5632 |
<xsl:text> STRING: (dv, offset) => { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5633 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5634 |
<xsl:text> size = dv.getInt8(offset); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5635 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5636 |
<xsl:text> return [ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5637 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5638 |
<xsl:text> String.fromCharCode.apply(null, new Uint8Array( |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5639 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5640 |
<xsl:text> dv.buffer, /* original buffer */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5641 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5642 |
<xsl:text> offset + 1, /* string starts after size*/ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5643 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5644 |
<xsl:text> size /* size of string */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5645 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5646 |
<xsl:text> )), size + 1]; /* total increment */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5647 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5648 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5649 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5650 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5651 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5652 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5653 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5654 |
<xsl:text>// Apply updates recieved through ws.onmessage to subscribed widgets |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5655 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5656 |
<xsl:text>function apply_updates() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5657 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5658 |
<xsl:text> for(let index in updates){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5659 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5660 |
<xsl:text> // serving as a key, index becomes a string |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5661 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5662 |
<xsl:text> // -> pass Number(index) instead |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5663 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5664 |
<xsl:text> dispatch_value(Number(index), updates[index]); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5665 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5666 |
<xsl:text> delete updates[index]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5667 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5668 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5669 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5670 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5671 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5672 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5673 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5674 |
<xsl:text>// Called on requestAnimationFrame, modifies DOM |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5675 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5676 |
<xsl:text>var requestAnimationFrameID = null; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5677 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5678 |
<xsl:text>function animate() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5679 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5680 |
<xsl:text> // Do the page swith if any one pending |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5681 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5682 |
<xsl:text> if(current_subscribed_page != current_visible_page){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5683 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5684 |
<xsl:text> switch_visible_page(current_subscribed_page); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5685 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5686 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5687 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5688 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5689 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5690 |
<xsl:text> while(widget = need_cache_apply.pop()){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5691 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5692 |
<xsl:text> widget.apply_cache(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5693 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5694 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5695 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5696 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5697 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5698 |
<xsl:text> if(jumps_need_update) update_jumps(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5699 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5700 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5701 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5702 |
<xsl:text> apply_updates(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5703 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5704 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5705 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5706 |
<xsl:text> pending_widget_animates.forEach(widget => widget._animate()); |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5707 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5708 |
<xsl:text> pending_widget_animates = []; |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5709 |
</xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5710 |
<xsl:text> |
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
5711 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5712 |
<xsl:text> requestAnimationFrameID = null; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5713 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5714 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5715 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5716 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5717 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5718 |
<xsl:text>function requestHMIAnimation() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5719 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5720 |
<xsl:text> if(requestAnimationFrameID == null){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5721 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5722 |
<xsl:text> requestAnimationFrameID = window.requestAnimationFrame(animate); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5723 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5724 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5725 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5726 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5727 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5728 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5729 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5730 |
<xsl:text>// Message reception handler |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5731 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5732 |
<xsl:text>// Hash is verified and HMI values updates resulting from binary parsing |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5733 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5734 |
<xsl:text>// are stored until browser can compute next frame, DOM is left untouched |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5735 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5736 |
<xsl:text>ws.onmessage = function (evt) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5737 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5738 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5739 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5740 |
<xsl:text> let data = evt.data; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5741 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5742 |
<xsl:text> let dv = new DataView(data); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5743 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5744 |
<xsl:text> let i = 0; |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5745 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5746 |
<xsl:text> try { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5747 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5748 |
<xsl:text> for(let hash_int of hmi_hash) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5749 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5750 |
<xsl:text> if(hash_int != dv.getUint8(i)){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5751 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5752 |
<xsl:text> throw new Error("Hash doesn't match"); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5753 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5754 |
<xsl:text> }; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5755 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5756 |
<xsl:text> i++; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5757 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5758 |
<xsl:text> }; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5759 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5760 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5761 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5762 |
<xsl:text> while(i < data.byteLength){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5763 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5764 |
<xsl:text> let index = dv.getUint32(i, true); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5765 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5766 |
<xsl:text> i += 4; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5767 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5768 |
<xsl:text> let iectype = hmitree_types[index]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5769 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5770 |
<xsl:text> if(iectype != undefined){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5771 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5772 |
<xsl:text> let dvgetter = dvgetters[iectype]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5773 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5774 |
<xsl:text> let [value, bytesize] = dvgetter(dv,i); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5775 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5776 |
<xsl:text> updates[index] = value; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5777 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5778 |
<xsl:text> i += bytesize; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5779 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5780 |
<xsl:text> } else { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5781 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5782 |
<xsl:text> throw new Error("Unknown index "+index); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5783 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5784 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5785 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5786 |
<xsl:text> }; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5787 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5788 |
<xsl:text> // register for rendering on next frame, since there are updates |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5789 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5790 |
<xsl:text> requestHMIAnimation(); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5791 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5792 |
<xsl:text> } catch(err) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5793 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5794 |
<xsl:text> // 1003 is for "Unsupported Data" |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5795 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5796 |
<xsl:text> // ws.close(1003, err.message); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5797 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5798 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5799 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5800 |
<xsl:text> // TODO : remove debug alert ? |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5801 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5802 |
<xsl:text> alert("Error : "+err.message+"\nHMI will be reloaded."); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5803 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5804 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5805 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5806 |
<xsl:text> // force reload ignoring cache |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5807 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5808 |
<xsl:text> location.reload(true); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5809 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5810 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5811 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5812 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5813 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5814 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5815 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5816 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5817 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5818 |
<xsl:text>function send_blob(data) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5819 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5820 |
<xsl:text> if(data.length > 0) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5821 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5822 |
<xsl:text> ws.send(new Blob([new Uint8Array(hmi_hash)].concat(data))); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5823 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5824 |
<xsl:text> }; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5825 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5826 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5827 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5828 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5829 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5830 |
<xsl:text>const typedarray_types = { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5831 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5832 |
<xsl:text> INT: (number) => new Int16Array([number]), |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5833 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5834 |
<xsl:text> BOOL: (truth) => new Int16Array([truth]), |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5835 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5836 |
<xsl:text> NODE: (truth) => new Int16Array([truth]), |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5837 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5838 |
<xsl:text> STRING: (str) => { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5839 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5840 |
<xsl:text> // beremiz default string max size is 128 |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5841 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5842 |
<xsl:text> str = str.slice(0,128); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5843 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5844 |
<xsl:text> binary = new Uint8Array(str.length + 1); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5845 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5846 |
<xsl:text> binary[0] = str.length; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5847 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5848 |
<xsl:text> for(var i = 0; i < str.length; i++){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5849 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5850 |
<xsl:text> binary[i+1] = str.charCodeAt(i); |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5851 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5852 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5853 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5854 |
<xsl:text> return binary; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5855 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5856 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5857 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5858 |
<xsl:text> /* TODO */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5859 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5860 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5861 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5862 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5863 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5864 |
<xsl:text>function send_reset() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5865 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5866 |
<xsl:text> send_blob(new Uint8Array([1])); /* reset = 1 */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5867 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5868 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5869 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5870 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5871 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5872 |
<xsl:text>var subscriptions = []; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5873 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5874 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5875 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5876 |
<xsl:text>function subscribers(index) { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5877 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5878 |
<xsl:text> let entry = subscriptions[index]; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5879 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5880 |
<xsl:text> let res; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5881 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5882 |
<xsl:text> if(entry == undefined){ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5883 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5884 |
<xsl:text> res = new Set(); |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5885 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5886 |
<xsl:text> subscriptions[index] = [res,0]; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5887 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5888 |
<xsl:text> }else{ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5889 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5890 |
<xsl:text> [res, _ign] = entry; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5891 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5892 |
<xsl:text> } |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5893 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5894 |
<xsl:text> return res |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5895 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5896 |
<xsl:text>} |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5897 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5898 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5899 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5900 |
<xsl:text>function get_subscription_period(index) { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5901 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5902 |
<xsl:text> let entry = subscriptions[index]; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5903 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5904 |
<xsl:text> if(entry == undefined) |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5905 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5906 |
<xsl:text> return 0; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5907 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5908 |
<xsl:text> let [_ign, period] = entry; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5909 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5910 |
<xsl:text> return period; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5911 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5912 |
<xsl:text>} |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5913 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5914 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5915 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5916 |
<xsl:text>function set_subscription_period(index, period) { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5917 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5918 |
<xsl:text> let entry = subscriptions[index]; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5919 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5920 |
<xsl:text> if(entry == undefined){ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5921 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5922 |
<xsl:text> subscriptions[index] = [new Set(), period]; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5923 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5924 |
<xsl:text> } else { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5925 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5926 |
<xsl:text> entry[1] = period; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5927 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5928 |
<xsl:text> } |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5929 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5930 |
<xsl:text>} |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5931 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5932 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5933 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5934 |
<xsl:text>// artificially subscribe the watchdog widget to "/heartbeat" hmi variable |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5935 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5936 |
<xsl:text>// Since dispatch directly calls change_hmi_value, |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5937 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5938 |
<xsl:text>// PLC will periodically send variable at given frequency |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5939 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5940 |
<xsl:text>subscribers(heartbeat_index).add({ |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5941 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5942 |
<xsl:text> /* type: "Watchdog", */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5943 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5944 |
<xsl:text> frequency: 1, |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5945 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5946 |
<xsl:text> indexes: [heartbeat_index], |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5947 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5948 |
<xsl:text> new_hmi_value: function(index, value, oldval) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5949 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5950 |
<xsl:text> apply_hmi_value(heartbeat_index, value+1); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5951 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5952 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5953 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5954 |
<xsl:text>}); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5955 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5956 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5957 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5958 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5959 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5960 |
<xsl:text>function update_subscriptions() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5961 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5962 |
<xsl:text> let delta = []; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5963 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5964 |
<xsl:text> for(let index in subscriptions){ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5965 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5966 |
<xsl:text> let widgets = subscribers(index); |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5967 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5968 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5969 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5970 |
<xsl:text> // periods are in ms |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5971 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
5972 |
<xsl:text> let previous_period = get_subscription_period(index); |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5973 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5974 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5975 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5976 |
<xsl:text> // subscribing with a zero period is unsubscribing |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5977 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5978 |
<xsl:text> let new_period = 0; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5979 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5980 |
<xsl:text> if(widgets.size > 0) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5981 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5982 |
<xsl:text> let maxfreq = 0; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5983 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5984 |
<xsl:text> for(let widget of widgets){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5985 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5986 |
<xsl:text> let wf = widget.frequency; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5987 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5988 |
<xsl:text> if(wf != undefined && maxfreq < wf) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5989 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5990 |
<xsl:text> maxfreq = wf; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5991 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5992 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5993 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5994 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5995 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5996 |
<xsl:text> if(maxfreq != 0) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5997 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
5998 |
<xsl:text> new_period = 1000/maxfreq; |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
5999 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6000 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6001 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6002 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6003 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6004 |
<xsl:text> if(previous_period != new_period) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6005 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6006 |
<xsl:text> set_subscription_period(index, new_period); |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6007 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6008 |
<xsl:text> if(index <= last_remote_index){ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6009 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6010 |
<xsl:text> delta.push( |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6011 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6012 |
<xsl:text> new Uint8Array([2]), /* subscribe = 2 */ |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6013 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6014 |
<xsl:text> new Uint32Array([index]), |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6015 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6016 |
<xsl:text> new Uint16Array([new_period])); |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6017 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6018 |
<xsl:text> } |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6019 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6020 |
<xsl:text> } |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6021 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6022 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6023 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6024 |
<xsl:text> send_blob(delta); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6025 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6026 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6027 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6028 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6029 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6030 |
<xsl:text>function send_hmi_value(index, value) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6031 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6032 |
<xsl:text> if(index > last_remote_index){ |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6033 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6034 |
<xsl:text> updates[index] = value; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6035 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6036 |
<xsl:text> requestHMIAnimation(); |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6037 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6038 |
<xsl:text> return; |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6039 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6040 |
<xsl:text> } |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6041 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6042 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6043 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6044 |
<xsl:text> let iectype = hmitree_types[index]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6045 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6046 |
<xsl:text> let tobinary = typedarray_types[iectype]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6047 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6048 |
<xsl:text> send_blob([ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6049 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6050 |
<xsl:text> new Uint8Array([0]), /* setval = 0 */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6051 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6052 |
<xsl:text> new Uint32Array([index]), |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6053 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6054 |
<xsl:text> tobinary(value)]); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6055 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6056 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6057 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6058 |
<xsl:text> // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6059 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6060 |
<xsl:text> // cache[index] = value; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6061 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6062 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6063 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6064 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6065 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6066 |
<xsl:text>function apply_hmi_value(index, new_val) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6067 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6068 |
<xsl:text> let old_val = cache[index] |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6069 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6070 |
<xsl:text> if(new_val != undefined && old_val != new_val) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6071 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6072 |
<xsl:text> send_hmi_value(index, new_val); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6073 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6074 |
<xsl:text> return new_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6075 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6076 |
<xsl:text>} |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6077 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6078 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6079 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6080 |
<xsl:text>quotes = {"'":null, '"':null}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6081 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6082 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6083 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6084 |
<xsl:text>function change_hmi_value(index, opstr) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6085 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6086 |
<xsl:text> let op = opstr[0]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6087 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6088 |
<xsl:text> let given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6089 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6090 |
<xsl:text> if(opstr.length < 2) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6091 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6092 |
<xsl:text> return undefined; // TODO raise |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6093 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6094 |
<xsl:text> if(opstr[1] in quotes){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6095 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6096 |
<xsl:text> if(opstr.length < 3) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6097 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6098 |
<xsl:text> return undefined; // TODO raise |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6099 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6100 |
<xsl:text> if(opstr[opstr.length-1] == opstr[1]){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6101 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6102 |
<xsl:text> given_val = opstr.slice(2,opstr.length-1); |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6103 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6104 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6105 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6106 |
<xsl:text> } else { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6107 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6108 |
<xsl:text> given_val = Number(opstr.slice(1)); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6109 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6110 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6111 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6112 |
<xsl:text> let old_val = cache[index]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6113 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6114 |
<xsl:text> let new_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6115 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6116 |
<xsl:text> switch(op){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6117 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6118 |
<xsl:text> case "=": |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6119 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6120 |
<xsl:text> new_val = given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6121 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6122 |
<xsl:text> break; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6123 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6124 |
<xsl:text> case "+": |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6125 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6126 |
<xsl:text> new_val = old_val + given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6127 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6128 |
<xsl:text> break; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6129 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6130 |
<xsl:text> case "-": |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6131 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6132 |
<xsl:text> new_val = old_val - given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6133 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6134 |
<xsl:text> break; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6135 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6136 |
<xsl:text> case "*": |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6137 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6138 |
<xsl:text> new_val = old_val * given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6139 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6140 |
<xsl:text> break; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6141 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6142 |
<xsl:text> case "/": |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6143 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6144 |
<xsl:text> new_val = old_val / given_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6145 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6146 |
<xsl:text> break; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6147 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6148 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6149 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6150 |
<xsl:text> if(new_val != undefined && old_val != new_val) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6151 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6152 |
<xsl:text> send_hmi_value(index, new_val); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6153 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6154 |
<xsl:text> // TODO else raise |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6155 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6156 |
<xsl:text> return new_val; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6157 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6158 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6159 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6160 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6161 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6162 |
<xsl:text>var current_visible_page; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6163 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6164 |
<xsl:text>var current_subscribed_page; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6165 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6166 |
<xsl:text>var current_page_index; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6167 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6168 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6169 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6170 |
<xsl:text>function prepare_svg() { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6171 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6172 |
<xsl:text> for(let eltid in detachable_elements){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6173 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6174 |
<xsl:text> let [element,parent] = detachable_elements[eltid]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6175 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6176 |
<xsl:text> parent.removeChild(element); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6177 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6178 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6179 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6180 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6181 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6182 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6183 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6184 |
<xsl:text>function switch_page(page_name, page_index) { |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6185 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6186 |
<xsl:text> if(current_subscribed_page != current_visible_page){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6187 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6188 |
<xsl:text> /* page switch already going */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6189 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6190 |
<xsl:text> /* TODO LOG ERROR */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6191 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6192 |
<xsl:text> return false; |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6193 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6194 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6195 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6196 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6197 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6198 |
<xsl:text> if(page_name == undefined) |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6199 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6200 |
<xsl:text> page_name = current_subscribed_page; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6201 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6202 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6203 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6204 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6205 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6206 |
<xsl:text> let old_desc = page_desc[current_subscribed_page]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6207 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6208 |
<xsl:text> let new_desc = page_desc[page_name]; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6209 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6210 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6211 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6212 |
<xsl:text> if(new_desc == undefined){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6213 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6214 |
<xsl:text> /* TODO LOG ERROR */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6215 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6216 |
<xsl:text> return false; |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6217 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6218 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6219 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6220 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6221 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6222 |
<xsl:text> if(page_index == undefined){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6223 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6224 |
<xsl:text> page_index = new_desc.page_index; |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6225 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6226 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6227 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6228 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6229 |
</xsl:text> |
3005
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6230 |
<xsl:text> if(old_desc){ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6231 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6232 |
<xsl:text> old_desc.widgets.map(([widget,relativeness])=>widget.unsub()); |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6233 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6234 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6235 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6236 |
<xsl:text> var new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6237 |
</xsl:text> |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6238 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6239 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6240 |
<xsl:text> container_id = page_name + (page_index != undefined ? page_index : ""); |
3017
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6241 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6242 |
<xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6243 |
</xsl:text> |
15e2df3e5610
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3008
diff
changeset
|
6244 |
<xsl:text> new_desc.widgets.map(([widget,relativeness])=>widget.sub(new_offset,relativeness,container_id)); |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6245 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6246 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6247 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6248 |
<xsl:text> update_subscriptions(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6249 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6250 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6251 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6252 |
<xsl:text> current_subscribed_page = page_name; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6253 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6254 |
<xsl:text> current_page_index = page_index; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6255 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6256 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6257 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6258 |
<xsl:text> jumps_need_update = true; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6259 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6260 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6261 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6262 |
<xsl:text> requestHMIAnimation(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6263 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6264 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6265 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6266 |
<xsl:text> jump_history.push([page_name, page_index]); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6267 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6268 |
<xsl:text> if(jump_history.length > 42) |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6269 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6270 |
<xsl:text> jump_history.shift(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6271 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6272 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6273 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6274 |
<xsl:text> return true; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6275 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6276 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6277 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6278 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6279 |
</xsl:text> |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6280 |
<xsl:text>function switch_visible_page(page_name) { |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6281 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6282 |
<xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6283 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6284 |
<xsl:text> let old_desc = page_desc[current_visible_page]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6285 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6286 |
<xsl:text> let new_desc = page_desc[page_name]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6287 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6288 |
<xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6289 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6290 |
<xsl:text> if(old_desc){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6291 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6292 |
<xsl:text> for(let eltid in old_desc.required_detachables){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6293 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6294 |
<xsl:text> if(!(eltid in new_desc.required_detachables)){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6295 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6296 |
<xsl:text> let [element, parent] = old_desc.required_detachables[eltid]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6297 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6298 |
<xsl:text> parent.removeChild(element); |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6299 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6300 |
<xsl:text> } |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6301 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6302 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6303 |
</xsl:text> |
2942
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6304 |
<xsl:text> for(let eltid in new_desc.required_detachables){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6305 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6306 |
<xsl:text> if(!(eltid in old_desc.required_detachables)){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6307 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6308 |
<xsl:text> let [element, parent] = new_desc.required_detachables[eltid]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6309 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6310 |
<xsl:text> parent.appendChild(element); |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6311 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6312 |
<xsl:text> } |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6313 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6314 |
<xsl:text> } |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6315 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6316 |
<xsl:text> }else{ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6317 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6318 |
<xsl:text> for(let eltid in new_desc.required_detachables){ |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6319 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6320 |
<xsl:text> let [element, parent] = new_desc.required_detachables[eltid]; |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6321 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6322 |
<xsl:text> parent.appendChild(element); |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6323 |
</xsl:text> |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6324 |
<xsl:text> } |
b07ad97e6019
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2941
diff
changeset
|
6325 |
</xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6326 |
<xsl:text> } |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6327 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6328 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6329 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6330 |
<xsl:text> svg_root.setAttribute('viewBox',new_desc.bbox.join(" ")); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6331 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6332 |
<xsl:text> current_visible_page = page_name; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6333 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6334 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6335 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6336 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6337 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6338 |
<xsl:text>// Once connection established |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6339 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6340 |
<xsl:text>ws.onopen = function (evt) { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6341 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6342 |
<xsl:text> init_widgets(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6343 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6344 |
<xsl:text> send_reset(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6345 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6346 |
<xsl:text> // show main page |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6347 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6348 |
<xsl:text> prepare_svg(); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6349 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6350 |
<xsl:text> switch_page(default_page); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6351 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6352 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6353 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6354 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6355 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6356 |
<xsl:text>ws.onclose = function (evt) { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6357 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6358 |
<xsl:text> // TODO : add visible notification while waiting for reload |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6359 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6360 |
<xsl:text> console.log("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+" Reload in 10s."); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6361 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6362 |
<xsl:text> // TODO : re-enable auto reload when not in debug |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6363 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6364 |
<xsl:text> //window.setTimeout(() => location.reload(true), 10000); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6365 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6366 |
<xsl:text> alert("Connection closed. code:"+evt.code+" reason:"+evt.reason+" wasClean:"+evt.wasClean+"."); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6367 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6368 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6369 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6370 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6371 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6372 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6373 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6374 |
<xsl:text>var xmlns = "http://www.w3.org/2000/svg"; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6375 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6376 |
<xsl:text>var edit_callback; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6377 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
6378 |
<xsl:text>function edit_value(path, valuetype, callback, initial, size) { |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6379 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6380 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6381 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6382 |
<xsl:text> let [keypadid, xcoord, ycoord] = keypads[valuetype]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6383 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6384 |
<xsl:text> edit_callback = callback; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6385 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6386 |
<xsl:text> let widget = hmi_widgets[keypadid]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6387 |
</xsl:text> |
3019
497aac6522a3
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant
parents:
3018
diff
changeset
|
6388 |
<xsl:text> widget.start_edit(path, valuetype, callback, initial, size); |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6389 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6390 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6391 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6392 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6393 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6394 |
<xsl:text>var current_modal; /* TODO stack ?*/ |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6395 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6396 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6397 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6398 |
<xsl:text>function show_modal(size) { |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6399 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6400 |
<xsl:text> let [element, parent] = detachable_elements[this.element.id]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6401 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6402 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6403 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6404 |
<xsl:text> tmpgrp = document.createElementNS(xmlns,"g"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6405 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6406 |
<xsl:text> tmpgrpattr = document.createAttribute("transform"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6407 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6408 |
<xsl:text> let [xcoord,ycoord] = this.coordinates; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6409 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6410 |
<xsl:text> let [xdest,ydest] = page_desc[current_visible_page].bbox; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6411 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6412 |
<xsl:text> if (typeof size === 'undefined'){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6413 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6414 |
<xsl:text> tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6415 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6416 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6417 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6418 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6419 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6420 |
<xsl:text> tmpgrpattr.value = "translate("+String(xdest-xcoord+size.x)+","+String(ydest-ycoord+size.y)+")"; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6421 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6422 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6423 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6424 |
<xsl:text> |
2941
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6425 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6426 |
<xsl:text> tmpgrp.setAttributeNode(tmpgrpattr); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6427 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6428 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6429 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6430 |
<xsl:text> tmpgrp.appendChild(element); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6431 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6432 |
<xsl:text> parent.appendChild(tmpgrp); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6433 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6434 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6435 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6436 |
<xsl:text> current_modal = [this.element.id, tmpgrp]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6437 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6438 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6439 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6440 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6441 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6442 |
<xsl:text>function end_modal() { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6443 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6444 |
<xsl:text> let [eltid, tmpgrp] = current_modal; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6445 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6446 |
<xsl:text> let [element, parent] = detachable_elements[this.element.id]; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6447 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6448 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6449 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6450 |
<xsl:text> parent.removeChild(tmpgrp); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6451 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6452 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6453 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6454 |
<xsl:text> current_modal = undefined; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6455 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6456 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6457 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6458 |
<xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6459 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6460 |
<xsl:text>function widget_active_activable(eltsub) { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6461 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6462 |
<xsl:text> if(eltsub.inactive_style === undefined) |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6463 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6464 |
<xsl:text> eltsub.inactive_style = eltsub.inactive.getAttribute("style"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6465 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6466 |
<xsl:text> eltsub.inactive.setAttribute("style", "display:none"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6467 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6468 |
<xsl:text> if(eltsub.active_style !== undefined) |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6469 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6470 |
<xsl:text> eltsub.active.setAttribute("style", eltsub.active_style); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6471 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6472 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6473 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6474 |
<xsl:text>function widget_inactive_activable(eltsub) { |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6475 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6476 |
<xsl:text> if(eltsub.active_style === undefined) |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6477 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6478 |
<xsl:text> eltsub.active_style = eltsub.active.getAttribute("style"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6479 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6480 |
<xsl:text> eltsub.active.setAttribute("style", "display:none"); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6481 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6482 |
<xsl:text> if(eltsub.inactive_style !== undefined) |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6483 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6484 |
<xsl:text> eltsub.inactive.setAttribute("style", eltsub.inactive_style); |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6485 |
</xsl:text> |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6486 |
<xsl:text>}; |
ef13a4007538
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2940
diff
changeset
|
6487 |
</xsl:text> |
2883
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
6488 |
</script> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
6489 |
</body> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
6490 |
</html> |
8e3d130399b0
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2881
diff
changeset
|
6491 |
</xsl:template> |
2753
9a7e12e96399
SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with.
Edouard Tisserant
parents:
diff
changeset
|
6492 |
</xsl:stylesheet> |