author | Edouard Tisserant |
Mon, 29 Mar 2021 15:46:02 +0200 | |
branch | svghmi |
changeset 3209 | a5bca0a5eaf5 |
parent 3206 | 4fd7bd10e606 |
child 3210 | 0ddefd20ca2b |
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"?> |
3186
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
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"> |
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
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="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
|
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: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
|
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> |
ef13a4007538
SVGHMI: spread JS code 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> |
ef13a4007538
SVGHMI: spread JS code 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: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
|
55 |
</xsl:for-each> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
56 |
<xsl:text>]; |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
57 |
</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
58 |
<xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
59 |
</xsl:text> |
3206
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
60 |
<xsl:text>var hmitree_paths = [ |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
61 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
62 |
<xsl:for-each select="$indexed_hmitree/*"> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
63 |
<xsl:text> /* </xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
64 |
<xsl:value-of select="@index"/> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
65 |
<xsl:text> */ "</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
66 |
<xsl:value-of select="@hmipath"/> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
67 |
<xsl:text>"</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
68 |
<xsl:if test="position()!=last()"> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
69 |
<xsl:text>,</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
70 |
</xsl:if> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
71 |
<xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
72 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
73 |
</xsl:for-each> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
74 |
<xsl:text>]; |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
75 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
76 |
<xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
77 |
</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
|
78 |
<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
|
79 |
</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
|
80 |
</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
|
81 |
<xsl:template mode="index" match="*"> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
82 |
<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
|
83 |
<xsl:param name="parentpath" select="''"/> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
84 |
<xsl:variable name="content"> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
85 |
<xsl:variable name="path"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
86 |
<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
|
87 |
<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
|
88 |
<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
|
89 |
</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
|
90 |
<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
|
91 |
<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
|
92 |
<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
|
93 |
</xsl:when> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
94 |
<xsl:otherwise> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
95 |
<xsl:value-of select="$parentpath"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
96 |
<xsl:text>/</xsl:text> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
97 |
<xsl:value-of select="@name"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
98 |
</xsl:otherwise> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
99 |
</xsl:choose> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
100 |
</xsl:variable> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
101 |
<xsl:choose> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
102 |
<xsl:when test="not(local-name() = $categories/noindex)"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
103 |
<xsl:copy> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
104 |
<xsl:attribute name="index"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
105 |
<xsl:value-of select="$index"/> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
106 |
</xsl:attribute> |
2791
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
107 |
<xsl:attribute name="hmipath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
108 |
<xsl:value-of select="$path"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
109 |
</xsl:attribute> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
110 |
<xsl:for-each select="@*"> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
111 |
<xsl:copy/> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
112 |
</xsl:for-each> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
113 |
</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
|
114 |
<xsl:apply-templates mode="index" select="*[1]"> |
2867
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
115 |
<xsl:with-param name="index" select="$index + 1"/> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
116 |
<xsl:with-param name="parentpath"> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
117 |
<xsl:value-of select="$path"/> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
118 |
</xsl:with-param> |
901c89c0cc08
SVGHMI: unsignificant changes or changes in generated code
Edouard Tisserant
parents:
2865
diff
changeset
|
119 |
</xsl:apply-templates> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
120 |
</xsl:when> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
121 |
<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
|
122 |
<xsl:apply-templates mode="index" select="*[1]"> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
123 |
<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
|
124 |
<xsl:with-param name="parentpath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
125 |
<xsl:value-of select="$path"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
126 |
</xsl:with-param> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
127 |
</xsl:apply-templates> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
128 |
</xsl:otherwise> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
129 |
</xsl:choose> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
130 |
</xsl:variable> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
131 |
<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
|
132 |
<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
|
133 |
<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
|
134 |
<xsl:with-param name="parentpath"> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
135 |
<xsl:value-of select="$parentpath"/> |
d022523cb621
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant
parents:
2790
diff
changeset
|
136 |
</xsl:with-param> |
2790
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
137 |
</xsl:apply-templates> |
8fab1886ebec
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant
parents:
2789
diff
changeset
|
138 |
</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
|
139 |
<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
|
140 |
<xsl:variable name="label" select="@inkscape:label"/> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
141 |
<xsl:variable name="id" select="@id"/> |
2792
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
142 |
<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
|
143 |
<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
|
144 |
<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
|
145 |
<xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
146 |
<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
|
147 |
<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
|
148 |
</xsl:when> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
149 |
<xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
150 |
<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
|
151 |
</xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
152 |
</xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
153 |
</xsl:variable> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
154 |
<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
|
155 |
<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
|
156 |
<xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
157 |
<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
|
158 |
<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
|
159 |
</xsl:when> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
160 |
<xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
161 |
<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
|
162 |
</xsl:otherwise> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
163 |
</xsl:choose> |
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
164 |
</xsl:variable> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
165 |
<xsl:if test="$type"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
166 |
<widget> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
167 |
<xsl:attribute name="id"> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
168 |
<xsl:value-of select="$id"/> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
169 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
170 |
<xsl:attribute name="type"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
171 |
<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
|
172 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
173 |
<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
|
174 |
<arg> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
175 |
<xsl:attribute name="value"> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
176 |
<xsl:value-of select="."/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
177 |
</xsl:attribute> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
178 |
</arg> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
179 |
</xsl:for-each> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
180 |
<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
|
181 |
<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
|
182 |
<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
|
183 |
<path> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
184 |
<xsl:variable name="pathminmax" select="str:split(.,',')"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
185 |
<xsl:variable name="path" select="$pathminmax[1]"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
186 |
<xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> |
2793
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
187 |
<xsl:attribute name="value"> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
188 |
<xsl:value-of select="$path"/> |
2793
2a97688c94c5
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant
parents:
2792
diff
changeset
|
189 |
</xsl:attribute> |
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
|
190 |
<xsl:choose> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
191 |
<xsl:when test="$pathminmaxcount = 3"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
192 |
<xsl:attribute name="min"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
193 |
<xsl:value-of select="$pathminmax[2]"/> |
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
|
194 |
</xsl:attribute> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
195 |
<xsl:attribute name="max"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
196 |
<xsl:value-of select="$pathminmax[3]"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
197 |
</xsl:attribute> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
198 |
</xsl:when> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
199 |
<xsl:when test="$pathminmaxcount = 2"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
200 |
<xsl:message terminate="yes"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
201 |
<xsl:text>Widget id:</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
202 |
<xsl:value-of select="$id"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
203 |
<xsl:text> label:</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
204 |
<xsl:value-of select="$label"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
205 |
<xsl:text> has wrong syntax of path section </xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
206 |
<xsl:value-of select="$pathminmax"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
207 |
</xsl:message> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
208 |
</xsl:when> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
209 |
</xsl:choose> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
210 |
<xsl:choose> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
211 |
<xsl:when test="regexp:test($path,'^\.[a-zA-Z0-9_]+$')"> |
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
|
212 |
<xsl:attribute name="type"> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
213 |
<xsl:text>PAGE_LOCAL</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
214 |
</xsl:attribute> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
215 |
</xsl:when> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
216 |
<xsl:when test="regexp:test($path,'^[a-zA-Z0-9_]+$')"> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
217 |
<xsl:attribute name="type"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
218 |
<xsl:text>HMI_LOCAL</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
|
219 |
</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
|
220 |
</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
|
221 |
<xsl:otherwise> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
222 |
<xsl:variable name="item" select="$indexed_hmitree/*[@hmipath = $path]"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
223 |
<xsl:variable name="pathtype" select="local-name($item)"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
224 |
<xsl:if test="$pathminmaxcount = 3 and not($pathtype = 'HMI_INT' or $pathtype = 'HMI_REAL')"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
225 |
<xsl:message terminate="yes"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
226 |
<xsl:text>Widget id:</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
227 |
<xsl:value-of select="$id"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
228 |
<xsl:text> label:</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
229 |
<xsl:value-of select="$label"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
230 |
<xsl:text> path section </xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
231 |
<xsl:value-of select="$pathminmax"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
232 |
<xsl:text> use min and max on non mumeric value</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
233 |
</xsl:message> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
234 |
</xsl:if> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
235 |
<xsl:if test="count($item) = 1"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
236 |
<xsl:attribute name="index"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
237 |
<xsl:value-of select="$item/@index"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
238 |
</xsl:attribute> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
239 |
<xsl:attribute name="type"> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
240 |
<xsl:value-of select="$pathtype"/> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
241 |
</xsl:attribute> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
242 |
</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
|
243 |
</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
|
244 |
</xsl:choose> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
245 |
</path> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
246 |
</xsl:if> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
247 |
</xsl:for-each> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
248 |
</widget> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
249 |
</xsl:if> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
250 |
</xsl:template> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
251 |
<xsl:variable name="_parsed_widgets"> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
252 |
<widget type="VarInitPersistent"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
253 |
<arg value="0"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
254 |
<path value="lang"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
255 |
</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
|
256 |
<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
|
257 |
</xsl:variable> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
258 |
<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
|
259 |
<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
|
260 |
<xsl:param name="id"/> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
261 |
<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
|
262 |
</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
|
263 |
<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
|
264 |
<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
|
265 |
<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
|
266 |
<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
|
267 |
</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
|
268 |
<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
|
269 |
<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
|
270 |
<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
|
271 |
<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
|
272 |
<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
|
273 |
<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
|
274 |
</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
|
275 |
<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
|
276 |
<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
|
277 |
<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
|
278 |
<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
|
279 |
<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
|
280 |
<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
|
281 |
<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
|
282 |
<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
|
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="."/> |
682bce953795
SVGHMI: 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:for-each> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
287 |
<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
|
288 |
</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
|
289 |
<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
|
290 |
<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
|
291 |
<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
|
292 |
</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
|
293 |
</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
|
294 |
</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
|
295 |
<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
|
296 |
<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
|
297 |
<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
|
298 |
</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
|
299 |
<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
|
300 |
<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
|
301 |
<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
|
302 |
</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
|
303 |
<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
|
304 |
</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
|
305 |
<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
|
306 |
</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
|
307 |
<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
|
308 |
<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
|
309 |
</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
|
310 |
<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
|
311 |
</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
|
312 |
<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
|
313 |
<xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
314 |
</xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
315 |
<xsl:text>Parsed Widgets |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
316 |
</xsl:text> |
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
317 |
<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
|
318 |
<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
|
319 |
<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
|
320 |
</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
|
321 |
</xsl:template> |
3199
1582753e409b
SVGHMI: Filter unseen geometry from inkscape CSV output.
Edouard Tisserant
parents:
3195
diff
changeset
|
322 |
<xsl:variable name="all_geometry" select="ns:GetSVGGeometry()"/> |
1582753e409b
SVGHMI: Filter unseen geometry from inkscape CSV output.
Edouard Tisserant
parents:
3195
diff
changeset
|
323 |
<xsl:variable name="defs" select="//svg:defs/descendant-or-self::svg:*"/> |
1582753e409b
SVGHMI: Filter unseen geometry from inkscape CSV output.
Edouard Tisserant
parents:
3195
diff
changeset
|
324 |
<xsl:variable name="geometry" select="$all_geometry[not(@Id = $defs/@id)]"/> |
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
|
325 |
<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
|
326 |
<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
|
327 |
<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
|
328 |
</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
|
329 |
<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
|
330 |
<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
|
331 |
<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
|
332 |
</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
|
333 |
<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
|
334 |
</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
|
335 |
<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
|
336 |
</xsl:text> |
2879 | 337 |
<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
|
338 |
<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
|
339 |
<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
|
340 |
<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
|
341 |
<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
|
342 |
<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
|
343 |
<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
|
344 |
<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
|
345 |
<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
|
346 |
<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
|
347 |
<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
|
348 |
<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
|
349 |
</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
|
350 |
</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
|
351 |
<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
|
352 |
</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
|
353 |
</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
|
354 |
<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
|
355 |
<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
|
356 |
<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
|
357 |
<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
|
358 |
<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
|
359 |
<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
|
360 |
<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
|
361 |
<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
|
362 |
<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
|
363 |
<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
|
364 |
</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
|
365 |
<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
|
366 |
<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
|
367 |
</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
|
368 |
<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
|
369 |
<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
|
370 |
</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
|
371 |
<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
|
372 |
<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
|
373 |
</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
|
374 |
<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
|
375 |
<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
|
376 |
</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
|
377 |
</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
|
378 |
</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
|
379 |
<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
|
380 |
<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
|
381 |
<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
|
382 |
<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
|
383 |
<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
|
384 |
<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
|
385 |
<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
|
386 |
<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
|
387 |
</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
|
388 |
<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
|
389 |
<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
|
390 |
</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
|
391 |
</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
|
392 |
</func:function> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
393 |
<xsl:variable name="groups" select="/svg:svg | //svg:g"/> |
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
|
394 |
<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
|
395 |
<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
|
396 |
<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
|
397 |
<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
|
398 |
<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
|
399 |
</func:function> |
2887 | 400 |
<xsl:variable name="hmi_pages_descs" select="$parsed_widgets/widget[@type = 'Page']"/> |
401 |
<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
|
402 |
<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
|
403 |
<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
|
404 |
<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
|
405 |
<xsl:choose> |
2887 | 406 |
<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
|
407 |
<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
|
408 |
</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
|
409 |
<xsl:otherwise> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
410 |
<xsl:message terminate="yes"> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
411 |
<xsl:text>No Home page defined!</xsl:text> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
412 |
</xsl:message> |
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
|
413 |
</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
|
414 |
</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
|
415 |
</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
|
416 |
<xsl:when test="count($hmi_pages) = 0"> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
417 |
<xsl:message terminate="yes"> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
418 |
<xsl:text>No page defined!</xsl:text> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
419 |
</xsl:message> |
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
|
420 |
</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
|
421 |
<xsl:otherwise> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
422 |
<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
|
423 |
</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
|
424 |
</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
|
425 |
</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
|
426 |
<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
|
427 |
<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
|
428 |
<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
|
429 |
</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
|
430 |
<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
|
431 |
<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
|
432 |
<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
|
433 |
</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
|
434 |
<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
|
435 |
</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
|
436 |
<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
|
437 |
</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
|
438 |
<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
|
439 |
<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
|
440 |
<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
|
441 |
</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
|
442 |
<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
|
443 |
</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
|
444 |
</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
|
445 |
<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
|
446 |
<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
|
447 |
<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
|
448 |
<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
|
449 |
<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
|
450 |
<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
|
451 |
<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
|
452 |
<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
|
453 |
<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
|
454 |
<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
|
455 |
</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
|
456 |
<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
|
457 |
<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
|
458 |
</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
|
459 |
</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
|
460 |
</func:function> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
461 |
<xsl:variable name="_overlapping_geometry"> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
462 |
<xsl:for-each select="$hmi_pages | $keypads"> |
3170
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
463 |
<xsl:variable name="k" select="concat('overlapping:', @id)"/> |
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
464 |
<xsl:value-of select="ns:ProgressStart($k, concat('collecting membership of ', @inkscape:label))"/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
465 |
<elt> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
466 |
<xsl:attribute name="id"> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
467 |
<xsl:value-of select="@id"/> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
468 |
</xsl:attribute> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
469 |
<xsl:copy-of select="func:overlapping_geometry(.)"/> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
470 |
</elt> |
3170
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
471 |
<xsl:value-of select="ns:ProgressEnd($k)"/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
472 |
</xsl:for-each> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
473 |
</xsl:variable> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
474 |
<xsl:variable name="overlapping_geometry" select="exsl:node-set($_overlapping_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
|
475 |
<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
|
476 |
<xsl:param name="page"/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
477 |
<xsl:variable name="page_overlapping_geometry" select="$overlapping_geometry/elt[@id = $page/@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
|
478 |
<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
|
479 |
<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
|
480 |
<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
|
481 |
</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
|
482 |
<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
|
483 |
<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
|
484 |
<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
|
485 |
<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
|
486 |
<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
|
487 |
</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
|
488 |
<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
|
489 |
<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
|
490 |
</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
|
491 |
</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
|
492 |
</func:function> |
3186
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
493 |
<xsl:variable name="required_page_elements" select="func:required_elements($hmi_pages | $keypads)/ancestor-or-self::svg:*"/> |
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
494 |
<xsl:variable name="hmi_lists_descs" select="$parsed_widgets/widget[@type = 'List']"/> |
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
495 |
<xsl:variable name="hmi_lists" select="$hmi_elements[@id = $hmi_lists_descs/@id]"/> |
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
496 |
<xsl:variable name="required_list_elements" select="func:refered_elements($hmi_lists[@id = $required_page_elements/@id])"/> |
3199
1582753e409b
SVGHMI: Filter unseen geometry from inkscape CSV output.
Edouard Tisserant
parents:
3195
diff
changeset
|
497 |
<xsl:variable name="required_elements" select="$defs | $required_list_elements | $required_page_elements"/> |
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
|
498 |
<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
|
499 |
<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
|
500 |
<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
|
501 |
<xsl:variable name="short_list" select="$elements[not(ancestor::*/@id = $elements/@id)]"/> |
3161
edd558965f58
SVGHMI: Optimize sumarized_elements xslt function, taking most of SVGHMI build time.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3156
diff
changeset
|
502 |
<xsl:variable name="filled_groups" select="$short_list/parent::*[ not(child::*[ not(@id = $discardable_elements/@id) and not(@id = $short_list/@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
|
503 |
<xsl:variable name="groups_to_add" select="$filled_groups[not(ancestor::*/@id = $filled_groups/@id)]"/> |
3161
edd558965f58
SVGHMI: Optimize sumarized_elements xslt function, taking most of SVGHMI build time.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3156
diff
changeset
|
504 |
<func:result select="$groups_to_add | $short_list[not(ancestor::*/@id = $filled_groups/@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
|
505 |
</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
|
506 |
<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
|
507 |
<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
|
508 |
<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
|
509 |
<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
|
510 |
<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
|
511 |
</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
|
512 |
<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
|
513 |
<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
|
514 |
</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
|
515 |
</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
|
516 |
</func:function> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
517 |
<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
|
518 |
<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
|
519 |
<declarations:detachable-elements/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
520 |
<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
|
521 |
<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
|
522 |
</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
|
523 |
<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
|
524 |
<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
|
525 |
<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
|
526 |
</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
|
527 |
<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
|
528 |
</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
|
529 |
<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
|
530 |
</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
|
531 |
<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
|
532 |
</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
|
533 |
<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
|
534 |
<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
|
535 |
<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
|
536 |
<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
|
537 |
<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
|
538 |
<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
|
539 |
<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
|
540 |
<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
|
541 |
<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
|
542 |
<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
|
543 |
</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
|
544 |
<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
|
545 |
</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
|
546 |
</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
|
547 |
<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
|
548 |
</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
|
549 |
<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
|
550 |
</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
|
551 |
</xsl:template> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
552 |
<xsl:variable name="forEach_widgets_ids" select="$parsed_widgets/widget[@type = 'ForEach']/@id"/> |
3124
f263359d8108
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3118
diff
changeset
|
553 |
<xsl:variable name="forEach_widgets" select="$hmi_widgets[@id = $forEach_widgets_ids]"/> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
554 |
<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
|
555 |
<xsl:template mode="page_desc" match="svg:*"> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
556 |
<xsl:if test="ancestor::*[@id = $hmi_pages/@id]"> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
557 |
<xsl:message terminate="yes"> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
558 |
<xsl:text>HMI:Page </xsl:text> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
559 |
<xsl:value-of select="@id"/> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
560 |
<xsl:text> is nested in another HMI:Page</xsl:text> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
561 |
</xsl:message> |
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
562 |
</xsl:if> |
2886
6c82fad8be65
SVGHMI: Simplification and optimization. func:parselabel becomes a template.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2885
diff
changeset
|
563 |
<xsl:variable name="desc" select="func:widget(@id)"/> |
3170
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
564 |
<xsl:variable name="pagename" select="$desc/arg[1]/@value"/> |
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
565 |
<xsl:variable name="msg" select="concat('generating page description ', $pagename)"/> |
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
566 |
<xsl:value-of select="ns:ProgressStart($pagename, $msg)"/> |
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
|
567 |
<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
|
568 |
<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
|
569 |
<xsl:variable name="page_all_elements" select="func:all_related_elements($page)"/> |
3124
f263359d8108
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3118
diff
changeset
|
570 |
<xsl:variable name="all_page_widgets" select="$hmi_widgets[@id = $page_all_elements/@id and @id != $page/@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
|
571 |
<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
|
572 |
<xsl:variable name="page_relative_widgets" select="$page_managed_widgets[func:is_descendant_path(func:widget(@id)/path/@value, $desc/path/@value)]"/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
573 |
<xsl:variable name="sumarized_page" select="func:sumarized_elements($page_all_elements)"/> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
574 |
<xsl:variable name="required_detachables" select="$sumarized_page/ ancestor-or-self::*[@id = $detachable_elements/@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
|
575 |
<xsl:text> "</xsl:text> |
3170
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
576 |
<xsl:value-of select="$pagename"/> |
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
|
577 |
<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
|
578 |
</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
|
579 |
<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
|
580 |
<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
|
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: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
|
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: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
|
585 |
<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
|
586 |
<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
|
587 |
<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
|
588 |
</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
|
589 |
<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
|
590 |
<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
|
591 |
<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
|
592 |
<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
|
593 |
<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
|
594 |
<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
|
595 |
<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
|
596 |
<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
|
597 |
</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
|
598 |
</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
|
599 |
<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
|
600 |
<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
|
601 |
<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
|
602 |
</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
|
603 |
</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
|
604 |
<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
|
605 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
606 |
<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
|
607 |
<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
|
608 |
<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
|
609 |
<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
|
610 |
<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
|
611 |
<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
|
612 |
</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
|
613 |
</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
|
614 |
</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
|
615 |
<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
|
616 |
<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
|
617 |
<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
|
618 |
<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
|
619 |
<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
|
620 |
<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
|
621 |
<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
|
622 |
</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
|
623 |
<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
|
624 |
</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: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
|
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> |
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
|
628 |
<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
|
629 |
</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
|
630 |
<xsl:for-each select="$parsed_widgets/widget[@id = $all_page_widgets/@id and @type='Jump']"> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
631 |
<xsl:text> hmi_widgets["</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
632 |
<xsl:value-of select="@id"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
633 |
<xsl:text>"]</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
634 |
<xsl:if test="position()!=last()"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
635 |
<xsl:text>,</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
|
636 |
</xsl:if> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
637 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
638 |
</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
|
639 |
</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
|
640 |
<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
|
641 |
</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
|
642 |
<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
|
643 |
</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
|
644 |
<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
|
645 |
<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
|
646 |
<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
|
647 |
<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
|
648 |
<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
|
649 |
<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
|
650 |
<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
|
651 |
<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
|
652 |
</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
|
653 |
<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
|
654 |
</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
|
655 |
</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
|
656 |
<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
|
657 |
</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
|
658 |
<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
|
659 |
<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
|
660 |
</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
|
661 |
<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
|
662 |
<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
|
663 |
<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
|
664 |
</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
|
665 |
<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
|
666 |
</xsl:text> |
3170
aaa203270ab0
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.
Edouard Tisserant
parents:
3165
diff
changeset
|
667 |
<xsl:value-of select="ns:ProgressEnd($pagename)"/> |
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
|
668 |
</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
|
669 |
<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
|
670 |
<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
|
671 |
<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
|
672 |
</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
|
673 |
<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
|
674 |
<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
|
675 |
<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
|
676 |
</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
|
677 |
<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
|
678 |
</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
|
679 |
<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
|
680 |
</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
|
681 |
<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
|
682 |
</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
|
683 |
<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
|
684 |
<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
|
685 |
</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
|
686 |
<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
|
687 |
</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
|
688 |
</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
|
689 |
<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
|
690 |
<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
|
691 |
<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
|
692 |
<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
|
693 |
</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
|
694 |
<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
|
695 |
<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
|
696 |
<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
|
697 |
</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
|
698 |
<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
|
699 |
</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
|
700 |
<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
|
701 |
</xsl:text> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
702 |
<xsl:text>DETACHABLES: |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
703 |
</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
|
704 |
<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
|
705 |
<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
|
706 |
<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
|
707 |
<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
|
708 |
</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 |
</xsl:for-each> |
2888
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
710 |
<xsl:text>In Foreach: |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
711 |
</xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
712 |
<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
|
713 |
<xsl:text> </xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
714 |
<xsl:value-of select="."/> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
715 |
<xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
716 |
</xsl:text> |
7beddc62a388
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.
Edouard Tisserant
parents:
2887
diff
changeset
|
717 |
</xsl:for-each> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
718 |
<xsl:text>Overlapping |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
719 |
</xsl:text> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
720 |
<xsl:apply-templates mode="testtree" select="$overlapping_geometry"/> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
721 |
<xsl:text> |
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
722 |
</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
|
723 |
</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
|
724 |
<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
|
725 |
<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
|
726 |
</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
|
727 |
<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
|
728 |
<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
|
729 |
<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
|
730 |
<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
|
731 |
</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
|
732 |
</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
|
733 |
</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
|
734 |
<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
|
735 |
<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
|
736 |
<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
|
737 |
<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
|
738 |
<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
|
739 |
<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
|
740 |
</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
|
741 |
<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
|
742 |
<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
|
743 |
</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
|
744 |
<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
|
745 |
<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
|
746 |
</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
|
747 |
<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
|
748 |
</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
|
749 |
</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
|
750 |
<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
|
751 |
<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
|
752 |
<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
|
753 |
</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
|
754 |
</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
|
755 |
<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
|
756 |
<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
|
757 |
<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
|
758 |
</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
|
759 |
</xsl:template> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
760 |
<xsl:template xmlns="http://www.w3.org/2000/svg" mode="inline_svg" match="svg:text/@inkscape:label[starts-with(., '_')]"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
761 |
<xsl:attribute name="{name()}"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
762 |
<xsl:value-of select="substring(., 2)"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
763 |
</xsl:attribute> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
764 |
</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
|
765 |
<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
|
766 |
<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
|
767 |
<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
|
768 |
<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
|
769 |
<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
|
770 |
<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
|
771 |
</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
|
772 |
<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
|
773 |
<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
|
774 |
<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
|
775 |
<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
|
776 |
<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
|
777 |
<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
|
778 |
</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
|
779 |
</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
|
780 |
<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
|
781 |
<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
|
782 |
<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
|
783 |
</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
|
784 |
</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
|
785 |
</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
|
786 |
</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
|
787 |
<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
|
788 |
<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
|
789 |
<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
|
790 |
</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
|
791 |
<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
|
792 |
<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
|
793 |
</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
|
794 |
<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
|
795 |
<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
|
796 |
</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
|
797 |
<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
|
798 |
<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
|
799 |
</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
|
800 |
<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
|
801 |
<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
|
802 |
</name> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
803 |
<name> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
804 |
<xsl:text>id</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
805 |
</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
|
806 |
</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
|
807 |
<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
|
808 |
<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
|
809 |
<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
|
810 |
<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
|
811 |
</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
|
812 |
<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
|
813 |
<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
|
814 |
</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
|
815 |
</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
|
816 |
<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
|
817 |
<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
|
818 |
<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
|
819 |
<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
|
820 |
<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
|
821 |
<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
|
822 |
<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
|
823 |
<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
|
824 |
<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
|
825 |
<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
|
826 |
<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
|
827 |
</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
|
828 |
<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
|
829 |
<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
|
830 |
</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
|
831 |
</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
|
832 |
</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
|
833 |
<g> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
834 |
<xsl:attribute name="id"> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
835 |
<xsl:value-of select="$seeded_id"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
836 |
</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
|
837 |
<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
|
838 |
<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
|
839 |
</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
|
840 |
<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
|
841 |
<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
|
842 |
<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
|
843 |
<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
|
844 |
<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
|
845 |
</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
|
846 |
</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
|
847 |
<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
|
848 |
<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
|
849 |
<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
|
850 |
<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
|
851 |
<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
|
852 |
</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
|
853 |
<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
|
854 |
</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
|
855 |
</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
|
856 |
<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
|
857 |
<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
|
858 |
<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
|
859 |
<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
|
860 |
<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
|
861 |
</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
|
862 |
<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
|
863 |
</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
|
864 |
</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
|
865 |
<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
|
866 |
<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
|
867 |
</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
|
868 |
</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
|
869 |
<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
|
870 |
<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
|
871 |
<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
|
872 |
<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
|
873 |
</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
|
874 |
</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
|
875 |
<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
|
876 |
<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
|
877 |
</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
|
878 |
</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
|
879 |
</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
|
880 |
</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
|
881 |
</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
|
882 |
<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
|
883 |
<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
|
884 |
<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
|
885 |
<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
|
886 |
<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
|
887 |
<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
|
888 |
</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
|
889 |
<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
|
890 |
<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
|
891 |
</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
|
892 |
</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
|
893 |
<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
|
894 |
<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
|
895 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
896 |
<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
|
897 |
<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
|
898 |
<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
|
899 |
<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
|
900 |
<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
|
901 |
<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
|
902 |
<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
|
903 |
<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
|
904 |
</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
|
905 |
</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
|
906 |
<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
|
907 |
<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
|
908 |
<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
|
909 |
<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
|
910 |
</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
|
911 |
</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
|
912 |
</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
|
913 |
</xsl:choose> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
914 |
</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
|
915 |
<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
|
916 |
<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
|
917 |
<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
|
918 |
<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
|
919 |
<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
|
920 |
<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
|
921 |
<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
|
922 |
</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
|
923 |
</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
|
924 |
</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
|
925 |
<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
|
926 |
<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
|
927 |
<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
|
928 |
<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
|
929 |
</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
|
930 |
</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
|
931 |
</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
|
932 |
</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
|
933 |
</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
|
934 |
<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
|
935 |
<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
|
936 |
</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
|
937 |
<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
|
938 |
<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
|
939 |
<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
|
940 |
<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
|
941 |
</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
|
942 |
<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
|
943 |
<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
|
944 |
<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
|
945 |
</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
|
946 |
<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
|
947 |
</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
|
948 |
<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
|
949 |
</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
|
950 |
<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
|
951 |
<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
|
952 |
<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
|
953 |
</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
|
954 |
<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
|
955 |
</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
|
956 |
</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
|
957 |
<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
|
958 |
<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
|
959 |
<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
|
960 |
</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
|
961 |
<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
|
962 |
<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
|
963 |
<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
|
964 |
</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
|
965 |
<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
|
966 |
</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
|
967 |
<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
|
968 |
</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
|
969 |
<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
|
970 |
</xsl:text> |
2878 | 971 |
<xsl:for-each select="$to_unlink"> |
972 |
<xsl:value-of select="@id"/> |
|
973 |
<xsl:text> |
|
974 |
</xsl:text> |
|
975 |
</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
|
976 |
<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
|
977 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
978 |
<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
|
979 |
<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
|
980 |
<xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
981 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
982 |
</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
|
983 |
<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
|
984 |
</xsl:text> |
2878 | 985 |
</xsl:template> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
986 |
<xsl:template mode="extract_i18n" match="svg:tspan"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
987 |
<xsl:if test="string-length(.) > 0"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
988 |
<line> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
989 |
<xsl:value-of select="."/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
990 |
</line> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
991 |
</xsl:if> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
992 |
</xsl:template> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
993 |
<xsl:template mode="extract_i18n" match="svg:text"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
994 |
<msg> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
995 |
<xsl:attribute name="id"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
996 |
<xsl:value-of select="@id"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
997 |
</xsl:attribute> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
998 |
<xsl:attribute name="label"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
999 |
<xsl:value-of select="substring(@inkscape:label,2)"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1000 |
</xsl:attribute> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1001 |
<xsl:apply-templates mode="extract_i18n" select="svg:*"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1002 |
</msg> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1003 |
</xsl:template> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1004 |
<xsl:variable name="translatable_texts" select="//svg:text[starts-with(@inkscape:label, '_')]"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1005 |
<xsl:variable name="translatable_strings"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1006 |
<xsl:apply-templates mode="extract_i18n" select="$translatable_texts"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1007 |
</xsl:variable> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1008 |
<preamble:i18n/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1009 |
<xsl:template match="preamble:i18n"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1010 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1011 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1012 |
<xsl:text>/* </xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1013 |
<xsl:value-of select="local-name()"/> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1014 |
<xsl:text> */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1015 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1016 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1017 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1018 |
<xsl:variable name="translations" select="ns:GetTranslations($translatable_strings)"/> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
1019 |
<xsl:text>var langs = [ ["Default", "C"],</xsl:text> |
3116
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1020 |
<xsl:for-each select="$translations/langs/lang"> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
1021 |
<xsl:text>["</xsl:text> |
3116
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1022 |
<xsl:value-of select="."/> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
1023 |
<xsl:text>","</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
1024 |
<xsl:value-of select="@code"/> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
1025 |
<xsl:text>"]</xsl:text> |
3116
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1026 |
<xsl:if test="position()!=last()"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1027 |
<xsl:text>,</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1028 |
</xsl:if> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1029 |
</xsl:for-each> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1030 |
<xsl:text>]; |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1031 |
</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1032 |
<xsl:text>var translations = [ |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1033 |
</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1034 |
<xsl:for-each select="$translatable_texts"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1035 |
<xsl:variable name="n" select="position()"/> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1036 |
<xsl:variable name="current_id" select="@id"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1037 |
<xsl:variable name="text_unlinked_uses" select="$result_svg_ns//svg:text[@original = $current_id]/@id"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1038 |
<xsl:text> [[</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1039 |
<xsl:for-each select="@id | $text_unlinked_uses"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1040 |
<xsl:text>id("</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1041 |
<xsl:value-of select="."/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1042 |
<xsl:text>")</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1043 |
<xsl:if test="position()!=last()"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1044 |
<xsl:text>,</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1045 |
</xsl:if> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1046 |
</xsl:for-each> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1047 |
<xsl:text>],[</xsl:text> |
3116
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1048 |
<xsl:for-each select="$translations/messages/msgid[$n]/msg"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1049 |
<xsl:text>"</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1050 |
<xsl:for-each select="line"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1051 |
<xsl:value-of select="."/> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1052 |
<xsl:if test="position()!=last()"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1053 |
<xsl:text>\n</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1054 |
</xsl:if> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1055 |
</xsl:for-each> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1056 |
<xsl:text>"</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1057 |
<xsl:if test="position()!=last()"> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1058 |
<xsl:text>,</xsl:text> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1059 |
</xsl:if> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1060 |
</xsl:for-each> |
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1061 |
<xsl:text>]]</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1062 |
<xsl:if test="position()!=last()"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1063 |
<xsl:text>,</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1064 |
</xsl:if> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1065 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1066 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1067 |
</xsl:for-each> |
3116
6da94ec04325
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant
parents:
3112
diff
changeset
|
1068 |
<xsl:text>] |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1069 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1070 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1071 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
1072 |
</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
|
1073 |
<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
|
1074 |
<xsl:variable name="widget" select="func:widget(@id)"/> |
2881 | 1075 |
<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
|
1076 |
<xsl:variable name="args"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1077 |
<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
|
1078 |
<xsl:text>"</xsl:text> |
3024 | 1079 |
<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
|
1080 |
<xsl:text>"</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1081 |
<xsl:if test="position()!=last()"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1082 |
<xsl:text>,</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1083 |
</xsl:if> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1084 |
</xsl:for-each> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1085 |
</xsl:variable> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1086 |
<xsl:variable name="indexes"> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1087 |
<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
|
1088 |
<xsl:choose> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1089 |
<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
|
1090 |
<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
|
1091 |
<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
|
1092 |
<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
|
1093 |
<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
|
1094 |
<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
|
1095 |
<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
|
1096 |
<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
|
1097 |
<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
|
1098 |
<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
|
1099 |
<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
|
1100 |
</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
|
1101 |
<xsl:text>undefined</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
|
1102 |
</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
|
1103 |
<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
|
1104 |
<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
|
1105 |
<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
|
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: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
|
1108 |
<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
|
1109 |
<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
|
1110 |
<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
|
1111 |
<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
|
1112 |
</xsl:when> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1113 |
<xsl:otherwise> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1114 |
<xsl:message terminate="yes"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1115 |
<xsl:text>Internal error while processing widget's non indexed HMI tree path : unknown type</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1116 |
</xsl:message> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1117 |
</xsl:otherwise> |
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
|
1118 |
</xsl:choose> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1119 |
</xsl:when> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1120 |
<xsl:otherwise> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1121 |
<xsl:value-of select="@index"/> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1122 |
</xsl:otherwise> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1123 |
</xsl:choose> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1124 |
<xsl:if test="position()!=last()"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1125 |
<xsl:text>,</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1126 |
</xsl:if> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1127 |
</xsl:for-each> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1128 |
</xsl:variable> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1129 |
<xsl:variable name="minmaxes"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1130 |
<xsl:for-each select="$widget/path"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1131 |
<xsl:choose> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1132 |
<xsl:when test="@min and @max"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1133 |
<xsl:text>[</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1134 |
<xsl:value-of select="@min"/> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1135 |
<xsl:text>,</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1136 |
<xsl:value-of select="@max"/> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1137 |
<xsl:text>]</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1138 |
</xsl:when> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1139 |
<xsl:otherwise> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1140 |
<xsl:text>undefined</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1141 |
</xsl:otherwise> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1142 |
</xsl:choose> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1143 |
<xsl:if test="position()!=last()"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1144 |
<xsl:text>,</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1145 |
</xsl:if> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1146 |
</xsl:for-each> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1147 |
</xsl:variable> |
2881 | 1148 |
<xsl:text> "</xsl:text> |
1149 |
<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
|
1150 |
<xsl:text>": new </xsl:text> |
2881 | 1151 |
<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
|
1152 |
<xsl:text>Widget ("</xsl:text> |
2881 | 1153 |
<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
|
1154 |
<xsl:text>",[</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1155 |
<xsl:value-of select="$args"/> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1156 |
<xsl:text>],[</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1157 |
<xsl:value-of select="$indexes"/> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1158 |
<xsl:text>],[</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1159 |
<xsl:value-of select="$minmaxes"/> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1160 |
<xsl:text>],{ |
2881 | 1161 |
</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
|
1162 |
<xsl:apply-templates mode="widget_defs" select="$widget"> |
2881 | 1163 |
<xsl:with-param name="hmi_element" select="."/> |
1164 |
</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
|
1165 |
<xsl:text> })</xsl:text> |
2881 | 1166 |
<xsl:if test="position()!=last()"> |
1167 |
<xsl:text>,</xsl:text> |
|
1168 |
</xsl:if> |
|
1169 |
<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
|
1170 |
</xsl:text> |
2792
0c0d3895b036
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant
parents:
2791
diff
changeset
|
1171 |
</xsl:template> |
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
|
1172 |
<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
|
1173 |
<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
|
1174 |
<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
|
1175 |
</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
|
1176 |
<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
|
1177 |
<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
|
1178 |
<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
|
1179 |
</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
|
1180 |
<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
|
1181 |
</xsl:text> |
3147 | 1182 |
<xsl:text> |
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 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
|
1185 |
</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
|
1186 |
<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
|
1187 |
</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
|
1188 |
<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
|
1189 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1190 |
<xsl:text>let cookies = new Map(document.cookie.split("; ").map(s=>s.split("="))); |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1191 |
</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
|
1192 |
<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
|
1193 |
</xsl:text> |
3024 | 1194 |
<xsl:text>const local_defaults = { |
1195 |
</xsl:text> |
|
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1196 |
<xsl:for-each select="$parsed_widgets/widget[starts-with(@type,'VarInit')]"> |
3024 | 1197 |
<xsl:if test="count(path) != 1"> |
1198 |
<xsl:message terminate="yes"> |
|
1199 |
<xsl:text>VarInit </xsl:text> |
|
1200 |
<xsl:value-of select="@id"/> |
|
1201 |
<xsl:text> must have only one variable given.</xsl:text> |
|
1202 |
</xsl:message> |
|
1203 |
</xsl:if> |
|
1204 |
<xsl:if test="path/@type != 'PAGE_LOCAL' and path/@type != 'HMI_LOCAL'"> |
|
1205 |
<xsl:message terminate="yes"> |
|
1206 |
<xsl:text>VarInit </xsl:text> |
|
1207 |
<xsl:value-of select="@id"/> |
|
1208 |
<xsl:text> only applies to HMI variable.</xsl:text> |
|
1209 |
</xsl:message> |
|
1210 |
</xsl:if> |
|
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1211 |
<xsl:text> "</xsl:text> |
3024 | 1212 |
<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
|
1213 |
<xsl:text>":</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1214 |
<xsl:choose> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1215 |
<xsl:when test="@type = 'VarInitPersistent'"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1216 |
<xsl:text>cookies.has("</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1217 |
<xsl:value-of select="path/@value"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1218 |
<xsl:text>")?cookies.get("</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1219 |
<xsl:value-of select="path/@value"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1220 |
<xsl:text>"):</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1221 |
<xsl:value-of select="arg[1]/@value"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1222 |
</xsl:when> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1223 |
<xsl:otherwise> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1224 |
<xsl:value-of select="arg[1]/@value"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1225 |
</xsl:otherwise> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1226 |
</xsl:choose> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1227 |
<xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1228 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1229 |
<xsl:if test="position()!=last()"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1230 |
<xsl:text>,</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1231 |
</xsl:if> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1232 |
</xsl:for-each> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1233 |
<xsl:text>}; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1234 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1235 |
<xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1236 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1237 |
<xsl:text>const persistent_locals = new Set([ |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1238 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1239 |
<xsl:for-each select="$parsed_widgets/widget[@type='VarInitPersistent']"> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1240 |
<xsl:text> "</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1241 |
<xsl:value-of select="path/@value"/> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1242 |
<xsl:text>"</xsl:text> |
3024 | 1243 |
<xsl:if test="position()!=last()"> |
1244 |
<xsl:text>,</xsl:text> |
|
1245 |
</xsl:if> |
|
1246 |
<xsl:text> |
|
1247 |
</xsl:text> |
|
1248 |
</xsl:for-each> |
|
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1249 |
<xsl:text>]); |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1250 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1251 |
<xsl:text>var persistent_indexes = new Map(); |
3024 | 1252 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1253 |
<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
|
1254 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
1255 |
<xsl:text>var updates = new Map(); |
3147 | 1256 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1257 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1258 |
</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
|
1259 |
<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
|
1260 |
</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
|
1261 |
<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
|
1262 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1263 |
<xsl:text> let new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1264 |
</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
|
1265 |
<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
|
1266 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1267 |
<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
|
1268 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1269 |
<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
|
1270 |
</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
|
1271 |
<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
|
1272 |
</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
|
1273 |
<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
|
1274 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1275 |
<xsl:text> if(result != undefined) { |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1276 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1277 |
<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
|
1278 |
</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
|
1279 |
<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
|
1280 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1281 |
<xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1282 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1283 |
<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
|
1284 |
</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1285 |
<xsl:text> pagevars[varname] = new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1286 |
</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
|
1287 |
<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
|
1288 |
</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
|
1289 |
<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
|
1290 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1291 |
<xsl:text> if(defaultval != undefined) { |
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
|
1292 |
</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
|
1293 |
<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
|
1294 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
1295 |
<xsl:text> updates.set(new_index, defaultval); |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1296 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1297 |
<xsl:text> if(persistent_locals.has(varname)) |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1298 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1299 |
<xsl:text> persistent_indexes.set(new_index, varname); |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1300 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1301 |
<xsl:text> } |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1302 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1303 |
<xsl:text> return new_index; |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1304 |
</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
|
1305 |
<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
|
1306 |
</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
|
1307 |
<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
|
1308 |
</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
|
1309 |
<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
|
1310 |
</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
|
1311 |
<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
|
1312 |
</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
|
1313 |
<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
|
1314 |
</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
|
1315 |
<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
|
1316 |
</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
|
1317 |
</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
|
1318 |
<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
|
1319 |
<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
|
1320 |
<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
|
1321 |
</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
|
1322 |
<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
|
1323 |
<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
|
1324 |
<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
|
1325 |
</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
|
1326 |
<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
|
1327 |
</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
|
1328 |
<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
|
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> |
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> |
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
|
1332 |
<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
|
1333 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1334 |
<xsl:text> offset = 0; |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1335 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
1336 |
<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
|
1337 |
</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
|
1338 |
<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
|
1339 |
</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
|
1340 |
<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
|
1341 |
</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
|
1342 |
<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
|
1343 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1344 |
<xsl:text> constructor(elt_id,args,indexes,minmaxes,members){ |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1345 |
</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
|
1346 |
<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
|
1347 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1348 |
<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
|
1349 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1350 |
<xsl:text> this.args = args; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1351 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1352 |
<xsl:text> this.indexes = indexes; |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1353 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1354 |
<xsl:text> this.minmaxes = minmaxes; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1355 |
</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
|
1356 |
<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
|
1357 |
</xsl:text> |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1358 |
<xsl:text> this.lastapply = indexes.map(() => undefined); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1359 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1360 |
<xsl:text> this.inhibit = indexes.map(() => undefined); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1361 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1362 |
<xsl:text> this.pending = indexes.map(() => undefined); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1363 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1364 |
<xsl:text> this.bound_unhinibit = this.unhinibit.bind(this); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1365 |
</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
|
1366 |
<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
|
1367 |
</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
|
1368 |
<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
|
1369 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1370 |
<xsl:text> unsub(){ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1371 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1372 |
<xsl:text> /* remove subsribers */ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1373 |
</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
|
1374 |
<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
|
1375 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1376 |
<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
|
1377 |
</xsl:text> |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1378 |
<xsl:text> /* flush updates pending because of inhibition */ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1379 |
</xsl:text> |
3147 | 1380 |
<xsl:text> let inhibition = this.inhibit[i]; |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1381 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1382 |
<xsl:text> if(inhibition != undefined){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1383 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1384 |
<xsl:text> clearTimeout(inhibition); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1385 |
</xsl:text> |
3147 | 1386 |
<xsl:text> this.lastapply[i] = undefined; |
1387 |
</xsl:text> |
|
1388 |
<xsl:text> this.unhinibit(i); |
|
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1389 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1390 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1391 |
</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
|
1392 |
<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
|
1393 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1394 |
<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
|
1395 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1396 |
<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
|
1397 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1398 |
<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
|
1399 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1400 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1401 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1402 |
<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
|
1403 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1404 |
<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
|
1405 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1406 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1407 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1408 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1409 |
</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
|
1410 |
<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
|
1411 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1412 |
<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
|
1413 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1414 |
<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
|
1415 |
</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
|
1416 |
<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
|
1417 |
</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
|
1418 |
<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
|
1419 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1420 |
<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
|
1421 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1422 |
<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
|
1423 |
</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
|
1424 |
<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
|
1425 |
</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
|
1426 |
<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
|
1427 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
1428 |
<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
|
1429 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1430 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1431 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1432 |
<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
|
1433 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1434 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1435 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1436 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1437 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
1438 |
<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
|
1439 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1440 |
<xsl:text> if(!this.unsubscribable) for(let index in this.indexes){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1441 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1442 |
<xsl:text> /* dispatch current cache in newly opened page widgets */ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1443 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1444 |
<xsl:text> let realindex = this.get_variable_index(index); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1445 |
</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
|
1446 |
<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
|
1447 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1448 |
<xsl:text> let cached_val = cache[realindex]; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1449 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1450 |
<xsl:text> if(cached_val != undefined) |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1451 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1452 |
<xsl:text> this._dispatch(cached_val, cached_val, index); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1453 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1454 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1455 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1456 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1457 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1458 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1459 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1460 |
<xsl:text> get_variable_index(varnum) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1461 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1462 |
<xsl:text> let index = this.indexes[varnum]; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1463 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1464 |
<xsl:text> if(typeof(index) == "string"){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1465 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1466 |
<xsl:text> index = page_local_index(index, this.container_id); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1467 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1468 |
<xsl:text> } else { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1469 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1470 |
<xsl:text> if(this.relativeness[varnum]){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1471 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1472 |
<xsl:text> index += this.offset; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1473 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1474 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1475 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1476 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1477 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1478 |
<xsl:text> return index; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1479 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1480 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1481 |
</xsl:text> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1482 |
<xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1483 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1484 |
<xsl:text> overshot(new_val, max) { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1485 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1486 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1487 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1488 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1489 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1490 |
<xsl:text> undershot(new_val, min) { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1491 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1492 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1493 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1494 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1495 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1496 |
<xsl:text> clip_min_max(index, new_val) { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1497 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1498 |
<xsl:text> let minmax = this.minmaxes[index]; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1499 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1500 |
<xsl:text> if(minmax !== undefined && typeof new_val == "number") { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1501 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1502 |
<xsl:text> let [min,max] = minmax; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1503 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1504 |
<xsl:text> if(new_val < min){ |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1505 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1506 |
<xsl:text> this.undershot(new_val, min); |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1507 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1508 |
<xsl:text> return min; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1509 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1510 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1511 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1512 |
<xsl:text> if(new_val > max){ |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1513 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1514 |
<xsl:text> this.overshot(new_val, max); |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1515 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1516 |
<xsl:text> return max; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1517 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1518 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1519 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1520 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1521 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1522 |
<xsl:text> return new_val; |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1523 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1524 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1525 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1526 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1527 |
</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
|
1528 |
<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
|
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> 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
|
1531 |
</xsl:text> |
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> 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
|
1533 |
</xsl:text> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1534 |
<xsl:text> let old_val = cache[realindex]; |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1535 |
</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1536 |
<xsl:text> let new_val = eval_operation_string(old_val, opstr); |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1537 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1538 |
<xsl:text> new_val = this.clip_min_max(index, new_val); |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
1539 |
</xsl:text> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
1540 |
<xsl:text> return apply_hmi_value(realindex, new_val); |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1541 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1542 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1543 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1544 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1545 |
</xsl:text> |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1546 |
<xsl:text> _apply_hmi_value(index, new_val) { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1547 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1548 |
<xsl:text> let realindex = this.get_variable_index(index); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1549 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1550 |
<xsl:text> if(realindex == undefined) return undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1551 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1552 |
<xsl:text> new_val = this.clip_min_max(index, new_val); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1553 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1554 |
<xsl:text> return apply_hmi_value(realindex, new_val); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1555 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1556 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1557 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1558 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1559 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1560 |
<xsl:text> unhinibit(index){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1561 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1562 |
<xsl:text> this.inhibit[index] = undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1563 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1564 |
<xsl:text> let new_val = this.pending[index]; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1565 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1566 |
<xsl:text> this.pending[index] = undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1567 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1568 |
<xsl:text> return this.apply_hmi_value(index, new_val); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1569 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1570 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1571 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1572 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1573 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1574 |
<xsl:text> apply_hmi_value(index, new_val) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1575 |
</xsl:text> |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1576 |
<xsl:text> if(this.inhibit[index] == undefined){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1577 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1578 |
<xsl:text> let now = Date.now(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1579 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1580 |
<xsl:text> let min_interval = 1000/this.frequency; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1581 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1582 |
<xsl:text> let lastapply = this.lastapply[index]; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1583 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1584 |
<xsl:text> if(lastapply == undefined || now > lastapply + min_interval){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1585 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1586 |
<xsl:text> this.lastapply[index] = now; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1587 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1588 |
<xsl:text> return this._apply_hmi_value(index, new_val); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1589 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1590 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1591 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1592 |
<xsl:text> else { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1593 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1594 |
<xsl:text> let elapsed = now - lastapply; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1595 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1596 |
<xsl:text> this.pending[index] = new_val; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1597 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1598 |
<xsl:text> this.inhibit[index] = setTimeout(this.bound_unhinibit, min_interval - elapsed, index); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1599 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1600 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1601 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1602 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1603 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1604 |
<xsl:text> else { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1605 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1606 |
<xsl:text> this.pending[index] = new_val; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1607 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1608 |
<xsl:text> return new_val; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1609 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
1610 |
<xsl:text> } |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1611 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1612 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1613 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1614 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1615 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1616 |
<xsl:text> new_hmi_value(index, value, oldval) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1617 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1618 |
<xsl:text> // TODO avoid searching, store index at sub() |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1619 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1620 |
<xsl:text> for(let i = 0; i < this.indexes.length; i++) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1621 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1622 |
<xsl:text> let refindex = this.get_variable_index(i); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1623 |
</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
|
1624 |
<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
|
1625 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1626 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1627 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1628 |
<xsl:text> if(index == refindex) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1629 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1630 |
<xsl:text> this._dispatch(value, oldval, i); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1631 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1632 |
<xsl:text> break; |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1633 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1634 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1635 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1636 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1637 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1638 |
<xsl:text> } |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1639 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1640 |
<xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1641 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1642 |
<xsl:text> _dispatch(value, oldval, varnum) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1643 |
</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
|
1644 |
<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
|
1645 |
</xsl:text> |
3026
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1646 |
<xsl:text> if(dispatch != undefined){ |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1647 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1648 |
<xsl:text> try { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1649 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1650 |
<xsl:text> dispatch.call(this, value, oldval, varnum); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1651 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1652 |
<xsl:text> } catch(err) { |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1653 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1654 |
<xsl:text> console.log(err); |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1655 |
</xsl:text> |
d454ed480c0f
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant
parents:
3025
diff
changeset
|
1656 |
<xsl:text> } |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1657 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1658 |
<xsl:text> } |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1659 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1660 |
<xsl:text> } |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1661 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1662 |
<xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
1663 |
</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
|
1664 |
<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
|
1665 |
</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
|
1666 |
<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
|
1667 |
</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
|
1668 |
<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
|
1669 |
</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
|
1670 |
<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
|
1671 |
</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
|
1672 |
<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
|
1673 |
</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
|
1674 |
<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
|
1675 |
</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
|
1676 |
<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
|
1677 |
</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
|
1678 |
<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
|
1679 |
</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
|
1680 |
<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
|
1681 |
</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
|
1682 |
<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
|
1683 |
</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
|
1684 |
<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
|
1685 |
</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
|
1686 |
<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
|
1687 |
</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
|
1688 |
<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
|
1689 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1690 |
<xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1691 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1692 |
<xsl:text> activate_activable(eltsub) { |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1693 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1694 |
<xsl:text> eltsub.inactive.style.display = "none"; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1695 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1696 |
<xsl:text> eltsub.active.style.display = ""; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1697 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1698 |
<xsl:text> } |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1699 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1700 |
<xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1701 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1702 |
<xsl:text> inactivate_activable(eltsub) { |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1703 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1704 |
<xsl:text> eltsub.active.style.display = "none"; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1705 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1706 |
<xsl:text> eltsub.inactive.style.display = ""; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1707 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1708 |
<xsl:text> } |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1709 |
</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
|
1710 |
<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
|
1711 |
</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
|
1712 |
<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
|
1713 |
</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
|
1714 |
</xsl:template> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
1715 |
<xsl:variable name="excluded_types" select="str:split('Page VarInit VarInitPersistent')"/> |
3186
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
1716 |
<xsl:key use="@type" name="TypesKey" match="widget"/> |
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
|
1717 |
<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
|
1718 |
<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
|
1719 |
<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
|
1720 |
</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
|
1721 |
<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
|
1722 |
<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
|
1723 |
<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
|
1724 |
</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
|
1725 |
<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
|
1726 |
</xsl:text> |
3124
f263359d8108
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3118
diff
changeset
|
1727 |
<xsl:variable name="used_widget_types" select="$parsed_widgets/widget[ generate-id() = generate-id(key('TypesKey', @type)) and not(@type = $excluded_types)]"/> |
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
|
1728 |
<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
|
1729 |
<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
|
1730 |
</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
|
1731 |
</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
|
1732 |
<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
|
1733 |
<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
|
1734 |
<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
|
1735 |
<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
|
1736 |
</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
|
1737 |
<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
|
1738 |
<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
|
1739 |
<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
|
1740 |
</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
|
1741 |
<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
|
1742 |
</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
|
1743 |
</xsl:template> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
1744 |
<xsl:variable name="included_ids" select="$parsed_widgets/widget[not(@type = $excluded_types) and not(@id = $discardable_elements/@id)]/@id"/> |
3124
f263359d8108
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3118
diff
changeset
|
1745 |
<xsl:variable name="hmi_widgets" select="$hmi_elements[@id = $included_ids]"/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
1746 |
<xsl:variable name="result_widgets" select="$result_svg_ns//*[@id = $hmi_widgets/@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
|
1747 |
<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
|
1748 |
<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
|
1749 |
<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
|
1750 |
</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
|
1751 |
<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
|
1752 |
<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
|
1753 |
<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
|
1754 |
</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
|
1755 |
<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
|
1756 |
</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
|
1757 |
<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
|
1758 |
</xsl:text> |
3124
f263359d8108
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3118
diff
changeset
|
1759 |
<xsl:apply-templates mode="hmi_widgets" select="$hmi_widgets"/> |
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
|
1760 |
<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
|
1761 |
</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
|
1762 |
<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
|
1763 |
</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
|
1764 |
</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
|
1765 |
<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
|
1766 |
<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
|
1767 |
<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
|
1768 |
<xsl:param name="subelements" select="/.."/> |
2800
68cee1366b9c
SVGHMI: dispatching data to minimalist "Display" text widget.
Edouard Tisserant
parents:
2799
diff
changeset
|
1769 |
<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
|
1770 |
<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
|
1771 |
<xsl:for-each select="str:split($labels)"> |
2807 | 1772 |
<xsl:variable name="name" select="."/> |
3165
2db69e2c5673
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3161
diff
changeset
|
1773 |
<xsl:variable name="elt" select="$result_widgets[@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
|
1774 |
<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
|
1775 |
<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
|
1776 |
<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
|
1777 |
<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
|
1778 |
<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
|
1779 |
<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
|
1780 |
<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
|
1781 |
<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
|
1782 |
</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
|
1783 |
</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
|
1784 |
</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
|
1785 |
<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
|
1786 |
<xsl:text> </xsl:text> |
2807 | 1787 |
<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
|
1788 |
<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
|
1789 |
<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
|
1790 |
<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
|
1791 |
</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
|
1792 |
<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
|
1793 |
<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
|
1794 |
<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
|
1795 |
<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
|
1796 |
</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
|
1797 |
<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
|
1798 |
<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
|
1799 |
<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
|
1800 |
<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
|
1801 |
<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
|
1802 |
<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
|
1803 |
<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
|
1804 |
<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
|
1805 |
<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
|
1806 |
<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
|
1807 |
<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
|
1808 |
<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
|
1809 |
<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
|
1810 |
</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
|
1811 |
</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
|
1812 |
<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
|
1813 |
<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
|
1814 |
<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
|
1815 |
<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
|
1816 |
<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
|
1817 |
</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
|
1818 |
</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
|
1819 |
<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
|
1820 |
<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
|
1821 |
<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
|
1822 |
<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
|
1823 |
<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
|
1824 |
<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
|
1825 |
<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
|
1826 |
<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
|
1827 |
</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
|
1828 |
<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
|
1829 |
</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
|
1830 |
</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
|
1831 |
</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
|
1832 |
</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
|
1833 |
<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
|
1834 |
</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
|
1835 |
</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
|
1836 |
</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
|
1837 |
</xsl:choose> |
2807 | 1838 |
</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
|
1839 |
</xsl:template> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1840 |
<func:function name="func:escape_quotes"> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1841 |
<xsl:param name="txt"/> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1842 |
<xsl:choose> |
3024 | 1843 |
<xsl:when test="contains($txt,'"')"> |
1844 |
<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
|
1845 |
</xsl:when> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1846 |
<xsl:otherwise> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1847 |
<func:result select="$txt"/> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1848 |
</xsl:otherwise> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1849 |
</xsl:choose> |
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
1850 |
</func:function> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1851 |
<xsl:template mode="widget_class" match="widget[@type='Animate']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1852 |
<xsl:text>class AnimateWidget extends Widget{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1853 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1854 |
<xsl:text> frequency = 5; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1855 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1856 |
<xsl:text> speed = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1857 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1858 |
<xsl:text> start = false; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1859 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1860 |
<xsl:text> widget_center = undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1861 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1862 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1863 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1864 |
<xsl:text> dispatch(value) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1865 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1866 |
<xsl:text> this.speed = value / 5; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1867 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1868 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1869 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1870 |
<xsl:text> //reconfigure animation |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1871 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1872 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1873 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1874 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1875 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1876 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1877 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1878 |
<xsl:text> animate(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1879 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1880 |
<xsl:text> // change animation properties |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1881 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1882 |
<xsl:text> for(let child of this.element.children){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1883 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1884 |
<xsl:text> if(child.nodeName.startsWith("animate")){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1885 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1886 |
<xsl:text> if(this.speed != 0 && !this.start){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1887 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1888 |
<xsl:text> this.start = true; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1889 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1890 |
<xsl:text> this.element.beginElement(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1891 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1892 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1893 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1894 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1895 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1896 |
<xsl:text> if(this.speed > 0){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1897 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1898 |
<xsl:text> child.setAttribute("dur", this.speed+"s"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1899 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1900 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1901 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1902 |
<xsl:text> else if(this.speed < 0){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1903 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1904 |
<xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1905 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1906 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1907 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1908 |
<xsl:text> else{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1909 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1910 |
<xsl:text> this.start = false; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1911 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1912 |
<xsl:text> this.element.endElement(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1913 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1914 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1915 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1916 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1917 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1918 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1919 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1920 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1921 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1922 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1923 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1924 |
<xsl:text> init() { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1925 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1926 |
<xsl:text> let widget_pos = this.element.getBBox(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1927 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1928 |
<xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1929 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1930 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1931 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1932 |
<xsl:text>} |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1933 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1934 |
</xsl:template> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1935 |
<xsl:template mode="widget_defs" match="widget[@type='Animate']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1936 |
<xsl:param name="hmi_element"/> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1937 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1938 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1939 |
</xsl:template> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1940 |
<xsl:template mode="widget_class" match="widget[@type='AnimateRotation']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1941 |
<xsl:text>class AnimateRotationWidget extends Widget{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1942 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1943 |
<xsl:text> frequency = 5; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1944 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1945 |
<xsl:text> speed = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1946 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1947 |
<xsl:text> widget_center = undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1948 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1949 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1950 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1951 |
<xsl:text> dispatch(value) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1952 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1953 |
<xsl:text> this.speed = value / 5; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1954 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1955 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1956 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1957 |
<xsl:text> //reconfigure animation |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1958 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1959 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1960 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1961 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1962 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1963 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1964 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1965 |
<xsl:text> animate(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1966 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1967 |
<xsl:text> // change animation properties |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1968 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1969 |
<xsl:text> for(let child of this.element.children){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1970 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1971 |
<xsl:text> if(child.nodeName == "animateTransform"){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1972 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1973 |
<xsl:text> if(this.speed > 0){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1974 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1975 |
<xsl:text> child.setAttribute("dur", this.speed+"s"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1976 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1977 |
<xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1978 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1979 |
<xsl:text> child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1980 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1981 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1982 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1983 |
<xsl:text> else if(this.speed < 0){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1984 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1985 |
<xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1986 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1987 |
<xsl:text> child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1988 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1989 |
<xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1990 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1991 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1992 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1993 |
<xsl:text> else{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1994 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1995 |
<xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1996 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1997 |
<xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1998 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
1999 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2000 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2001 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2002 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2003 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2004 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2005 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2006 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2007 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2008 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2009 |
<xsl:text> init() { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2010 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2011 |
<xsl:text> let widget_pos = this.element.getBBox(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2012 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2013 |
<xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2014 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2015 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2016 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2017 |
<xsl:text>} |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2018 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2019 |
</xsl:template> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2020 |
<xsl:template mode="widget_defs" match="widget[@type='AnimateRotation']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2021 |
<xsl:param name="hmi_element"/> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2022 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2023 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2024 |
</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
|
2025 |
<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
|
2026 |
<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
|
2027 |
</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
|
2028 |
<xsl:text> on_click(evt) { |
2902 | 2029 |
</xsl:text> |
2030 |
<xsl:text> if(jump_history.length > 1){ |
|
2031 |
</xsl:text> |
|
2032 |
<xsl:text> jump_history.pop(); |
|
2033 |
</xsl:text> |
|
2034 |
<xsl:text> let [page_name, index] = jump_history.pop(); |
|
2035 |
</xsl:text> |
|
2036 |
<xsl:text> switch_page(page_name, index); |
|
2037 |
</xsl:text> |
|
2038 |
<xsl:text> } |
|
2039 |
</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
|
2040 |
<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
|
2041 |
</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
|
2042 |
<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
|
2043 |
</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
|
2044 |
<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
|
2045 |
</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
|
2046 |
<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
|
2047 |
</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
|
2048 |
<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
|
2049 |
</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
|
2050 |
</xsl:template> |
3085 | 2051 |
<xsl:variable name="_button_fsm"> |
2052 |
<fsm> |
|
2053 |
<state name="init"> |
|
2054 |
<on-dispatch value="false"> |
|
2055 |
<jump state="released"/> |
|
2056 |
</on-dispatch> |
|
2057 |
<on-dispatch value="true"> |
|
2058 |
<jump state="pressed"/> |
|
2059 |
</on-dispatch> |
|
2060 |
</state> |
|
2061 |
<state name="pressing"> |
|
2062 |
<hmi-value value="true"/> |
|
2063 |
<on-dispatch value="true"> |
|
2064 |
<jump state="pressed"/> |
|
2065 |
</on-dispatch> |
|
2066 |
<on-mouse position="up"> |
|
2067 |
<jump state="shortpress"/> |
|
2068 |
</on-mouse> |
|
2069 |
</state> |
|
2070 |
<state name="pressed"> |
|
2071 |
<show eltname="active"/> |
|
2072 |
<on-mouse position="up"> |
|
2073 |
<jump state="releasing"/> |
|
2074 |
</on-mouse> |
|
2075 |
<on-dispatch value="false"> |
|
2076 |
<jump state="released"/> |
|
2077 |
</on-dispatch> |
|
2078 |
</state> |
|
2079 |
<state name="shortpress"> |
|
2080 |
<on-dispatch value="true"> |
|
2081 |
<jump state="releasing"/> |
|
2082 |
</on-dispatch> |
|
2083 |
<on-mouse position="down"> |
|
2084 |
<jump state="pressing"/> |
|
2085 |
</on-mouse> |
|
2086 |
</state> |
|
2087 |
<state name="releasing"> |
|
2088 |
<hmi-value value="false"/> |
|
2089 |
<on-dispatch value="false"> |
|
2090 |
<jump state="released"/> |
|
2091 |
</on-dispatch> |
|
2092 |
<on-mouse position="down"> |
|
2093 |
<jump state="shortrelease"/> |
|
2094 |
</on-mouse> |
|
2095 |
</state> |
|
2096 |
<state name="released"> |
|
2097 |
<show eltname="inactive"/> |
|
2098 |
<on-mouse position="down"> |
|
2099 |
<jump state="pressing"/> |
|
2100 |
</on-mouse> |
|
2101 |
<on-dispatch value="true"> |
|
2102 |
<jump state="pressed"/> |
|
2103 |
</on-dispatch> |
|
2104 |
</state> |
|
2105 |
<state name="shortrelease"> |
|
2106 |
<on-dispatch value="false"> |
|
2107 |
<jump state="pressing"/> |
|
2108 |
</on-dispatch> |
|
2109 |
<on-mouse position="up"> |
|
2110 |
<jump state="releasing"/> |
|
2111 |
</on-mouse> |
|
2112 |
</state> |
|
2113 |
</fsm> |
|
2114 |
</xsl:variable> |
|
2115 |
<xsl:template mode="dispatch_transition" match="fsm"> |
|
2116 |
<xsl:text> switch (this.state) { |
|
2117 |
</xsl:text> |
|
2118 |
<xsl:apply-templates mode="dispatch_transition" select="state"/> |
|
2119 |
<xsl:text> } |
|
2120 |
</xsl:text> |
|
2121 |
</xsl:template> |
|
2122 |
<xsl:template mode="dispatch_transition" match="state"> |
|
2123 |
<xsl:text> case "</xsl:text> |
|
2124 |
<xsl:value-of select="@name"/> |
|
2125 |
<xsl:text>": |
|
2126 |
</xsl:text> |
|
2127 |
<xsl:apply-templates select="on-dispatch"/> |
|
2128 |
<xsl:text> break; |
|
2129 |
</xsl:text> |
|
2130 |
</xsl:template> |
|
2131 |
<xsl:template match="on-dispatch"> |
|
2132 |
<xsl:text> if(value == </xsl:text> |
|
2133 |
<xsl:value-of select="@value"/> |
|
2134 |
<xsl:text>) { |
|
2135 |
</xsl:text> |
|
2136 |
<xsl:apply-templates mode="transition" select="jump"/> |
|
2137 |
<xsl:text> } |
|
2138 |
</xsl:text> |
|
2139 |
</xsl:template> |
|
2140 |
<xsl:template mode="mouse_transition" match="fsm"> |
|
2141 |
<xsl:param name="position"/> |
|
2142 |
<xsl:text> switch (this.state) { |
|
2143 |
</xsl:text> |
|
2144 |
<xsl:apply-templates mode="mouse_transition" select="state"> |
|
2145 |
<xsl:with-param name="position" select="$position"/> |
|
2146 |
</xsl:apply-templates> |
|
2147 |
<xsl:text> } |
|
2148 |
</xsl:text> |
|
2149 |
</xsl:template> |
|
2150 |
<xsl:template mode="mouse_transition" match="state"> |
|
2151 |
<xsl:param name="position"/> |
|
2152 |
<xsl:text> case "</xsl:text> |
|
2153 |
<xsl:value-of select="@name"/> |
|
2154 |
<xsl:text>": |
|
2155 |
</xsl:text> |
|
2156 |
<xsl:apply-templates select="on-mouse[@position = $position]"/> |
|
2157 |
<xsl:text> break; |
|
2158 |
</xsl:text> |
|
2159 |
</xsl:template> |
|
2160 |
<xsl:template match="on-mouse"> |
|
2161 |
<xsl:apply-templates mode="transition" select="jump"/> |
|
2162 |
</xsl:template> |
|
2163 |
<xsl:template mode="transition" match="jump"> |
|
2164 |
<xsl:text> this.state = "</xsl:text> |
|
2165 |
<xsl:value-of select="@state"/> |
|
2166 |
<xsl:text>"; |
|
2167 |
</xsl:text> |
|
2168 |
<xsl:text> this.</xsl:text> |
|
2169 |
<xsl:value-of select="@state"/> |
|
2170 |
<xsl:text>_action(); |
|
2171 |
</xsl:text> |
|
2172 |
</xsl:template> |
|
2173 |
<xsl:template mode="actions" match="fsm"> |
|
2174 |
<xsl:apply-templates mode="actions" select="state"/> |
|
2175 |
</xsl:template> |
|
2176 |
<xsl:template mode="actions" match="state"> |
|
2177 |
<xsl:text> </xsl:text> |
|
2178 |
<xsl:value-of select="@name"/> |
|
2179 |
<xsl:text>_action(){ |
|
2180 |
</xsl:text> |
|
2181 |
<xsl:apply-templates mode="actions" select="*"/> |
|
2182 |
<xsl:text> } |
|
2183 |
</xsl:text> |
|
2184 |
</xsl:template> |
|
2185 |
<xsl:template mode="actions" match="show"> |
|
2186 |
<xsl:text> this.display = "</xsl:text> |
|
2187 |
<xsl:value-of select="@eltname"/> |
|
2188 |
<xsl:text>"; |
|
2189 |
</xsl:text> |
|
2190 |
<xsl:text> this.request_animate(); |
|
2191 |
</xsl:text> |
|
2192 |
</xsl:template> |
|
2193 |
<xsl:template mode="actions" match="hmi-value"> |
|
2194 |
<xsl:text> this.apply_hmi_value(0, </xsl:text> |
|
2195 |
<xsl:value-of select="@value"/> |
|
2196 |
<xsl:text>); |
|
2197 |
</xsl:text> |
|
2198 |
</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
|
2199 |
<xsl:template mode="widget_class" match="widget[@type='Button']"> |
3085 | 2200 |
<xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> |
3024 | 2201 |
<xsl:text>class ButtonWidget extends Widget{ |
2202 |
</xsl:text> |
|
2203 |
<xsl:text> frequency = 5; |
|
2204 |
</xsl:text> |
|
3085 | 2205 |
<xsl:text> display = "inactive"; |
2206 |
</xsl:text> |
|
2207 |
<xsl:text> state = "init"; |
|
3024 | 2208 |
</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
|
2209 |
<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
|
2210 |
</xsl:text> |
3085 | 2211 |
<xsl:apply-templates mode="dispatch_transition" select="$fsm"/> |
2212 |
<xsl:text> } |
|
2213 |
</xsl:text> |
|
2214 |
<xsl:text> onmouseup(evt) { |
|
2215 |
</xsl:text> |
|
2216 |
<xsl:text> svg_root.removeEventListener("pointerup", this.bound_onmouseup, true); |
|
2217 |
</xsl:text> |
|
2218 |
<xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2219 |
<xsl:with-param name="position" select="'up'"/> |
|
2220 |
</xsl:apply-templates> |
|
2221 |
<xsl:text> } |
|
2222 |
</xsl:text> |
|
2223 |
<xsl:text> onmousedown(evt) { |
|
2224 |
</xsl:text> |
|
2225 |
<xsl:text> svg_root.addEventListener("pointerup", this.bound_onmouseup, true); |
|
2226 |
</xsl:text> |
|
2227 |
<xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2228 |
<xsl:with-param name="position" select="'down'"/> |
|
2229 |
</xsl:apply-templates> |
|
2230 |
<xsl:text> } |
|
2231 |
</xsl:text> |
|
2232 |
<xsl:apply-templates mode="actions" select="$fsm"/> |
|
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2233 |
<xsl:text> animate(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2234 |
</xsl:text> |
3085 | 2235 |
<xsl:text> if (this.active_elt && this.inactive_elt) { |
2236 |
</xsl:text> |
|
2237 |
<xsl:for-each select="str:split('active inactive')"> |
|
2238 |
<xsl:text> if(this.display == "</xsl:text> |
|
2239 |
<xsl:value-of select="."/> |
|
2240 |
<xsl:text>") |
|
2241 |
</xsl:text> |
|
2242 |
<xsl:text> this.</xsl:text> |
|
2243 |
<xsl:value-of select="."/> |
|
2244 |
<xsl:text>_elt.style.display = ""; |
|
2245 |
</xsl:text> |
|
2246 |
<xsl:text> else |
|
2247 |
</xsl:text> |
|
2248 |
<xsl:text> this.</xsl:text> |
|
2249 |
<xsl:value-of select="."/> |
|
2250 |
<xsl:text>_elt.style.display = "none"; |
|
2251 |
</xsl:text> |
|
2252 |
</xsl:for-each> |
|
2253 |
<xsl:text> } |
|
2254 |
</xsl:text> |
|
2255 |
<xsl:text> } |
|
2256 |
</xsl:text> |
|
2257 |
<xsl:text> init() { |
|
2258 |
</xsl:text> |
|
2259 |
<xsl:text> this.bound_onmouseup = this.onmouseup.bind(this); |
|
2260 |
</xsl:text> |
|
2261 |
<xsl:text> this.element.addEventListener("pointerdown", this.onmousedown.bind(this)); |
|
2262 |
</xsl:text> |
|
2263 |
<xsl:text> } |
|
3024 | 2264 |
</xsl:text> |
2265 |
<xsl:text>} |
|
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2266 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2267 |
</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
|
2268 |
<xsl:template mode="widget_defs" match="widget[@type='Button']"> |
2976
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2269 |
<xsl:param name="hmi_element"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2270 |
<xsl:call-template name="defs_by_labels"> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2271 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2272 |
<xsl:with-param name="labels"> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2273 |
<xsl:text>active inactive</xsl:text> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2274 |
</xsl:with-param> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2275 |
<xsl:with-param name="mandatory" select="'no'"/> |
99c4521bb844
SVGHMI: Changed widget button handler to element attribute.
dgaberscek
parents:
2970
diff
changeset
|
2276 |
</xsl:call-template> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2277 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2278 |
<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
|
2279 |
<xsl:text>class CircularBarWidget extends Widget{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2280 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2281 |
<xsl:text> frequency = 10; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2282 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2283 |
<xsl:text> range = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2284 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2285 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2286 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2287 |
<xsl:text> dispatch(value) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2288 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2289 |
<xsl:text> this.display_val = value; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2290 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2291 |
<xsl:text> this.request_animate(); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2292 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2293 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2294 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2295 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2296 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2297 |
<xsl:text> animate(){ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2298 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2299 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2300 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2301 |
<xsl:text> this.value_elt.textContent = String(this.display_val); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2302 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2303 |
<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
|
2304 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2305 |
<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
|
2306 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2307 |
<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
|
2308 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2309 |
<xsl:text> let tip = start + (end-start)*Number(this.display_val)/(max-min); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2310 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2311 |
<xsl:text> let size = 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2312 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2313 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2314 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2315 |
<xsl:text> if (tip-start > Math.PI) |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2316 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2317 |
<xsl:text> size = 1; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2318 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2319 |
<xsl:text> else |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2320 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2321 |
<xsl:text> size = 0; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2322 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2323 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2324 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2325 |
<xsl:text> this.path_elt.setAttribute('d', "M "+(cx+rx*Math.cos(start))+","+(cy+ry*Math.sin(start))+ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2326 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2327 |
<xsl:text> " A "+rx+","+ry+ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2328 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2329 |
<xsl:text> " 0 "+size+ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2330 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2331 |
<xsl:text> " 1 "+(cx+rx*Math.cos(tip))+","+(cy+ry*Math.sin(tip))); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2332 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2333 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2334 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2335 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2336 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2337 |
<xsl:text> init() { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2338 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2339 |
<xsl:text> let [start, end, cx, cy, rx, ry] = ["start", "end", "cx", "cy", "rx", "ry"]. |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2340 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2341 |
<xsl:text> map(tag=>Number(this.path_elt.getAttribute('sodipodi:'+tag))) |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2342 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2343 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2344 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2345 |
<xsl:text> if (ry == 0) |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2346 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2347 |
<xsl:text> ry = rx; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2348 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2349 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2350 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2351 |
<xsl:text> if (start > end) |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2352 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2353 |
<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
|
2354 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2355 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2356 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2357 |
<xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2358 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2359 |
<xsl:text> Number(elt.textContent) : |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2360 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2361 |
<xsl:text> this.args.length >= i+1 ? this.args[i] : def); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2362 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
2363 |
<xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2364 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2365 |
<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
|
2366 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2367 |
<xsl:text> this.center = [cx, cy]; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2368 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2369 |
<xsl:text> this.proportions = [rx, ry]; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2370 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2371 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2372 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2373 |
<xsl:text>} |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2374 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2375 |
</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
|
2376 |
<xsl:template mode="widget_defs" match="widget[@type='CircularBar']"> |
2944 | 2377 |
<xsl:param name="hmi_element"/> |
2378 |
<xsl:call-template name="defs_by_labels"> |
|
2379 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
2380 |
<xsl:with-param name="labels"> |
|
2381 |
<xsl:text>path</xsl:text> |
|
2382 |
</xsl:with-param> |
|
2383 |
</xsl:call-template> |
|
2384 |
<xsl:call-template name="defs_by_labels"> |
|
2385 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
2386 |
<xsl:with-param name="labels"> |
|
2387 |
<xsl:text>value min max</xsl:text> |
|
2388 |
</xsl:with-param> |
|
2389 |
<xsl:with-param name="mandatory" select="'no'"/> |
|
2390 |
</xsl:call-template> |
|
2391 |
</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
|
2392 |
<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
|
2393 |
<xsl:text>class CircularSliderWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2394 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2395 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2396 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2397 |
<xsl:text> range = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2398 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2399 |
<xsl:text> circle = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2400 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2401 |
<xsl:text> handle_pos = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2402 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2403 |
<xsl:text> curr_value = 0; |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2404 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2405 |
<xsl:text> drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2406 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2407 |
<xsl:text> enTimer = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2408 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2409 |
<xsl:text> last_drag = false; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2410 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2411 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2412 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2413 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2414 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2415 |
<xsl:text> let [min,max,start,totallength] = this.range; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2416 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2417 |
<xsl:text> //save current value inside widget |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2418 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2419 |
<xsl:text> this.curr_value = value; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2420 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2421 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2422 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2423 |
<xsl:text> //check if in range |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2424 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2425 |
<xsl:text> if (this.curr_value > max){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2426 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2427 |
<xsl:text> this.curr_value = max; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2428 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2429 |
<xsl:text> this.apply_hmi_value(0, this.curr_value); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2430 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2431 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2432 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2433 |
<xsl:text> else if (this.curr_value < min){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2434 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2435 |
<xsl:text> this.curr_value = min; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2436 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2437 |
<xsl:text> this.apply_hmi_value(0, this.curr_value); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2438 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2439 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2440 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2441 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2442 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2443 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2444 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2445 |
<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
|
2446 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2447 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2448 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2449 |
<xsl:text> //don't update if draging and setpoint ghost doesn't exist |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2450 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2451 |
<xsl:text> if(!this.drag || (this.setpoint_elt != undefined)){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2452 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2453 |
<xsl:text> this.update_DOM(value, this.handle_elt); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2454 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2455 |
<xsl:text> } |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2456 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2457 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2458 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2459 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2460 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2461 |
<xsl:text> update_DOM(value, elt){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2462 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2463 |
<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
|
2464 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2465 |
<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
|
2466 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2467 |
<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
|
2468 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2469 |
<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
|
2470 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2471 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2472 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2473 |
<xsl:text> // show or hide ghost if exists |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2474 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2475 |
<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
|
2476 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2477 |
<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
|
2478 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2479 |
<xsl:text> if(this.drag){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2480 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2481 |
<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
|
2482 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2483 |
<xsl:text> }else{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2484 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2485 |
<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
|
2486 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2487 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2488 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2489 |
<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
|
2490 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2491 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2492 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2493 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2494 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2495 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2496 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2497 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2498 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2499 |
<xsl:text> on_release(evt) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2500 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2501 |
<xsl:text> //unbind events |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2502 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2503 |
<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
|
2504 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2505 |
<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
|
2506 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2507 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2508 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2509 |
<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
|
2510 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2511 |
<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
|
2512 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2513 |
<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
|
2514 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2515 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2516 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2517 |
<xsl:text> //reset drag flag |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2518 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2519 |
<xsl:text> if(this.drag){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2520 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2521 |
<xsl:text> this.drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2522 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2523 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2524 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2525 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2526 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2527 |
<xsl:text> // get final position |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2528 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2529 |
<xsl:text> this.update_position(evt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2530 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2531 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2532 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2533 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2534 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2535 |
<xsl:text> on_drag(evt){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2536 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2537 |
<xsl:text> //ignore drag event for X amount of time and if not selected |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2538 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2539 |
<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
|
2540 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2541 |
<xsl:text> this.update_position(evt); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2542 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2543 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2544 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2545 |
<xsl:text> //reset timer |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2546 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2547 |
<xsl:text> this.enTimer = false; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2548 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2549 |
<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
|
2550 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2551 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2552 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2553 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2554 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2555 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2556 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2557 |
<xsl:text> update_position(evt){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2558 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2559 |
<xsl:text> if(this.drag && this.enTimer){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2560 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2561 |
<xsl:text> var svg_dist = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2562 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2563 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2564 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2565 |
<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
|
2566 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2567 |
<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
|
2568 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2569 |
<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
|
2570 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2571 |
<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
|
2572 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2573 |
<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
|
2574 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2575 |
<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
|
2576 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2577 |
<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
|
2578 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2579 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2580 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2581 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2582 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2583 |
<xsl:text> //get mouse coordinates |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2584 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2585 |
<xsl:text> let mouseX = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2586 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2587 |
<xsl:text> let mouseY = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2588 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2589 |
<xsl:text> if (evt.type.startsWith("touch")){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2590 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2591 |
<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
|
2592 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2593 |
<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
|
2594 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2595 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2596 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2597 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2598 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2599 |
<xsl:text> mouseX = evt.pageX; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2600 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2601 |
<xsl:text> mouseY = evt.pageY; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2602 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2603 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2604 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2605 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2606 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2607 |
<xsl:text> //calculate angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2608 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2609 |
<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
|
2610 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2611 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2612 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2613 |
<xsl:text> // transform from 0 to 2PI |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2614 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2615 |
<xsl:text> if (fi > 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2616 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2617 |
<xsl:text> fi = 2*Math.PI-fi; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2618 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2619 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2620 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2621 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2622 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2623 |
<xsl:text> fi = -fi; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2624 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2625 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2626 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2627 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2628 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2629 |
<xsl:text> //offset it to 0 |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2630 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2631 |
<xsl:text> fi = fi - fiStart; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2632 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2633 |
<xsl:text> if (fi < 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2634 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2635 |
<xsl:text> fi = fi + 2*Math.PI; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2636 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2637 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2638 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2639 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2640 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2641 |
<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
|
2642 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2643 |
<xsl:text> if(fi<fiEnd){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2644 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2645 |
<xsl:text> this.curr_value=(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
|
2646 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2647 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2648 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2649 |
<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
|
2650 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2651 |
<xsl:text> this.curr_value = this.range[1]; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2652 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2653 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2654 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2655 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2656 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2657 |
<xsl:text> this.curr_value = this.range[0]; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2658 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2659 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2660 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2661 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2662 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2663 |
<xsl:text> //apply value to hmi |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2664 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2665 |
<xsl:text> this.apply_hmi_value(0, Math.ceil(this.curr_value)); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2666 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2667 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2668 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2669 |
<xsl:text> //redraw handle |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2670 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2671 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2672 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2673 |
<xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2674 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2675 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2676 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2677 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2678 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2679 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2680 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2681 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2682 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2683 |
<xsl:text> animate(){ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2684 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2685 |
<xsl:text> // redraw handle on screen refresh |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2686 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2687 |
<xsl:text> // check if setpoint(ghost) handle exsist otherwise update main handle |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2688 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2689 |
<xsl:text> if(this.setpoint_elt != undefined){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2690 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2691 |
<xsl:text> this.update_DOM(this.curr_value, this.setpoint_elt); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2692 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2693 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2694 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2695 |
<xsl:text> else{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2696 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2697 |
<xsl:text> this.update_DOM(this.curr_value, this.handle_elt); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2698 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2699 |
<xsl:text> } |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2700 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2701 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2702 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2703 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2704 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2705 |
<xsl:text> on_select(evt){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2706 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2707 |
<xsl:text> //enable drag flag and timer |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2708 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2709 |
<xsl:text> this.drag = true; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2710 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2711 |
<xsl:text> this.enTimer = true; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2712 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2713 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2714 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2715 |
<xsl:text> //bind events |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2716 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2717 |
<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
|
2718 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2719 |
<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
|
2720 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2721 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2722 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2723 |
<xsl:text> window.addEventListener("mouseup", this.bound_on_release, true); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2724 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2725 |
<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
|
2726 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2727 |
<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
|
2728 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2729 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2730 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2731 |
<xsl:text> //update postion on mouse press |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2732 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2733 |
<xsl:text> this.update_position(evt); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2734 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2735 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2736 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2737 |
<xsl:text> //prevent next events |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2738 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2739 |
<xsl:text> evt.stopPropagation(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2740 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2741 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2742 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2743 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2744 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2745 |
<xsl:text> init() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2746 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2747 |
<xsl:text> //get min max |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2748 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2749 |
<xsl:text> let min = this.min_elt ? |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2750 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2751 |
<xsl:text> Number(this.min_elt.textContent) : |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2752 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2753 |
<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
|
2754 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2755 |
<xsl:text> let max = this.max_elt ? |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2756 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2757 |
<xsl:text> Number(this.max_elt.textContent) : |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2758 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2759 |
<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
|
2760 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2761 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2762 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2763 |
<xsl:text> //fiStart ==> offset |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2764 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2765 |
<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
|
2766 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2767 |
<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
|
2768 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2769 |
<xsl:text> fiEnd = fiEnd - fiStart; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2770 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2771 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2772 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2773 |
<xsl:text> //fiEnd ==> size of angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2774 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2775 |
<xsl:text> if (fiEnd < 0){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2776 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2777 |
<xsl:text> fiEnd = 2*Math.PI + fiEnd; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2778 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2779 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2780 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2781 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2782 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2783 |
<xsl:text> //min max barrier angle |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2784 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2785 |
<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
|
2786 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2787 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2788 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2789 |
<xsl:text> //get parameters from svg |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2790 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2791 |
<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
|
2792 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2793 |
<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
|
2794 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2795 |
<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
|
2796 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2797 |
<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
|
2798 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2799 |
<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
|
2800 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2801 |
<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
|
2802 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2803 |
<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
|
2804 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2805 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2806 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2807 |
<xsl:text> //bind functions |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2808 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2809 |
<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
|
2810 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2811 |
<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
|
2812 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2813 |
<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
|
2814 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2815 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2816 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2817 |
<xsl:text> this.handle_elt.addEventListener("mousedown", this.bound_on_select); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2818 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2819 |
<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
|
2820 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2821 |
<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
|
2822 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2823 |
<xsl:text> //touch recognised as page drag without next command |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2824 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2825 |
<xsl:text> document.body.addEventListener("touchstart", function(e){}, false); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2826 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2827 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2828 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2829 |
<xsl:text> //save ghost style |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2830 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2831 |
<xsl:text> //save ghost style |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2832 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2833 |
<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
|
2834 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2835 |
<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
|
2836 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2837 |
<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
|
2838 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2839 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2840 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
2841 |
<xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2842 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2843 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2844 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2845 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2846 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2847 |
</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
|
2848 |
<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
|
2849 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2850 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2851 |
<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
|
2852 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2853 |
<xsl:text>handle range</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2854 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2855 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2856 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2857 |
<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
|
2858 |
<xsl:with-param name="labels"> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2859 |
<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
|
2860 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2861 |
<xsl:with-param name="mandatory" select="'no'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2862 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2863 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2864 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
2865 |
</xsl:template> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2866 |
<xsl:template mode="widget_class" match="widget[@type='CustomHtml']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2867 |
<xsl:text>class CustomHtmlWidget extends Widget{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2868 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2869 |
<xsl:text> frequency = 5; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2870 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2871 |
<xsl:text> widget_size = undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2872 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2873 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2874 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2875 |
<xsl:text> dispatch(value) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2876 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2877 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2878 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2879 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2880 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2881 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2882 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2883 |
<xsl:text> animate(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2884 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2885 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2886 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2887 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2888 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2889 |
<xsl:text> init() { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2890 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2891 |
<xsl:text> this.widget_size = this.container_elt.getBBox(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2892 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2893 |
<xsl:text> this.element.innerHTML ='<foreignObject x="'+ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2894 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2895 |
<xsl:text> this.widget_size.x+'" y="'+this.widget_size.y+ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2896 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2897 |
<xsl:text> '" width="'+this.widget_size.width+'" height="'+this.widget_size.height+'"> '+ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2898 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2899 |
<xsl:text> this.code_elt.textContent+ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2900 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2901 |
<xsl:text> ' </foreignObject>'; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2902 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2903 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2904 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2905 |
<xsl:text>} |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2906 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2907 |
</xsl:template> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2908 |
<xsl:template mode="widget_defs" match="widget[@type='CustomHtml']"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2909 |
<xsl:param name="hmi_element"/> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2910 |
<xsl:call-template name="defs_by_labels"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2911 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2912 |
<xsl:with-param name="labels"> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2913 |
<xsl:text>container code</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2914 |
</xsl:with-param> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2915 |
</xsl:call-template> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2916 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2917 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2918 |
</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
|
2919 |
<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
|
2920 |
<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
|
2921 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2922 |
<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
|
2923 |
</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
|
2924 |
<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
|
2925 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
2926 |
<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
|
2927 |
</xsl:text> |
3147 | 2928 |
<xsl:text> this.request_animate(); |
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2929 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2930 |
<xsl:text> } |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2931 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2932 |
<xsl:text>} |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2933 |
</xsl:text> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2934 |
</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
|
2935 |
<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
|
2936 |
<xsl:param name="hmi_element"/> |
3147 | 2937 |
<xsl:variable name="format"> |
2938 |
<xsl:call-template name="defs_by_labels"> |
|
2939 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
2940 |
<xsl:with-param name="labels"> |
|
2941 |
<xsl:text>format</xsl:text> |
|
2942 |
</xsl:with-param> |
|
2943 |
<xsl:with-param name="mandatory" select="'no'"/> |
|
2944 |
</xsl:call-template> |
|
2945 |
</xsl:variable> |
|
2946 |
<xsl:variable name="has_format" select="string-length($format)>0"/> |
|
2947 |
<xsl:value-of select="$format"/> |
|
2948 |
<xsl:if test="$hmi_element[not(self::svg:text)] and not($has_format)"> |
|
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2949 |
<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
|
2950 |
<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
|
2951 |
<xsl:value-of select="$hmi_element/@id"/> |
3147 | 2952 |
<xsl:text>" must be a svg::text element itself or a group containing a svg:text element labelled "format"</xsl:text> |
2998
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2953 |
</xsl:message> |
e8f707d99dc3
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2997
diff
changeset
|
2954 |
</xsl:if> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2955 |
<xsl:variable name="field_initializer"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2956 |
<xsl:for-each select="path"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2957 |
<xsl:choose> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2958 |
<xsl:when test="@type='HMI_STRING'"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2959 |
<xsl:text>""</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2960 |
</xsl:when> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2961 |
<xsl:otherwise> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2962 |
<xsl:text>0</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
2963 |
</xsl:otherwise> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2964 |
</xsl:choose> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2965 |
<xsl:if test="position()!=last()"> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2966 |
<xsl:text>,</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2967 |
</xsl:if> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2968 |
</xsl:for-each> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2969 |
</xsl:variable> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2970 |
<xsl:text> fields: [</xsl:text> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2971 |
<xsl:value-of select="$field_initializer"/> |
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
2972 |
<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
|
2973 |
</xsl:text> |
3147 | 2974 |
<xsl:text> animate: function(){ |
2975 |
</xsl:text> |
|
2976 |
<xsl:choose> |
|
2977 |
<xsl:when test="$has_format"> |
|
2978 |
<xsl:text> if(this.format_elt.getAttribute("lang")) { |
|
2979 |
</xsl:text> |
|
2980 |
<xsl:text> this.format = svg_text_to_multiline(this.format_elt); |
|
2981 |
</xsl:text> |
|
2982 |
<xsl:text> this.format_elt.removeAttribute("lang"); |
|
2983 |
</xsl:text> |
|
2984 |
<xsl:text> } |
|
2985 |
</xsl:text> |
|
2986 |
<xsl:text> let str = vsprintf(this.format,this.fields); |
|
2987 |
</xsl:text> |
|
2988 |
<xsl:text> multiline_to_svg_text(this.format_elt, str); |
|
2989 |
</xsl:text> |
|
2990 |
</xsl:when> |
|
2991 |
<xsl:otherwise> |
|
2992 |
<xsl:text> let str = this.args.length == 1 ? vsprintf(this.args[0],this.fields) : this.fields.join(' '); |
|
2993 |
</xsl:text> |
|
2994 |
<xsl:text> multiline_to_svg_text(this.element, str); |
|
2995 |
</xsl:text> |
|
2996 |
</xsl:otherwise> |
|
2997 |
</xsl:choose> |
|
2998 |
<xsl:text> }, |
|
2999 |
</xsl:text> |
|
3000 |
<xsl:text> |
|
3001 |
</xsl:text> |
|
3002 |
<xsl:if test="$has_format"> |
|
3003 |
<xsl:text> init: function() { |
|
3004 |
</xsl:text> |
|
3005 |
<xsl:text> this.format = svg_text_to_multiline(this.format_elt); |
|
3006 |
</xsl:text> |
|
3007 |
<xsl:text> }, |
|
3008 |
</xsl:text> |
|
3009 |
</xsl:if> |
|
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
|
3010 |
</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
|
3011 |
<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
|
3012 |
<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
|
3013 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3014 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3015 |
<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
|
3016 |
<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
|
3017 |
<xsl:text> */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3018 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3019 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3020 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3021 |
<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
|
3022 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3023 |
<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
|
3024 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3025 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3026 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3027 |
<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
|
3028 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3029 |
<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
|
3030 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3031 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3032 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3033 |
<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
|
3034 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3035 |
<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
|
3036 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3037 |
<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
|
3038 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3039 |
<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
|
3040 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3041 |
<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
|
3042 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3043 |
<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
|
3044 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3045 |
<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
|
3046 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3047 |
<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
|
3048 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3049 |
<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
|
3050 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3051 |
<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
|
3052 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3053 |
<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
|
3054 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3055 |
<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
|
3056 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3057 |
<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
|
3058 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3059 |
<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
|
3060 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3061 |
<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
|
3062 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3063 |
<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
|
3064 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3065 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3066 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3067 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3068 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3069 |
<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
|
3070 |
</xsl:text> |
3206
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
3071 |
<xsl:text> // arguments is not an array, but should be fine for this call |
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
|
3072 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3073 |
<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
|
3074 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3075 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3076 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3077 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3078 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3079 |
<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
|
3080 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3081 |
<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
|
3082 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3083 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3084 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3085 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3086 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3087 |
<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
|
3088 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3089 |
<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
|
3090 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3091 |
<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
|
3092 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3093 |
<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
|
3094 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3095 |
<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
|
3096 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3097 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3098 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3099 |
<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
|
3100 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3101 |
<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
|
3102 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3103 |
<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
|
3104 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3105 |
<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
|
3106 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3107 |
<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
|
3108 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3109 |
<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
|
3110 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3111 |
<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
|
3112 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3113 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3114 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3115 |
<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
|
3116 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3117 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3118 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3119 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3120 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3121 |
<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
|
3122 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3123 |
<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
|
3124 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3125 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3126 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3127 |
<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
|
3128 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3129 |
<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
|
3130 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3131 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3132 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3133 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3134 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3135 |
<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
|
3136 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3137 |
<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
|
3138 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3139 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3140 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3141 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3142 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3143 |
<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
|
3144 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3145 |
<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
|
3146 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3147 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3148 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3149 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3150 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3151 |
<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
|
3152 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3153 |
<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
|
3154 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3155 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3156 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3157 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3158 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3159 |
<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
|
3160 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3161 |
<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
|
3162 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3163 |
<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
|
3164 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3165 |
<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
|
3166 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3167 |
<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
|
3168 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3169 |
<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
|
3170 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3171 |
<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
|
3172 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3173 |
<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
|
3174 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3175 |
<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
|
3176 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3177 |
<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
|
3178 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3179 |
<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
|
3180 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3181 |
<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
|
3182 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3183 |
<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
|
3184 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3185 |
<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
|
3186 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3187 |
<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
|
3188 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3189 |
<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
|
3190 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3191 |
<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
|
3192 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3193 |
<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
|
3194 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3195 |
<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
|
3196 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3197 |
<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
|
3198 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3199 |
<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
|
3200 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3201 |
<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
|
3202 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3203 |
<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
|
3204 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3205 |
<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
|
3206 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3207 |
<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
|
3208 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3209 |
<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
|
3210 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3211 |
<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
|
3212 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3213 |
<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
|
3214 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3215 |
<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
|
3216 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3217 |
<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
|
3218 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3219 |
<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
|
3220 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3221 |
<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
|
3222 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3223 |
<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
|
3224 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3225 |
<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
|
3226 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3227 |
<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
|
3228 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3229 |
<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
|
3230 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3231 |
<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
|
3232 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3233 |
<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
|
3234 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3235 |
<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
|
3236 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3237 |
<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
|
3238 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3239 |
<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
|
3240 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3241 |
<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
|
3242 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3243 |
<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
|
3244 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3245 |
<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
|
3246 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3247 |
<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
|
3248 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3249 |
<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
|
3250 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3251 |
<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
|
3252 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3253 |
<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
|
3254 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3255 |
<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
|
3256 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3257 |
<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
|
3258 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3259 |
<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
|
3260 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3261 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3262 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3263 |
<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
|
3264 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3265 |
<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
|
3266 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3267 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3268 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3269 |
<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
|
3270 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3271 |
<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
|
3272 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3273 |
<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
|
3274 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3275 |
<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
|
3276 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3277 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3278 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3279 |
<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
|
3280 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3281 |
<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
|
3282 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3283 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3284 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3285 |
<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
|
3286 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3287 |
<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
|
3288 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3289 |
<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
|
3290 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3291 |
<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
|
3292 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3293 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3294 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3295 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3296 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3297 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3298 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3299 |
<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
|
3300 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3301 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3302 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3303 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3304 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3305 |
<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
|
3306 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3307 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3308 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3309 |
<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
|
3310 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3311 |
<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
|
3312 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3313 |
<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
|
3314 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3315 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3316 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3317 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3318 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3319 |
<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
|
3320 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3321 |
<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
|
3322 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3323 |
<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
|
3324 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3325 |
<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
|
3326 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3327 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3328 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3329 |
<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
|
3330 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3331 |
<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
|
3332 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3333 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3334 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3335 |
<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
|
3336 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3337 |
<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
|
3338 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3339 |
<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
|
3340 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3341 |
<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
|
3342 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3343 |
<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
|
3344 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3345 |
<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
|
3346 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3347 |
<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
|
3348 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3349 |
<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
|
3350 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3351 |
<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
|
3352 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3353 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3354 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3355 |
<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
|
3356 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3357 |
<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
|
3358 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3359 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3360 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3361 |
<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
|
3362 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3363 |
<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
|
3364 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3365 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3366 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3367 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3368 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3369 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3370 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3371 |
<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
|
3372 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3373 |
<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
|
3374 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3375 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3376 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3377 |
<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
|
3378 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3379 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3380 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3381 |
<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
|
3382 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3383 |
<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
|
3384 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3385 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3386 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3387 |
<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
|
3388 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3389 |
<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
|
3390 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3391 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3392 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3393 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3394 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3395 |
<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
|
3396 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3397 |
<xsl:text> { |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3398 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3399 |
<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
|
3400 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3401 |
<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
|
3402 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3403 |
<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
|
3404 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3405 |
<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
|
3406 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3407 |
<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
|
3408 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3409 |
<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
|
3410 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3411 |
<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
|
3412 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3413 |
<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
|
3414 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3415 |
<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
|
3416 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3417 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3418 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3419 |
<xsl:text> ) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3420 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3421 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3422 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3423 |
<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
|
3424 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3425 |
<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
|
3426 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3427 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3428 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3429 |
<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
|
3430 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3431 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3432 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3433 |
<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
|
3434 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3435 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3436 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3437 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3438 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3439 |
<xsl:text> /** |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3440 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3441 |
<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
|
3442 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3443 |
<xsl:text> */ |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3444 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3445 |
<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
|
3446 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3447 |
<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
|
3448 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3449 |
<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
|
3450 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3451 |
<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
|
3452 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3453 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3454 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3455 |
<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
|
3456 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3457 |
<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
|
3458 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3459 |
<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
|
3460 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3461 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3462 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3463 |
<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
|
3464 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3465 |
<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
|
3466 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3467 |
<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
|
3468 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3469 |
<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
|
3470 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3471 |
<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
|
3472 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3473 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3474 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3475 |
<xsl:text> }) |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3476 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3477 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3478 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3479 |
<xsl:text> } |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3480 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3481 |
<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
|
3482 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3483 |
<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
|
3484 |
</xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3485 |
<xsl:text> |
dabad70db1bf
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3005
diff
changeset
|
3486 |
</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
|
3487 |
</xsl:template> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3488 |
<xsl:template mode="widget_class" match="widget[@type='DropDown']"> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3489 |
<xsl:text> function numb_event(e) { |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3490 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3491 |
<xsl:text> e.stopPropagation(); |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3492 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3493 |
<xsl:text> } |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3494 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3495 |
<xsl:text> class DropDownWidget extends Widget{ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3496 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3497 |
<xsl:text> dispatch(value) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3498 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3499 |
<xsl:text> if(!this.opened) this.set_selection(value); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3500 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3501 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3502 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3503 |
<xsl:text> init() { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3504 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3505 |
<xsl:text> this.button_elt.onclick = this.on_button_click.bind(this); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3506 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3507 |
<xsl:text> // Save original size of rectangle |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3508 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3509 |
<xsl:text> this.box_bbox = this.box_elt.getBBox() |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3510 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3511 |
<xsl:text> this.highlight_bbox = this.highlight_elt.getBBox() |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3512 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3513 |
<xsl:text> this.highlight_elt.style.visibility = "hidden"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3514 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3515 |
<xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3516 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3517 |
<xsl:text> // Compute margins |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3518 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3519 |
<xsl:text> this.text_bbox = this.text_elt.getBBox(); |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3520 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3521 |
<xsl:text> let lmargin = this.text_bbox.x - this.box_bbox.x; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3522 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3523 |
<xsl:text> let tmargin = this.text_bbox.y - this.box_bbox.y; |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3524 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3525 |
<xsl:text> this.margins = [lmargin, tmargin].map(x => Math.max(x,0)); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3526 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3527 |
<xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3528 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3529 |
<xsl:text> // Index of first visible element in the menu, when opened |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3530 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3531 |
<xsl:text> this.menu_offset = 0; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3532 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3533 |
<xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3534 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3535 |
<xsl:text> // How mutch to lift the menu vertically so that it does not cross bottom border |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3536 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3537 |
<xsl:text> this.lift = 0; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3538 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3539 |
<xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3540 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3541 |
<xsl:text> // Event handlers cannot be object method ('this' is unknown) |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3542 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3543 |
<xsl:text> // as a workaround, handler given to addEventListener is bound in advance. |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3544 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3545 |
<xsl:text> this.bound_close_on_click_elsewhere = this.close_on_click_elsewhere.bind(this); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3546 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3547 |
<xsl:text> this.bound_on_selection_click = this.on_selection_click.bind(this); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3548 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3549 |
<xsl:text> this.bound_on_backward_click = this.on_backward_click.bind(this); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3550 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3551 |
<xsl:text> this.bound_on_forward_click = this.on_forward_click.bind(this); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3552 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3553 |
<xsl:text> this.opened = false; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3554 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3555 |
<xsl:text> this.clickables = []; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3556 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3557 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3558 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3559 |
<xsl:text> on_button_click() { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3560 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3561 |
<xsl:text> this.open(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3562 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3563 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3564 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3565 |
<xsl:text> // Called when a menu entry is clicked |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3566 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3567 |
<xsl:text> on_selection_click(selection) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3568 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3569 |
<xsl:text> this.close(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3570 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3571 |
<xsl:text> this.apply_hmi_value(0, selection); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3572 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3573 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3574 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3575 |
<xsl:text> on_backward_click(){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3576 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3577 |
<xsl:text> this.scroll(false); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3578 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3579 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3580 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3581 |
<xsl:text> on_forward_click(){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3582 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3583 |
<xsl:text> this.scroll(true); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3584 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3585 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3586 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3587 |
<xsl:text> set_selection(value) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3588 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3589 |
<xsl:text> let display_str; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3590 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3591 |
<xsl:text> if(value >= 0 && value < this.content.length){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3592 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3593 |
<xsl:text> // if valid selection resolve content |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3594 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3595 |
<xsl:text> display_str = this.content[value]; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3596 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3597 |
<xsl:text> this.last_selection = value; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3598 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3599 |
<xsl:text> } else { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3600 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3601 |
<xsl:text> // otherwise show problem |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3602 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3603 |
<xsl:text> display_str = "?"+String(value)+"?"; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3604 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3605 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3606 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3607 |
<xsl:text> // It is assumed that first span always stays, |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3608 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3609 |
<xsl:text> // and contains selection when menu is closed |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3610 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3611 |
<xsl:text> this.text_elt.firstElementChild.textContent = display_str; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3612 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3613 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3614 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3615 |
<xsl:text> grow_text(up_to) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3616 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3617 |
<xsl:text> let count = 1; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3618 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3619 |
<xsl:text> let txt = this.text_elt; |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3620 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3621 |
<xsl:text> let first = txt.firstElementChild; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3622 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3623 |
<xsl:text> // Real world (pixels) boundaries of current page |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3624 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3625 |
<xsl:text> let bounds = svg_root.getBoundingClientRect(); |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3626 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3627 |
<xsl:text> this.lift = 0; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3628 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3629 |
<xsl:text> while(count < up_to) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3630 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3631 |
<xsl:text> let next = first.cloneNode(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3632 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3633 |
<xsl:text> // relative line by line text flow instead of absolute y coordinate |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3634 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3635 |
<xsl:text> next.removeAttribute("y"); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3636 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3637 |
<xsl:text> next.setAttribute("dy", "1.1em"); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3638 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3639 |
<xsl:text> // default content to allow computing text element bbox |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3640 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3641 |
<xsl:text> next.textContent = "..."; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3642 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3643 |
<xsl:text> // append new span to text element |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3644 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3645 |
<xsl:text> txt.appendChild(next); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3646 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3647 |
<xsl:text> // now check if text extended by one row fits to page |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3648 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3649 |
<xsl:text> // FIXME : exclude margins to be more accurate on box size |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3650 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3651 |
<xsl:text> let rect = txt.getBoundingClientRect(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3652 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3653 |
<xsl:text> if(rect.bottom > bounds.bottom){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3654 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3655 |
<xsl:text> // in case of overflow at the bottom, lift up one row |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3656 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3657 |
<xsl:text> let backup = first.getAttribute("dy"); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3658 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3659 |
<xsl:text> // apply lift as a dy added too first span (y attrib stays) |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3660 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3661 |
<xsl:text> first.setAttribute("dy", "-"+String((this.lift+1)*1.1)+"em"); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3662 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3663 |
<xsl:text> rect = txt.getBoundingClientRect(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3664 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3665 |
<xsl:text> if(rect.top > bounds.top){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3666 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3667 |
<xsl:text> this.lift += 1; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3668 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3669 |
<xsl:text> } else { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3670 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3671 |
<xsl:text> // if it goes over the top, then backtrack |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3672 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3673 |
<xsl:text> // restore dy attribute on first span |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3674 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3675 |
<xsl:text> if(backup) |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3676 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3677 |
<xsl:text> first.setAttribute("dy", backup); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3678 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3679 |
<xsl:text> else |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3680 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3681 |
<xsl:text> first.removeAttribute("dy"); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3682 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3683 |
<xsl:text> // remove unwanted child |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3684 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3685 |
<xsl:text> txt.removeChild(next); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3686 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3687 |
<xsl:text> return count; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3688 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3689 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3690 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3691 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3692 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3693 |
<xsl:text> count++; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3694 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3695 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3696 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3697 |
<xsl:text> return count; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3698 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3699 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3700 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3701 |
<xsl:text> close_on_click_elsewhere(e) { |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3702 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3703 |
<xsl:text> // inhibit events not targetting spans (menu items) |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3704 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3705 |
<xsl:text> if([this.text_elt, this.element].indexOf(e.target.parentNode) == -1){ |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3706 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3707 |
<xsl:text> e.stopPropagation(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3708 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3709 |
<xsl:text> // close menu in case click is outside box |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3710 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3711 |
<xsl:text> if(e.target !== this.box_elt) |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3712 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3713 |
<xsl:text> this.close(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3714 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3715 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3716 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3717 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3718 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3719 |
<xsl:text> close(){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3720 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3721 |
<xsl:text> // Stop hogging all click events |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3722 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3723 |
<xsl:text> svg_root.removeEventListener("pointerdown", numb_event, true); |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3724 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3725 |
<xsl:text> svg_root.removeEventListener("pointerup", numb_event, true); |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3726 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3727 |
<xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3728 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3729 |
<xsl:text> // Restore position and sixe of widget elements |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3730 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3731 |
<xsl:text> this.reset_text(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3732 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3733 |
<xsl:text> this.reset_clickables(); |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3734 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3735 |
<xsl:text> this.reset_box(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3736 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3737 |
<xsl:text> this.reset_highlight(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3738 |
</xsl:text> |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3739 |
<xsl:text> // Put the button back in place |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3740 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3741 |
<xsl:text> this.element.appendChild(this.button_elt); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3742 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3743 |
<xsl:text> // Mark as closed (to allow dispatch) |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3744 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3745 |
<xsl:text> this.opened = false; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3746 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3747 |
<xsl:text> // Dispatch last cached value |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3748 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3749 |
<xsl:text> this.apply_cache(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3750 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3751 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
3752 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3753 |
<xsl:text> // Make item (text span) clickable by overlaying a rectangle on top of it |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3754 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3755 |
<xsl:text> make_clickable(span, func) { |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3756 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3757 |
<xsl:text> let txt = this.text_elt; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
3758 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3759 |
<xsl:text> let original_text_y = this.text_bbox.y; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3760 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3761 |
<xsl:text> let highlight = this.highlight_elt; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3762 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3763 |
<xsl:text> let original_h_y = this.highlight_bbox.y; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3764 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3765 |
<xsl:text> let clickable = highlight.cloneNode(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3766 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3767 |
<xsl:text> let yoffset = span.getBBox().y - original_text_y; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3768 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3769 |
<xsl:text> clickable.y.baseVal.value = original_h_y + yoffset; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3770 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3771 |
<xsl:text> clickable.style.pointerEvents = "bounding-box"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3772 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3773 |
<xsl:text> //clickable.style.visibility = "hidden"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3774 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3775 |
<xsl:text> //clickable.onclick = () => alert("love JS"); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3776 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3777 |
<xsl:text> clickable.onclick = func; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3778 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3779 |
<xsl:text> this.element.appendChild(clickable); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3780 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3781 |
<xsl:text> this.clickables.push(clickable) |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3782 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3783 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3784 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3785 |
<xsl:text> reset_clickables() { |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3786 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3787 |
<xsl:text> while(this.clickables.length){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3788 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3789 |
<xsl:text> this.element.removeChild(this.clickables.pop()); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3790 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3791 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3792 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3793 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3794 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3795 |
<xsl:text> // Set text content when content is smaller than menu (no scrolling) |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3796 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3797 |
<xsl:text> set_complete_text(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3798 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3799 |
<xsl:text> let spans = this.text_elt.children; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3800 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3801 |
<xsl:text> let c = 0; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3802 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3803 |
<xsl:text> for(let item of this.content){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3804 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3805 |
<xsl:text> let span=spans[c]; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3806 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3807 |
<xsl:text> span.textContent = item; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3808 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3809 |
<xsl:text> let sel = c; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3810 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3811 |
<xsl:text> this.make_clickable(span, (evt) => this.bound_on_selection_click(sel)); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3812 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3813 |
<xsl:text> c++; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3814 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3815 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3816 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3817 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3818 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3819 |
<xsl:text> // Move partial view : |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3820 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3821 |
<xsl:text> // false : upward, lower value |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3822 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3823 |
<xsl:text> // true : downward, higher value |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3824 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3825 |
<xsl:text> scroll(forward){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3826 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3827 |
<xsl:text> let contentlength = this.content.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3828 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3829 |
<xsl:text> let spans = this.text_elt.children; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3830 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3831 |
<xsl:text> let spanslength = spans.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3832 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3833 |
<xsl:text> // reduce accounted menu size according to prsence of scroll buttons |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3834 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3835 |
<xsl:text> // since we scroll there is necessarly one button |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3836 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3837 |
<xsl:text> spanslength--; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3838 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3839 |
<xsl:text> if(forward){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3840 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3841 |
<xsl:text> // reduce accounted menu size because of back button |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3842 |
</xsl:text> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3843 |
<xsl:text> // in current view |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3844 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3845 |
<xsl:text> if(this.menu_offset > 0) spanslength--; |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3846 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3847 |
<xsl:text> this.menu_offset = Math.min( |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3848 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3849 |
<xsl:text> contentlength - spans.length + 1, |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3850 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3851 |
<xsl:text> this.menu_offset + spanslength); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3852 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3853 |
<xsl:text> }else{ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3854 |
</xsl:text> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3855 |
<xsl:text> // reduce accounted menu size because of back button |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3856 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3857 |
<xsl:text> // in view once scrolled |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
3858 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3859 |
<xsl:text> if(this.menu_offset - spanslength > 0) spanslength--; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3860 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3861 |
<xsl:text> this.menu_offset = Math.max( |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3862 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3863 |
<xsl:text> 0, |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3864 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3865 |
<xsl:text> this.menu_offset - spanslength); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3866 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3867 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3868 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3869 |
<xsl:text> if(this.menu_offset == 1) |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3870 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3871 |
<xsl:text> this.menu_offset = 0; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3872 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3873 |
<xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3874 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3875 |
<xsl:text> this.reset_highlight(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3876 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3877 |
<xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3878 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3879 |
<xsl:text> this.reset_clickables(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3880 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3881 |
<xsl:text> this.set_partial_text(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3882 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3883 |
<xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3884 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3885 |
<xsl:text> this.highlight_selection(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3886 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3887 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3888 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3889 |
<xsl:text> // Setup partial view text content |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3890 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3891 |
<xsl:text> // with jumps at first and last entry when appropriate |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3892 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3893 |
<xsl:text> set_partial_text(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3894 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3895 |
<xsl:text> let spans = this.text_elt.children; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3896 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3897 |
<xsl:text> let contentlength = this.content.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3898 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3899 |
<xsl:text> let spanslength = spans.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3900 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3901 |
<xsl:text> let i = this.menu_offset, c = 0; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3902 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3903 |
<xsl:text> let m = this.box_bbox; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3904 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3905 |
<xsl:text> while(c < spanslength){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3906 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3907 |
<xsl:text> let span=spans[c]; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3908 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3909 |
<xsl:text> let onclickfunc; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3910 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3911 |
<xsl:text> // backward jump only present if not exactly at start |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3912 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3913 |
<xsl:text> if(c == 0 && i != 0){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3914 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3915 |
<xsl:text> span.textContent = "▲"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3916 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3917 |
<xsl:text> onclickfunc = this.bound_on_backward_click; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3918 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3919 |
<xsl:text> let o = span.getBBox(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3920 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3921 |
<xsl:text> span.setAttribute("dx", (m.width - o.width)/2); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3922 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3923 |
<xsl:text> // presence of forward jump when not right at the end |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3924 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3925 |
<xsl:text> }else if(c == spanslength-1 && i < contentlength - 1){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3926 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3927 |
<xsl:text> span.textContent = "▼"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3928 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3929 |
<xsl:text> onclickfunc = this.bound_on_forward_click; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3930 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3931 |
<xsl:text> let o = span.getBBox(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3932 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3933 |
<xsl:text> span.setAttribute("dx", (m.width - o.width)/2); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3934 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3935 |
<xsl:text> // otherwise normal content |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3936 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3937 |
<xsl:text> }else{ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3938 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3939 |
<xsl:text> span.textContent = this.content[i]; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3940 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3941 |
<xsl:text> let sel = i; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3942 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3943 |
<xsl:text> onclickfunc = (evt) => this.bound_on_selection_click(sel); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3944 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3945 |
<xsl:text> span.removeAttribute("dx"); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3946 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3947 |
<xsl:text> i++; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3948 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3949 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3950 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3951 |
<xsl:text> this.make_clickable(span, onclickfunc); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3952 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3953 |
<xsl:text> c++; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3954 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3955 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3956 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3957 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3958 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3959 |
<xsl:text> open(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3960 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3961 |
<xsl:text> let length = this.content.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3962 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3963 |
<xsl:text> // systematically reset text, to strip eventual whitespace spans |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3964 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3965 |
<xsl:text> this.reset_text(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3966 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3967 |
<xsl:text> // grow as much as needed or possible |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3968 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3969 |
<xsl:text> let slots = this.grow_text(length); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3970 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3971 |
<xsl:text> // Depending on final size |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3972 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3973 |
<xsl:text> if(slots == length) { |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3974 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3975 |
<xsl:text> // show all at once |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3976 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3977 |
<xsl:text> this.set_complete_text(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3978 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3979 |
<xsl:text> } else { |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3980 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3981 |
<xsl:text> // eventualy align menu to current selection, compensating for lift |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3982 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3983 |
<xsl:text> let offset = this.last_selection - this.lift; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3984 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3985 |
<xsl:text> if(offset > 0) |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3986 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3987 |
<xsl:text> this.menu_offset = Math.min(offset + 1, length - slots + 1); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3988 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3989 |
<xsl:text> else |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3990 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3991 |
<xsl:text> this.menu_offset = 0; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3992 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3993 |
<xsl:text> // show surrounding values |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3994 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3995 |
<xsl:text> this.set_partial_text(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3996 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3997 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3998 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
3999 |
<xsl:text> // Now that text size is known, we can set the box around it |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4000 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4001 |
<xsl:text> this.adjust_box_to_text(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4002 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4003 |
<xsl:text> // Take button out until menu closed |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4004 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4005 |
<xsl:text> this.element.removeChild(this.button_elt); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4006 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4007 |
<xsl:text> // Rise widget to top by moving it to last position among siblings |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4008 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4009 |
<xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4010 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4011 |
<xsl:text> // disable interaction with background |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4012 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4013 |
<xsl:text> svg_root.addEventListener("pointerdown", numb_event, true); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4014 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4015 |
<xsl:text> svg_root.addEventListener("pointerup", numb_event, true); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4016 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4017 |
<xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4018 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4019 |
<xsl:text> this.highlight_selection(); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4020 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4021 |
<xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4022 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4023 |
<xsl:text> // mark as open |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4024 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4025 |
<xsl:text> this.opened = true; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4026 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4027 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4028 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4029 |
<xsl:text> // Put text element in normalized state |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4030 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4031 |
<xsl:text> reset_text(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4032 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4033 |
<xsl:text> let txt = this.text_elt; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4034 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4035 |
<xsl:text> let first = txt.firstElementChild; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4036 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4037 |
<xsl:text> // remove attribute eventually added to first text line while opening |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4038 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4039 |
<xsl:text> first.onclick = null; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4040 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4041 |
<xsl:text> first.removeAttribute("dy"); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4042 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4043 |
<xsl:text> first.removeAttribute("dx"); |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4044 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4045 |
<xsl:text> // keep only the first line of text |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4046 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4047 |
<xsl:text> for(let span of Array.from(txt.children).slice(1)){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4048 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4049 |
<xsl:text> txt.removeChild(span) |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4050 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4051 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4052 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4053 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4054 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4055 |
<xsl:text> // Put rectangle element in saved original state |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4056 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4057 |
<xsl:text> reset_box(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4058 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4059 |
<xsl:text> let m = this.box_bbox; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4060 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4061 |
<xsl:text> let b = this.box_elt; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4062 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4063 |
<xsl:text> b.x.baseVal.value = m.x; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4064 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4065 |
<xsl:text> b.y.baseVal.value = m.y; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4066 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4067 |
<xsl:text> b.width.baseVal.value = m.width; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4068 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4069 |
<xsl:text> b.height.baseVal.value = m.height; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4070 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4071 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4072 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4073 |
<xsl:text> highlight_selection(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4074 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
4075 |
<xsl:text> if(this.last_selection == undefined) return; |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
4076 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4077 |
<xsl:text> let highlighted_row = this.last_selection - this.menu_offset; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4078 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4079 |
<xsl:text> if(highlighted_row < 0) return; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4080 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4081 |
<xsl:text> let spans = this.text_elt.children; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4082 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4083 |
<xsl:text> let spanslength = spans.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4084 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4085 |
<xsl:text> let contentlength = this.content.length; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4086 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4087 |
<xsl:text> if(this.menu_offset != 0) { |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4088 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4089 |
<xsl:text> spanslength--; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4090 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4091 |
<xsl:text> highlighted_row++; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4092 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4093 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4094 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4095 |
<xsl:text> if(this.menu_offset + spanslength < contentlength - 1) spanslength--; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4096 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4097 |
<xsl:text> if(highlighted_row > spanslength) return; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4098 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4099 |
<xsl:text> let original_text_y = this.text_bbox.y; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4100 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4101 |
<xsl:text> let highlight = this.highlight_elt; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4102 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4103 |
<xsl:text> let span = spans[highlighted_row]; |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4104 |
</xsl:text> |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4105 |
<xsl:text> let yoffset = span.getBBox().y - original_text_y; |
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4106 |
</xsl:text> |
3092
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4107 |
<xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y + yoffset; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4108 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4109 |
<xsl:text> highlight.style.visibility = "visible"; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4110 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4111 |
<xsl:text> } |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4112 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4113 |
<xsl:text> reset_highlight(){ |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4114 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4115 |
<xsl:text> let highlight = this.highlight_elt; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4116 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4117 |
<xsl:text> highlight.y.baseVal.value = this.highlight_bbox.y; |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4118 |
</xsl:text> |
96ffd8b1b016
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant
parents:
3091
diff
changeset
|
4119 |
<xsl:text> highlight.style.visibility = "hidden"; |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4120 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4121 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4122 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4123 |
<xsl:text> // Use margin and text size to compute box size |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4124 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4125 |
<xsl:text> adjust_box_to_text(){ |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4126 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4127 |
<xsl:text> let [lmargin, tmargin] = this.margins; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4128 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4129 |
<xsl:text> let m = this.text_elt.getBBox(); |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4130 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4131 |
<xsl:text> let b = this.box_elt; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4132 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4133 |
<xsl:text> // b.x.baseVal.value = m.x - lmargin; |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4134 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4135 |
<xsl:text> b.y.baseVal.value = m.y - tmargin; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4136 |
</xsl:text> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4137 |
<xsl:text> // b.width.baseVal.value = 2 * lmargin + m.width; |
3090
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4138 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4139 |
<xsl:text> b.height.baseVal.value = 2 * tmargin + m.height; |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4140 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4141 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4142 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4143 |
<xsl:text> } |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4144 |
</xsl:text> |
9e172e4e50c7
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant
parents:
3085
diff
changeset
|
4145 |
</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
|
4146 |
<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
|
4147 |
<xsl:param name="hmi_element"/> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4148 |
<xsl:call-template name="defs_by_labels"> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4149 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4150 |
<xsl:with-param name="labels"> |
3091
f475f39713aa
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant
parents:
3090
diff
changeset
|
4151 |
<xsl:text>text box button highlight</xsl:text> |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4152 |
</xsl:with-param> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4153 |
</xsl:call-template> |
3134
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4154 |
<xsl:text> content:</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4155 |
<xsl:choose> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4156 |
<xsl:when test="count(arg) = 1 and arg[1]/@value = '#langs'"> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4157 |
<xsl:text>langs</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4158 |
</xsl:when> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4159 |
<xsl:otherwise> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4160 |
<xsl:text>[ |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4161 |
</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4162 |
<xsl:for-each select="arg"> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4163 |
<xsl:text>"</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4164 |
<xsl:value-of select="@value"/> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4165 |
<xsl:text>", |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4166 |
</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4167 |
</xsl:for-each> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4168 |
<xsl:text> ]</xsl:text> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4169 |
</xsl:otherwise> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4170 |
</xsl:choose> |
af558c9a5141
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3128
diff
changeset
|
4171 |
<xsl:text>, |
2922
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4172 |
</xsl:text> |
ddce4ebdf010
SVGHMI: intermediate commit while working on dropdown widget.
Edouard Tisserant
parents:
2921
diff
changeset
|
4173 |
</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
|
4174 |
<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
|
4175 |
<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
|
4176 |
<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
|
4177 |
<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
|
4178 |
<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
|
4179 |
<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
|
4180 |
<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
|
4181 |
</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
|
4182 |
</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
|
4183 |
<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
|
4184 |
<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
|
4185 |
<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
|
4186 |
<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
|
4187 |
<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
|
4188 |
</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
|
4189 |
</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
|
4190 |
<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
|
4191 |
<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
|
4192 |
<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
|
4193 |
<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
|
4194 |
<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
|
4195 |
<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
|
4196 |
<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
|
4197 |
<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
|
4198 |
</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
|
4199 |
<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
|
4200 |
<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
|
4201 |
<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
|
4202 |
<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
|
4203 |
<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
|
4204 |
</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
|
4205 |
<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
|
4206 |
</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
|
4207 |
</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
|
4208 |
<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
|
4209 |
</xsl:text> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
4210 |
<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
|
4211 |
</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
|
4212 |
<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
|
4213 |
<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
|
4214 |
<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
|
4215 |
<xsl:for-each select="$buttons"> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
4216 |
<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
|
4217 |
<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
|
4218 |
<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
|
4219 |
<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
|
4220 |
<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
|
4221 |
<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
|
4222 |
<xsl:value-of select="$op"/> |
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
4223 |
<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
|
4224 |
</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
|
4225 |
</xsl:for-each> |
2896
99c5335ed59f
SVGHMI: Widget ForEach buttons now call corresponding methods.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2895
diff
changeset
|
4226 |
<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
|
4227 |
</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
|
4228 |
<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
|
4229 |
</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
|
4230 |
<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
|
4231 |
<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
|
4232 |
<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
|
4233 |
<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
|
4234 |
<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
|
4235 |
<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
|
4236 |
<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
|
4237 |
<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
|
4238 |
<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
|
4239 |
<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
|
4240 |
<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
|
4241 |
<xsl:text>" */ |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4242 |
</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
|
4243 |
<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
|
4244 |
<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
|
4245 |
<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
|
4246 |
<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
|
4247 |
<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
|
4248 |
<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
|
4249 |
</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
|
4250 |
</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
|
4251 |
<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
|
4252 |
<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
|
4253 |
<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
|
4254 |
<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
|
4255 |
<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
|
4256 |
<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
|
4257 |
<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
|
4258 |
<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
|
4259 |
<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
|
4260 |
<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
|
4261 |
<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
|
4262 |
<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
|
4263 |
</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
|
4264 |
</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
|
4265 |
<xsl:text> hmi_widgets["</xsl:text> |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4266 |
<xsl:value-of select="@id"/> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4267 |
<xsl:text>"]</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4268 |
<xsl:if test="position()!=last()"> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4269 |
<xsl:text>,</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4270 |
</xsl:if> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4271 |
<xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4272 |
</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4273 |
</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
|
4274 |
<xsl:text> ]</xsl:text> |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4275 |
<xsl:if test="position()!=last()"> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4276 |
<xsl:text>,</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4277 |
</xsl:if> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4278 |
<xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4279 |
</xsl:text> |
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4280 |
</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
|
4281 |
<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
|
4282 |
</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
|
4283 |
<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
|
4284 |
</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
|
4285 |
<xsl:text> item_offset: 0, |
2892
27dd409fba1d
SVGHMI: ForEach knows its own widgets
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2890
diff
changeset
|
4286 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4287 |
</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
|
4288 |
<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
|
4289 |
<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
|
4290 |
</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
|
4291 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4292 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4293 |
<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
|
4294 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4295 |
<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
|
4296 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4297 |
<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
|
4298 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4299 |
<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
|
4300 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4301 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4302 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4303 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4304 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4305 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4306 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4307 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4308 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4309 |
<xsl:text> unsub(){ |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4310 |
</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
|
4311 |
<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
|
4312 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4313 |
<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
|
4314 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4315 |
<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
|
4316 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4317 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4318 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4319 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4320 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4321 |
<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
|
4322 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4323 |
<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
|
4324 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4325 |
<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
|
4326 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4327 |
<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
|
4328 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4329 |
<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
|
4330 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4331 |
<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
|
4332 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4333 |
<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
|
4334 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4335 |
<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
|
4336 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4337 |
<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
|
4338 |
</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
|
4339 |
<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
|
4340 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4341 |
<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
|
4342 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4343 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4344 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4345 |
<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
|
4346 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4347 |
<xsl:text> */ |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4348 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4349 |
<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
|
4350 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4351 |
<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
|
4352 |
</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
|
4353 |
<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
|
4354 |
</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
|
4355 |
<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
|
4356 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4357 |
<xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4358 |
</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
|
4359 |
<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
|
4360 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4361 |
<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
|
4362 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4363 |
<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
|
4364 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4365 |
<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
|
4366 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4367 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4368 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4369 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4370 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4371 |
<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
|
4372 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4373 |
<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
|
4374 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4375 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4376 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4377 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4378 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4379 |
<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
|
4380 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4381 |
<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
|
4382 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4383 |
<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
|
4384 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4385 |
<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
|
4386 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4387 |
<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
|
4388 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4389 |
<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
|
4390 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4391 |
<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
|
4392 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4393 |
<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
|
4394 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4395 |
<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
|
4396 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4397 |
<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
|
4398 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4399 |
<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
|
4400 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4401 |
<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
|
4402 |
</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
|
4403 |
<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
|
4404 |
</xsl:text> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4405 |
<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
|
4406 |
</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
|
4407 |
<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
|
4408 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
4409 |
<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
|
4410 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4411 |
<xsl:text> update_subscriptions(); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4412 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4413 |
<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
|
4414 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4415 |
<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
|
4416 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4417 |
<xsl:text> requestHMIAnimation(); |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4418 |
</xsl:text> |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
4419 |
<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
|
4420 |
</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
|
4421 |
<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
|
4422 |
</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
|
4423 |
</xsl:template> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4424 |
<xsl:template mode="widget_class" match="widget[@type='Input']"> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4425 |
<xsl:text> class InputWidget extends Widget{ |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4426 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4427 |
<xsl:text> on_op_click(opstr) { |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4428 |
</xsl:text> |
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
4429 |
<xsl:text> this.change_hmi_value(0, opstr); |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4430 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4431 |
<xsl:text> } |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4432 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4433 |
<xsl:text> edit_callback(new_val) { |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4434 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4435 |
<xsl:text> this.apply_hmi_value(0, new_val); |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4436 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4437 |
<xsl:text> } |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4438 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4439 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4440 |
</xsl:text> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4441 |
<xsl:text> is_inhibited = false; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4442 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4443 |
<xsl:text> alert(msg){ |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4444 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4445 |
<xsl:text> this.is_inhibited = true; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4446 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4447 |
<xsl:text> this.display = msg; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4448 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4449 |
<xsl:text> setTimeout(() => this.stopalert(), 1000); |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4450 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4451 |
<xsl:text> this.request_animate(); |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4452 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4453 |
<xsl:text> } |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4454 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4455 |
<xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4456 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4457 |
<xsl:text> stopalert(){ |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4458 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4459 |
<xsl:text> this.is_inhibited = false; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4460 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4461 |
<xsl:text> this.display = this.last_value; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4462 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4463 |
<xsl:text> this.request_animate(); |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4464 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4465 |
<xsl:text> } |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4466 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4467 |
<xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4468 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4469 |
<xsl:text> overshot(new_val, max) { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4470 |
</xsl:text> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4471 |
<xsl:text> this.alert("max"); |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4472 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4473 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4474 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4475 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4476 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4477 |
<xsl:text> undershot(new_val, min) { |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4478 |
</xsl:text> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4479 |
<xsl:text> this.alert("min"); |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4480 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4481 |
<xsl:text> } |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4482 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4483 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4484 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4485 |
<xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4486 |
</xsl:text> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4487 |
<xsl:text> } |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4488 |
</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4489 |
</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
|
4490 |
<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
|
4491 |
<xsl:param name="hmi_element"/> |
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
|
4492 |
<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
|
4493 |
<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
|
4494 |
<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
|
4495 |
<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
|
4496 |
<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
|
4497 |
</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
|
4498 |
<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
|
4499 |
</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
|
4500 |
</xsl:variable> |
2861
84c16ece8e10
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant
parents:
2859
diff
changeset
|
4501 |
<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
|
4502 |
<xsl:value-of select="$value_elt"/> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4503 |
<xsl:variable name="edit_elt"> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4504 |
<xsl:call-template name="defs_by_labels"> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4505 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4506 |
<xsl:with-param name="labels"> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4507 |
<xsl:text>edit</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4508 |
</xsl:with-param> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4509 |
<xsl:with-param name="mandatory" select="'no'"/> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4510 |
</xsl:call-template> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4511 |
</xsl:variable> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4512 |
<xsl:variable name="have_edit" select="string-length($edit_elt)>0"/> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4513 |
<xsl:value-of select="$edit_elt"/> |
2861
84c16ece8e10
SVGHMI: fixed repeated error when Input widget is missing 'value' element
Edouard Tisserant
parents:
2859
diff
changeset
|
4514 |
<xsl:if test="$have_value"> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4515 |
<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
|
4516 |
</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
|
4517 |
</xsl:if> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4518 |
<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
|
4519 |
</xsl:text> |
3155
99ce78ddd353
SVGHMI: finally found why HMI:Input wasnt't initializing properly: vsprintf takes a list. Also, removed intermediate variable last_val, since edit_value() works on strings anyhow, and in case of formated floats, it is better to workl on already formated value.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3154
diff
changeset
|
4520 |
<xsl:if test="$have_value or $have_edit"> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4521 |
<xsl:choose> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4522 |
<xsl:when test="count(arg) = 1"> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4523 |
<xsl:text> this.last_value = vsprintf("</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4524 |
<xsl:value-of select="arg[1]/@value"/> |
3155
99ce78ddd353
SVGHMI: finally found why HMI:Input wasnt't initializing properly: vsprintf takes a list. Also, removed intermediate variable last_val, since edit_value() works on strings anyhow, and in case of formated floats, it is better to workl on already formated value.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3154
diff
changeset
|
4525 |
<xsl:text>", [value]); |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4526 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4527 |
</xsl:when> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4528 |
<xsl:otherwise> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4529 |
<xsl:text> this.last_value = value; |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4530 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4531 |
</xsl:otherwise> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4532 |
</xsl:choose> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4533 |
<xsl:text> if(!this.is_inhibited){ |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4534 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4535 |
<xsl:text> this.display = this.last_value; |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4536 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4537 |
<xsl:if test="$have_value"> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4538 |
<xsl:text> this.request_animate(); |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4539 |
</xsl:text> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4540 |
</xsl:if> |
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4541 |
<xsl:text> } |
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
|
4542 |
</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
|
4543 |
</xsl:if> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4544 |
<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
|
4545 |
</xsl:text> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4546 |
<xsl:if test="$have_value"> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4547 |
<xsl:text> animate: function(){ |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4548 |
</xsl:text> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4549 |
<xsl:text> this.value_elt.textContent = String(this.display); |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4550 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4551 |
<xsl:text> }, |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4552 |
</xsl:text> |
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
4553 |
</xsl:if> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4554 |
<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
|
4555 |
</xsl:text> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4556 |
<xsl:if test="$have_edit"> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
4557 |
<xsl:text> this.edit_elt.onclick = () => edit_value("</xsl:text> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4558 |
<xsl:value-of select="path/@value"/> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4559 |
<xsl:text>", "</xsl:text> |
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4560 |
<xsl:value-of select="path/@type"/> |
3188
c173452bf894
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.
Edouard Tisserant
parents:
3187
diff
changeset
|
4561 |
<xsl:text>", this, this.last_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
|
4562 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4563 |
<xsl:if test="$have_value"> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4564 |
<xsl:text> this.value_elt.style.pointerEvents = "none"; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4565 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
4566 |
</xsl:if> |
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
|
4567 |
</xsl:if> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
4568 |
<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
|
4569 |
<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
|
4570 |
<xsl:value-of select="@id"/> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4571 |
<xsl:text>").onclick = () => this.on_op_click("</xsl:text> |
2829
4c2c50f60730
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant
parents:
2828
diff
changeset
|
4572 |
<xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
3094
3e184f1e1012
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3092
diff
changeset
|
4573 |
<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
|
4574 |
</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
|
4575 |
</xsl:for-each> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
4576 |
<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
|
4577 |
</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
|
4578 |
</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
|
4579 |
<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
|
4580 |
<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
|
4581 |
</xsl:text> |
3069
a9b03c2634c5
Arbitrary variables added to JsonTable subscription are now passed as 'extra' field in json query. As an example added JsonTable filtering in tests/svghmi
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3068
diff
changeset
|
4582 |
<xsl:text> // arbitrary defaults to avoid missing entries in query |
a9b03c2634c5
Arbitrary variables added to JsonTable subscription are now passed as 'extra' field in json query. As an example added JsonTable filtering in tests/svghmi
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3068
diff
changeset
|
4583 |
</xsl:text> |
3187
ba8ff21fd82b
SVGHMI: change default values for JsonTable, leading to scrollbar initialized at annoying non-zero position
Edouard Tisserant
parents:
3186
diff
changeset
|
4584 |
<xsl:text> cache = [0,0,0]; |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4585 |
</xsl:text> |
3181
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
4586 |
<xsl:text> init_common() { |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4587 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4588 |
<xsl:text> this.spread_json_data_bound = this.spread_json_data.bind(this); |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4589 |
</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4590 |
<xsl:text> this.handle_http_response_bound = this.handle_http_response.bind(this); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4591 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4592 |
<xsl:text> this.fetch_error_bound = this.fetch_error.bind(this); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4593 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4594 |
<xsl:text> this.promised = false; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4595 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4596 |
<xsl:text> } |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4597 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4598 |
<xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4599 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4600 |
<xsl:text> handle_http_response(response) { |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4601 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4602 |
<xsl:text> if (!response.ok) { |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4603 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4604 |
<xsl:text> console.log("HTTP error, status = " + response.status); |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4605 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4606 |
<xsl:text> } |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4607 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4608 |
<xsl:text> return response.json(); |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4609 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4610 |
<xsl:text> } |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4611 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4612 |
<xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4613 |
</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4614 |
<xsl:text> fetch_error(e){ |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4615 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4616 |
<xsl:text> console.log("HTTP fetch error, message = " + e.message + "Widget:" + this.element_id); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4617 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4618 |
<xsl:text> } |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4619 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4620 |
<xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4621 |
</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
|
4622 |
<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
|
4623 |
</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4624 |
<xsl:text> this.abort_controller = new AbortController(); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4625 |
</xsl:text> |
3195
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4626 |
<xsl:text> return Promise.resolve().then(() => { |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4627 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4628 |
<xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4629 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4630 |
<xsl:text> const query = { |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4631 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4632 |
<xsl:text> args: this.args, |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4633 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4634 |
<xsl:text> range: this.cache[1], |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4635 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4636 |
<xsl:text> position: this.cache[2], |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4637 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4638 |
<xsl:text> visible: this.visible, |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4639 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4640 |
<xsl:text> extra: this.cache.slice(4), |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4641 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4642 |
<xsl:text> options: opt |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4643 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4644 |
<xsl:text> }; |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4645 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4646 |
<xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4647 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4648 |
<xsl:text> const options = { |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4649 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4650 |
<xsl:text> method: 'POST', |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4651 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4652 |
<xsl:text> body: JSON.stringify(query), |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4653 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4654 |
<xsl:text> headers: {'Content-Type': 'application/json'}, |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4655 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4656 |
<xsl:text> signal: this.abort_controller.signal |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4657 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4658 |
<xsl:text> }; |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4659 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4660 |
<xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4661 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4662 |
<xsl:text> return fetch(this.args[0], options) |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4663 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4664 |
<xsl:text> .then(this.handle_http_response_bound) |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4665 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4666 |
<xsl:text> .then(this.spread_json_data_bound) |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4667 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4668 |
<xsl:text> .catch(this.fetch_error_bound); |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4669 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4670 |
<xsl:text> }); |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4671 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4672 |
<xsl:text> } |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4673 |
</xsl:text> |
cdd2a032b424
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Edouard Tisserant
parents:
3191
diff
changeset
|
4674 |
<xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4675 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4676 |
<xsl:text> unsub(){ |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4677 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4678 |
<xsl:text> this.abort_controller.abort(); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4679 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4680 |
<xsl:text> super.unsub(); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4681 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4682 |
<xsl:text> } |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4683 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4684 |
<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
|
4685 |
</xsl:text> |
3189
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4686 |
<xsl:text> sub(...args){ |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4687 |
</xsl:text> |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4688 |
<xsl:text> this.cache[0] = undefined; |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4689 |
</xsl:text> |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4690 |
<xsl:text> super.sub(...args); |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4691 |
</xsl:text> |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4692 |
<xsl:text> } |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4693 |
</xsl:text> |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4694 |
<xsl:text> |
0733114a2090
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.
Edouard Tisserant
parents:
3188
diff
changeset
|
4695 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
4696 |
<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
|
4697 |
</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4698 |
<xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4699 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4700 |
<xsl:text> if(this.cache[index] != value) |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4701 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4702 |
<xsl:text> this.cache[index] = value; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4703 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4704 |
<xsl:text> else |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4705 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4706 |
<xsl:text> return; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4707 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4708 |
<xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4709 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4710 |
<xsl:text> if(!this.promised){ |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4711 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4712 |
<xsl:text> this.promised = true; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4713 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4714 |
<xsl:text> this.do_http_request().finally(() => { |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4715 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4716 |
<xsl:text> this.promised = false; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4717 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4718 |
<xsl:text> }); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4719 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4720 |
<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
|
4721 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
4722 |
<xsl:text> } |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
4723 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4724 |
<xsl:text> make_on_click(...options){ |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4725 |
</xsl:text> |
3084 | 4726 |
<xsl:text> let that = this; |
4727 |
</xsl:text> |
|
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4728 |
<xsl:text> return function(evt){ |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4729 |
</xsl:text> |
3084 | 4730 |
<xsl:text> that.do_http_request(...options); |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4731 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4732 |
<xsl:text> } |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4733 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4734 |
<xsl:text> } |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4735 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4736 |
<xsl:text> // on_click(evt, ...options) { |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4737 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4738 |
<xsl:text> // this.do_http_request(...options); |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4739 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4740 |
<xsl:text> // } |
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
|
4741 |
</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
|
4742 |
<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
|
4743 |
</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
|
4744 |
</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
|
4745 |
<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
|
4746 |
<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
|
4747 |
<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
|
4748 |
<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
|
4749 |
<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
|
4750 |
</xsl:message> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
4751 |
</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
|
4752 |
<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
|
4753 |
<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
|
4754 |
<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
|
4755 |
<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
|
4756 |
<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
|
4757 |
<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
|
4758 |
<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
|
4759 |
</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
|
4760 |
<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
|
4761 |
<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
|
4762 |
<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
|
4763 |
<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
|
4764 |
</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
|
4765 |
</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
|
4766 |
</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
|
4767 |
</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
|
4768 |
</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
|
4769 |
</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
|
4770 |
<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
|
4771 |
<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
|
4772 |
<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
|
4773 |
<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
|
4774 |
<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
|
4775 |
<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
|
4776 |
<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
|
4777 |
<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
|
4778 |
<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
|
4779 |
<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
|
4780 |
<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
|
4781 |
<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
|
4782 |
<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
|
4783 |
<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
|
4784 |
<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
|
4785 |
<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
|
4786 |
<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
|
4787 |
<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
|
4788 |
<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
|
4789 |
</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
|
4790 |
</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
|
4791 |
<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
|
4792 |
<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
|
4793 |
</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
|
4794 |
<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
|
4795 |
<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
|
4796 |
<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
|
4797 |
</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
|
4798 |
</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
|
4799 |
<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
|
4800 |
<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
|
4801 |
<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
|
4802 |
<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
|
4803 |
<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
|
4804 |
</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
|
4805 |
</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
|
4806 |
</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
|
4807 |
</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
|
4808 |
</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
|
4809 |
</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
|
4810 |
<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
|
4811 |
</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
|
4812 |
<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
|
4813 |
<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
|
4814 |
</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
|
4815 |
</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
|
4816 |
</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
|
4817 |
<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
|
4818 |
<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
|
4819 |
<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
|
4820 |
<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
|
4821 |
</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
|
4822 |
</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
|
4823 |
</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
|
4824 |
<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
|
4825 |
<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
|
4826 |
<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
|
4827 |
<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
|
4828 |
<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
|
4829 |
<xsl:choose> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4830 |
<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
|
4831 |
<xsl:text> id("</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4832 |
<xsl:value-of select="@id"/> |
3084 | 4833 |
<xsl:text>").setAttribute("xlink:href", |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4834 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4835 |
<xsl:text> "#"+hmi_widgets["</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4836 |
<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
|
4837 |
<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
|
4838 |
<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
|
4839 |
<xsl:text>]); |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4840 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4841 |
</xsl:when> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4842 |
<xsl:otherwise> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4843 |
<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
|
4844 |
<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
|
4845 |
<xsl:value-of select="@xlink:href"/> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4846 |
<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
|
4847 |
</xsl:message> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4848 |
</xsl:otherwise> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
4849 |
</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
|
4850 |
</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
|
4851 |
<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
|
4852 |
<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
|
4853 |
<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
|
4854 |
<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
|
4855 |
<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
|
4856 |
<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
|
4857 |
<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
|
4858 |
<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
|
4859 |
<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
|
4860 |
<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
|
4861 |
<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
|
4862 |
</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
|
4863 |
</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
|
4864 |
<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
|
4865 |
</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
|
4866 |
<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
|
4867 |
<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
|
4868 |
<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
|
4869 |
</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
|
4870 |
<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
|
4871 |
<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
|
4872 |
<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
|
4873 |
</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
|
4874 |
<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
|
4875 |
<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
|
4876 |
<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
|
4877 |
<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
|
4878 |
<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
|
4879 |
</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
|
4880 |
<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
|
4881 |
</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
|
4882 |
</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
|
4883 |
<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
|
4884 |
<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
|
4885 |
<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
|
4886 |
<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
|
4887 |
<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
|
4888 |
<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
|
4889 |
</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
|
4890 |
</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
|
4891 |
</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
|
4892 |
</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
|
4893 |
<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
|
4894 |
<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
|
4895 |
<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
|
4896 |
<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
|
4897 |
<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
|
4898 |
<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
|
4899 |
<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
|
4900 |
</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
|
4901 |
<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
|
4902 |
<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
|
4903 |
</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
|
4904 |
</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
|
4905 |
</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
|
4906 |
<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
|
4907 |
</func:function> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4908 |
<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
|
4909 |
<xsl:param name="expressions"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4910 |
<xsl:param name="widget_elts"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4911 |
<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
|
4912 |
<xsl:if test="not(starts-with($label,'#'))"> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4913 |
<xsl:apply-templates mode="json_table_render" select="."> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4914 |
<xsl:with-param name="expressions" select="$expressions"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4915 |
<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
|
4916 |
<xsl:with-param name="label" select="$label"/> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4917 |
</xsl:apply-templates> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4918 |
</xsl:if> |
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4919 |
</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
|
4920 |
<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
|
4921 |
<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
|
4922 |
<xsl:param name="widget_elts"/> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4923 |
<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
|
4924 |
<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
|
4925 |
<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
|
4926 |
<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
|
4927 |
<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
|
4928 |
<xsl:value-of select="$elt/@id"/> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4929 |
<xsl:text>").onclick = this.make_on_click('</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
|
4930 |
<xsl:value-of select="@name"/> |
3084 | 4931 |
<xsl:text>', </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
|
4932 |
<xsl:value-of select="@content"/> |
3084 | 4933 |
<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
|
4934 |
</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
|
4935 |
</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
|
4936 |
<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
|
4937 |
<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
|
4938 |
</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
|
4939 |
</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
|
4940 |
<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
|
4941 |
<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
|
4942 |
<xsl:param name="widget_elts"/> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4943 |
<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
|
4944 |
<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
|
4945 |
<xsl:text>obj_</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4946 |
<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
|
4947 |
<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
|
4948 |
</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
|
4949 |
<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
|
4950 |
</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
|
4951 |
<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
|
4952 |
<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
|
4953 |
<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
|
4954 |
<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
|
4955 |
<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
|
4956 |
<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
|
4957 |
<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
|
4958 |
</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
|
4959 |
<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
|
4960 |
<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
|
4961 |
<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
|
4962 |
<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
|
4963 |
</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
|
4964 |
<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
|
4965 |
</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
|
4966 |
<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
|
4967 |
</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
|
4968 |
</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
|
4969 |
<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
|
4970 |
<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
|
4971 |
<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
|
4972 |
<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
|
4973 |
<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
|
4974 |
<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
|
4975 |
<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
|
4976 |
</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
|
4977 |
</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
|
4978 |
</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
|
4979 |
</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
|
4980 |
<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
|
4981 |
<xsl:value-of select="@id"/> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4982 |
<xsl:text>").style = "</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
|
4983 |
<xsl:value-of select="@style"/> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4984 |
<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
|
4985 |
</xsl:text> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
4986 |
<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
|
4987 |
<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
|
4988 |
<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
|
4989 |
</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
|
4990 |
<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
|
4991 |
</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
|
4992 |
<xsl:text> id("</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
4993 |
<xsl:value-of select="@id"/> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
4994 |
<xsl:text>").style = "display:none"; |
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
|
4995 |
</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
|
4996 |
<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
|
4997 |
</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
|
4998 |
</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
|
4999 |
<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
|
5000 |
<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
|
5001 |
<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
|
5002 |
<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
|
5003 |
<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
|
5004 |
<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
|
5005 |
</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
|
5006 |
</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
|
5007 |
<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
|
5008 |
<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
|
5009 |
<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
|
5010 |
<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
|
5011 |
</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
|
5012 |
<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
|
5013 |
</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
|
5014 |
<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
|
5015 |
</xsl:text> |
3150
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5016 |
<xsl:text> [[1, range], [2, position], [3, this.visible]].map(([i,v]) => { |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5017 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5018 |
<xsl:text> this.apply_hmi_value(i,v); |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5019 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5020 |
<xsl:text> this.cache[i] = v; |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5021 |
</xsl:text> |
5a1bb6ec48a0
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant
parents:
3147
diff
changeset
|
5022 |
<xsl:text> }); |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
5023 |
</xsl:text> |
3043
d7b009e49e87
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant
parents:
3042
diff
changeset
|
5024 |
<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
|
5025 |
<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
|
5026 |
<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
|
5027 |
</xsl:apply-templates> |
3181
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5028 |
<xsl:text> }, |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5029 |
</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5030 |
<xsl:text> init() { |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5031 |
</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5032 |
<xsl:text> this.init_common(); |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5033 |
</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5034 |
<xsl:for-each select="$hmi_element/*[starts-with(@inkscape:label,'action_')]"> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5035 |
<xsl:text> id("</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5036 |
<xsl:value-of select="@id"/> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5037 |
<xsl:text>").onclick = this.make_on_click("</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5038 |
<xsl:value-of select="func:escape_quotes(@inkscape:label)"/> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5039 |
<xsl:text>"); |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5040 |
</xsl:text> |
50d0fef791d5
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3178
diff
changeset
|
5041 |
</xsl:for-each> |
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
|
5042 |
<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
|
5043 |
</xsl:text> |
14635b09d329
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2994
diff
changeset
|
5044 |
</xsl:template> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5045 |
<xsl:template mode="widget_class" match="widget[@type='Jump']"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5046 |
<xsl:text> class JumpWidget extends Widget{ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5047 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5048 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5049 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5050 |
<xsl:text> activable = false; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5051 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5052 |
<xsl:text> active = false; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5053 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5054 |
<xsl:text> disabled = false; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5055 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5056 |
<xsl:text> frequency = 2; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5057 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5058 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5059 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5060 |
<xsl:text> update_activity() { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5061 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5062 |
<xsl:text> if(this.active) { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5063 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5064 |
<xsl:text> /* show active */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5065 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5066 |
<xsl:text> this.active_elt.setAttribute("style", this.active_elt_style); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5067 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5068 |
<xsl:text> /* hide inactive */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5069 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5070 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5071 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5072 |
<xsl:text> } else { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5073 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5074 |
<xsl:text> /* show inactive */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5075 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5076 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_elt_style); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5077 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5078 |
<xsl:text> /* hide active */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5079 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5080 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5081 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5082 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5083 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5084 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5085 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5086 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5087 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5088 |
<xsl:text> make_on_click() { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5089 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5090 |
<xsl:text> let that = this; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5091 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5092 |
<xsl:text> const name = this.args[0]; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5093 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5094 |
<xsl:text> return function(evt){ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5095 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5096 |
<xsl:text> /* TODO: suport path pointing to local variable whom value |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5097 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5098 |
<xsl:text> would be an HMI_TREE index to jump to a relative page */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5099 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5100 |
<xsl:text> const index = that.indexes.length > 0 ? that.indexes[0] + that.offset : undefined; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5101 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5102 |
<xsl:text> switch_page(name, index); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5103 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5104 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5105 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5106 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5107 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5108 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5109 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5110 |
<xsl:text> notify_page_change(page_name, index) { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5111 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5112 |
<xsl:text> if(this.activable) { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5113 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5114 |
<xsl:text> const ref_index = this.indexes.length > 0 ? this.indexes[0] + this.offset : undefined; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5115 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5116 |
<xsl:text> const ref_name = this.args[0]; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5117 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5118 |
<xsl:text> this.active = ((ref_name == undefined || ref_name == page_name) && index == ref_index); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5119 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5120 |
<xsl:text> this.update_activity(); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5121 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5122 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5123 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5124 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5125 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5126 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5127 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5128 |
<xsl:text> dispatch(value) { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5129 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5130 |
<xsl:text> this.disabled = !Number(value); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5131 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5132 |
<xsl:text> if(this.disabled) { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5133 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5134 |
<xsl:text> /* show disabled */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5135 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5136 |
<xsl:text> this.disabled_elt.setAttribute("style", this.disabled_elt_style); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5137 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5138 |
<xsl:text> /* hide inactive */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5139 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5140 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5141 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5142 |
<xsl:text> /* hide active */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5143 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5144 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5145 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5146 |
<xsl:text> } else { |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5147 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5148 |
<xsl:text> /* hide disabled */ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5149 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5150 |
<xsl:text> this.disabled_elt.setAttribute("style", "display:none"); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5151 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5152 |
<xsl:text> this.update_activity(); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5153 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5154 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5155 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5156 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5157 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5158 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5159 |
</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
|
5160 |
</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
|
5161 |
<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
|
5162 |
<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
|
5163 |
<xsl:variable name="activity"> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5164 |
<xsl:call-template name="defs_by_labels"> |
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
|
5165 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5166 |
<xsl:with-param name="labels"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5167 |
<xsl:text>active inactive</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5168 |
</xsl:with-param> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5169 |
<xsl:with-param name="mandatory" select="'no'"/> |
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
|
5170 |
</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
|
5171 |
</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
|
5172 |
<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
|
5173 |
<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
|
5174 |
<xsl:variable name="disability"> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5175 |
<xsl:call-template name="defs_by_labels"> |
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
|
5176 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5177 |
<xsl:with-param name="labels"> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5178 |
<xsl:text>disabled</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5179 |
</xsl:with-param> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5180 |
<xsl:with-param name="mandatory" select="'no'"/> |
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
|
5181 |
</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
|
5182 |
</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
|
5183 |
<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
|
5184 |
<xsl:value-of select="$disability"/> |
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
|
5185 |
<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
|
5186 |
</xsl:text> |
3084 | 5187 |
<xsl:text> this.element.onclick = this.make_on_click(); |
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
|
5188 |
</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
|
5189 |
<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
|
5190 |
<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
|
5191 |
</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
|
5192 |
<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
|
5193 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5194 |
<xsl:text> this.activable = true; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5195 |
</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
|
5196 |
</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
|
5197 |
<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
|
5198 |
<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
|
5199 |
<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
|
5200 |
</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
|
5201 |
</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
|
5202 |
<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
|
5203 |
<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
|
5204 |
</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
|
5205 |
</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
|
5206 |
</xsl:choose> |
2954
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
5207 |
<xsl:text> }, |
b5dccd0d99ac
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2949
diff
changeset
|
5208 |
</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
|
5209 |
</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
|
5210 |
<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
|
5211 |
<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
|
5212 |
<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
|
5213 |
<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
|
5214 |
<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
|
5215 |
<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
|
5216 |
<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
|
5217 |
</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
|
5218 |
<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
|
5219 |
<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
|
5220 |
</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
|
5221 |
</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
|
5222 |
</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
|
5223 |
<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
|
5224 |
<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
|
5225 |
<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
|
5226 |
<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
|
5227 |
</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
|
5228 |
<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
|
5229 |
<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
|
5230 |
</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
|
5231 |
</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
|
5232 |
</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
|
5233 |
<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
|
5234 |
<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
|
5235 |
<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
|
5236 |
<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
|
5237 |
<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
|
5238 |
<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
|
5239 |
<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
|
5240 |
<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
|
5241 |
<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
|
5242 |
<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
|
5243 |
<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
|
5244 |
</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
|
5245 |
</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
|
5246 |
</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
|
5247 |
</xsl:template> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5248 |
<declarations:jump/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5249 |
<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
|
5250 |
<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
|
5251 |
</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
|
5252 |
<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
|
5253 |
<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
|
5254 |
<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
|
5255 |
</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
|
5256 |
<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
|
5257 |
</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
|
5258 |
<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
|
5259 |
</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
|
5260 |
<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
|
5261 |
</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
|
5262 |
<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
|
5263 |
</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
|
5264 |
<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
|
5265 |
</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
|
5266 |
<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
|
5267 |
</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
|
5268 |
<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
|
5269 |
</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
|
5270 |
<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
|
5271 |
</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
|
5272 |
<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
|
5273 |
</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
|
5274 |
<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
|
5275 |
</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
|
5276 |
</xsl:template> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5277 |
<declarations:keypad/> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
5278 |
<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
|
5279 |
<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
|
5280 |
</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
|
5281 |
<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
|
5282 |
<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
|
5283 |
<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
|
5284 |
</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
|
5285 |
<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
|
5286 |
</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
|
5287 |
<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
|
5288 |
</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
|
5289 |
<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
|
5290 |
</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
|
5291 |
<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
|
5292 |
<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
|
5293 |
<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
|
5294 |
<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
|
5295 |
<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
|
5296 |
<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
|
5297 |
<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
|
5298 |
<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
|
5299 |
<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
|
5300 |
<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
|
5301 |
<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
|
5302 |
<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
|
5303 |
<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
|
5304 |
</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
|
5305 |
</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
|
5306 |
</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
|
5307 |
<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
|
5308 |
</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
|
5309 |
<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
|
5310 |
</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
|
5311 |
</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
|
5312 |
<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
|
5313 |
<xsl:text>class KeypadWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5314 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5315 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5316 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5317 |
<xsl:text> on_key_click(symbols) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5318 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5319 |
<xsl:text> var syms = symbols.split(" "); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5320 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5321 |
<xsl:text> this.shift |= this.caps; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5322 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5323 |
<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
|
5324 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5325 |
<xsl:text> this.shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5326 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5327 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5328 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5329 |
<xsl:text> } |
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> on_Esc_click() { |
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> end_modal.call(this); |
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:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5338 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5339 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5340 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5341 |
<xsl:text> on_Enter_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5342 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5343 |
<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
|
5344 |
</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
|
5345 |
<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
|
5346 |
</xsl:text> |
ed43facc7137
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant
parents:
3041
diff
changeset
|
5347 |
<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
|
5348 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5349 |
<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
|
5350 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5351 |
<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
|
5352 |
</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
|
5353 |
<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
|
5354 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5355 |
<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
|
5356 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5357 |
<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
|
5358 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5359 |
<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
|
5360 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5361 |
<xsl:text> } |
3015
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> } |
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> |
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> on_BackSpace_click() { |
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> 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
|
5370 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5371 |
<xsl:text> this.update(); |
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> on_Sign_click() { |
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> if(this.editstr[0] == "-") |
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: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
|
5382 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5383 |
<xsl:text> else |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5384 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5385 |
<xsl:text> this.editstr = "-" + this.editstr; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5386 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5387 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5388 |
</xsl:text> |
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> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5392 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5393 |
<xsl:text> on_NumDot_click() { |
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> if(this.editstr.indexOf(".") == "-1"){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5396 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5397 |
<xsl:text> this.editstr += "."; |
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> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5400 |
</xsl:text> |
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> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5404 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5405 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5406 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5407 |
<xsl:text> on_Space_click() { |
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:text> this.editstr += " "; |
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> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5412 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5413 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5414 |
</xsl:text> |
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> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5417 |
<xsl:text> caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5418 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5419 |
<xsl:text> _caps = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5420 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5421 |
<xsl:text> on_CapsLock_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5422 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5423 |
<xsl:text> this.caps = !this.caps; |
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> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5426 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5427 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5428 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5429 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5430 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5431 |
<xsl:text> shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5432 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5433 |
<xsl:text> _shift = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5434 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5435 |
<xsl:text> on_Shift_click() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5436 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5437 |
<xsl:text> this.shift = !this.shift; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5438 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5439 |
<xsl:text> this.caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5440 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5441 |
<xsl:text> this.update(); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5442 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5443 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5444 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5445 |
<xsl:text> editstr = ""; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5446 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5447 |
<xsl:text> _editstr = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5448 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5449 |
<xsl:text> result_callback_obj = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5450 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5451 |
<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
|
5452 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5453 |
<xsl:text> show_modal.call(this,size); |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5454 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5455 |
<xsl:text> this.editstr = String(initial); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5456 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5457 |
<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
|
5458 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5459 |
<xsl:text> this.Info_elt.textContent = info; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5460 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5461 |
<xsl:text> this.shift = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5462 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5463 |
<xsl:text> this.caps = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5464 |
</xsl:text> |
3034
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5465 |
<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
|
5466 |
</xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5467 |
<xsl:text> |
793ce2117258
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant
parents:
3031
diff
changeset
|
5468 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5469 |
<xsl:text> this.update(); |
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> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5472 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5473 |
<xsl:text> |
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> update() { |
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> if(this.editstr != this._editstr){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5478 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5479 |
<xsl:text> this._editstr = this.editstr; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5480 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5481 |
<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
|
5482 |
</xsl:text> |
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> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
5485 |
<xsl:text> if(this.Shift_sub && this.shift != this._shift){ |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5486 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5487 |
<xsl:text> this._shift = this.shift; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5488 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
5489 |
<xsl:text> (this.shift?this.activate_activable:this.inactivate_activable)(this.Shift_sub); |
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> |
3103
677764fba71d
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3097
diff
changeset
|
5493 |
<xsl:text> if(this.CapsLock_sub && this.caps != this._caps){ |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5494 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5495 |
<xsl:text> this._caps = this.caps; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5496 |
</xsl:text> |
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
5497 |
<xsl:text> (this.caps?this.activate_activable:this.inactivate_activable)(this.CapsLock_sub); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5498 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5499 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5500 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5501 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5502 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5503 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5504 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5505 |
</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
|
5506 |
<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
|
5507 |
<xsl:param name="hmi_element"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5508 |
<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
|
5509 |
<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
|
5510 |
<xsl:with-param name="labels"> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5511 |
<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
|
5512 |
</xsl:with-param> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5513 |
</xsl:call-template> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5514 |
<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
|
5515 |
<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
|
5516 |
<xsl:with-param name="labels"> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
5517 |
<xsl:text>Sign Space NumDot</xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5518 |
</xsl:with-param> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5519 |
<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
|
5520 |
</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
|
5521 |
<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
|
5522 |
<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
|
5523 |
<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
|
5524 |
<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
|
5525 |
</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
|
5526 |
<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
|
5527 |
<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
|
5528 |
</xsl:call-template> |
2913
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
5529 |
<xsl:text> init: function() { |
ac4328e69079
SVGHMI: Keypad: added code to re-attach keypad when starting edit.
Edouard Tisserant
parents:
2907
diff
changeset
|
5530 |
</xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5531 |
<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
|
5532 |
<xsl:text> id("</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5533 |
<xsl:value-of select="@id"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5534 |
<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
|
5535 |
<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
|
5536 |
<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
|
5537 |
<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
|
5538 |
<xsl:text>')"); |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5539 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5540 |
</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
|
5541 |
<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
|
5542 |
<xsl:text> if(this.</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5543 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5544 |
<xsl:text>_elt) |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5545 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5546 |
<xsl:text> this.</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5547 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5548 |
<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
|
5549 |
<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
|
5550 |
<xsl:text>'].on_</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5551 |
<xsl:value-of select="."/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5552 |
<xsl:text>_click()"); |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5553 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5554 |
</xsl:for-each> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5555 |
<xsl:text> }, |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5556 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5557 |
<xsl:text> |
2917
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5558 |
</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5559 |
<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
|
5560 |
<xsl:text> coordinates: [</xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5561 |
<xsl:value-of select="$g/@x"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5562 |
<xsl:text>, </xsl:text> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5563 |
<xsl:value-of select="$g/@y"/> |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5564 |
<xsl:text>], |
c8d923dd707f
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.
Edouard Tisserant
parents:
2913
diff
changeset
|
5565 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5566 |
</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
|
5567 |
<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
|
5568 |
<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
|
5569 |
<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
|
5570 |
</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
|
5571 |
<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
|
5572 |
<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
|
5573 |
<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
|
5574 |
<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
|
5575 |
<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
|
5576 |
<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
|
5577 |
</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
|
5578 |
</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
|
5579 |
<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
|
5580 |
</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
|
5581 |
</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
|
5582 |
<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
|
5583 |
<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
|
5584 |
<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
|
5585 |
</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
|
5586 |
<xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
3185
9038655c1b18
Backed out changeset b2ba6eeb61ec. Users reported text styling being messed in some cases.
Edouard Tisserant
parents:
3181
diff
changeset
|
5587 |
<xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/> |
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
|
5588 |
<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
|
5589 |
<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
|
5590 |
<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
|
5591 |
<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
|
5592 |
<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
|
5593 |
</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
|
5594 |
</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
|
5595 |
<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
|
5596 |
</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
|
5597 |
</xsl:template> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5598 |
<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
|
5599 |
<xsl:text>class MeterWidget extends Widget{ |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5600 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5601 |
<xsl:text> frequency = 10; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5602 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5603 |
<xsl:text> origin = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5604 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5605 |
<xsl:text> range = undefined; |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5606 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5607 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5608 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5609 |
<xsl:text> dispatch(value) { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5610 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5611 |
<xsl:text> this.display_val = value; |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5612 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5613 |
<xsl:text> this.request_animate(); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5614 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5615 |
<xsl:text> } |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5616 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5617 |
<xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5618 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5619 |
<xsl:text> animate(){ |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5620 |
</xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5621 |
<xsl:text> if(this.value_elt) |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5622 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5623 |
<xsl:text> this.value_elt.textContent = String(this.display_val); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5624 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5625 |
<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
|
5626 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5627 |
<xsl:text> let length = Math.max(0,Math.min(totallength,(Number(this.display_val)-min)*totallength/(max-min))); |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5628 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5629 |
<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
|
5630 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5631 |
<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
|
5632 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5633 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5634 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5635 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5636 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5637 |
<xsl:text> init() { |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5638 |
</xsl:text> |
3112
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5639 |
<xsl:text> let [min,max] = [[this.min_elt,0],[this.max_elt,100]].map(([elt,def],i)=>elt? |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5640 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5641 |
<xsl:text> Number(elt.textContent) : |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5642 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5643 |
<xsl:text> this.args.length >= i+1 ? this.args[i] : def); |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5644 |
</xsl:text> |
bd20f9112014
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant
parents:
3103
diff
changeset
|
5645 |
<xsl:text> |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5646 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5647 |
<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
|
5648 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5649 |
<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
|
5650 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5651 |
<xsl:text> } |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5652 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5653 |
<xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5654 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5655 |
<xsl:text>} |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5656 |
</xsl:text> |
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
5657 |
</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
|
5658 |
<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
|
5659 |
<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
|
5660 |
<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
|
5661 |
<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
|
5662 |
<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
|
5663 |
<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
|
5664 |
</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
|
5665 |
</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
|
5666 |
<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
|
5667 |
<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
|
5668 |
<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
|
5669 |
<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
|
5670 |
</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
|
5671 |
<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
|
5672 |
</xsl:call-template> |
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
|
5673 |
</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
|
5674 |
<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
|
5675 |
<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
|
5676 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5677 |
<xsl:text> frequency = 5; |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5678 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5679 |
<xsl:text> state = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5680 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5681 |
<xsl:text> dispatch(value) { |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5682 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5683 |
<xsl:text> this.state = value; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5684 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5685 |
<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
|
5686 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5687 |
<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
|
5688 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5689 |
<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
|
5690 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5691 |
<xsl:text> } else { |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5692 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5693 |
<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
|
5694 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5695 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5696 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5697 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5698 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5699 |
<xsl:text> } |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5700 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5701 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5702 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5703 |
<xsl:text> on_click(evt) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5704 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5705 |
<xsl:text> //get current selected value |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5706 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5707 |
<xsl:text> let next_ind; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5708 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5709 |
<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
|
5710 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5711 |
<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
|
5712 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5713 |
<xsl:text> next_ind = next_ind + 1; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5714 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5715 |
<xsl:text> break; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5716 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5717 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5718 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5719 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5720 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5721 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5722 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5723 |
<xsl:text> //get next selected value |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5724 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5725 |
<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
|
5726 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5727 |
<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
|
5728 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5729 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5730 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5731 |
<xsl:text> else{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5732 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5733 |
<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
|
5734 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5735 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5736 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5737 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5738 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5739 |
<xsl:text> //post value to plc |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5740 |
</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
|
5741 |
<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
|
5742 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5743 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5744 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5745 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5746 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5747 |
<xsl:text> init() { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5748 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5749 |
<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
|
5750 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5751 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5752 |
</xsl:text> |
2962
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5753 |
<xsl:text>} |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5754 |
</xsl:text> |
02ea529fd08c
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2961
diff
changeset
|
5755 |
</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
|
5756 |
<xsl:template mode="widget_defs" match="widget[@type='MultiState']"> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5757 |
<xsl:param name="hmi_element"/> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5758 |
<xsl:text> choices: [ |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5759 |
</xsl:text> |
2907
1695122a5e16
SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false'
Edouard Tisserant
parents:
2906
diff
changeset
|
5760 |
<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
|
5761 |
<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
|
5762 |
<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
|
5763 |
<xsl:text> { |
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5764 |
</xsl:text> |
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5765 |
<xsl:text> elt:id("</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5766 |
<xsl:value-of select="@id"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5767 |
<xsl:text>"), |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5768 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5769 |
<xsl:text> style:"</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5770 |
<xsl:value-of select="@style"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5771 |
<xsl:text>", |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5772 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5773 |
<xsl:text> value:</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5774 |
<xsl:value-of select="$literal"/> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5775 |
<xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5776 |
</xsl:text> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5777 |
<xsl:text> }</xsl:text> |
2839
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5778 |
<xsl:if test="position()!=last()"> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5779 |
<xsl:text>,</xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5780 |
</xsl:if> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5781 |
<xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5782 |
</xsl:text> |
f4dd234faa11
SVGHMI: Added mostly untested switch widget
Edouard Tisserant
parents:
2838
diff
changeset
|
5783 |
</xsl:for-each> |
2851
8d15c6238e62
SVGHMI: re-indent generated JS
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2850
diff
changeset
|
5784 |
<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
|
5785 |
</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
|
5786 |
</xsl:template> |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5787 |
<xsl:template mode="widget_class" match="widget[@type='ScrollBar']"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5788 |
<xsl:text>class ScrollBarWidget extends Widget{ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5789 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5790 |
<xsl:text> frequency = 10; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5791 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5792 |
<xsl:text> position = undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5793 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5794 |
<xsl:text> range = undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5795 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5796 |
<xsl:text> size = undefined; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5797 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5798 |
<xsl:text> mincursize = 0.1; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5799 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5800 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5801 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5802 |
<xsl:text> dispatch(value,oldval, index) { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5803 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5804 |
<xsl:text> switch(index) { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5805 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5806 |
<xsl:text> case 0: |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5807 |
</xsl:text> |
3178
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5808 |
<xsl:text> this.range = Math.max(1,value); |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5809 |
</xsl:text> |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5810 |
<xsl:text> break; |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5811 |
</xsl:text> |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5812 |
<xsl:text> case 1: |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5813 |
</xsl:text> |
3147 | 5814 |
<xsl:text> this.position = value; |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5815 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5816 |
<xsl:text> break; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5817 |
</xsl:text> |
3178
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5818 |
<xsl:text> case 2: |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5819 |
</xsl:text> |
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5820 |
<xsl:text> this.size = value; |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5821 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5822 |
<xsl:text> break; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5823 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5824 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5825 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5826 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5827 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5828 |
<xsl:text> this.request_animate(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5829 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5830 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5831 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5832 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5833 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5834 |
<xsl:text> get_ratios() { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5835 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5836 |
<xsl:text> let range = this.range; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5837 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5838 |
<xsl:text> let size = Math.max(this.range * this.mincursize, Math.min(this.size, range)); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5839 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5840 |
<xsl:text> let maxh = this.range_elt.height.baseVal.value; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5841 |
</xsl:text> |
3151
8e5d383a58cb
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant
parents:
3150
diff
changeset
|
5842 |
<xsl:text> let pixels = maxh; |
8e5d383a58cb
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant
parents:
3150
diff
changeset
|
5843 |
</xsl:text> |
8e5d383a58cb
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant
parents:
3150
diff
changeset
|
5844 |
<xsl:text> let units = range; |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5845 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5846 |
<xsl:text> return [size, maxh, range, pixels, units]; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5847 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5848 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5849 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5850 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5851 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5852 |
<xsl:text> animate(){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5853 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5854 |
<xsl:text> if(this.position == undefined || this.range == undefined || this.size == undefined) |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5855 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5856 |
<xsl:text> return; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5857 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5858 |
<xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5859 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5860 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5861 |
</xsl:text> |
3151
8e5d383a58cb
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant
parents:
3150
diff
changeset
|
5862 |
<xsl:text> let new_y = this.range_elt.y.baseVal.value + Math.round(Math.min(this.position,range-size) * pixels / units); |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5863 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5864 |
<xsl:text> let new_height = Math.round(maxh * size/range); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5865 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5866 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5867 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5868 |
<xsl:text> this.cursor_elt.y.baseVal.value = new_y; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5869 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5870 |
<xsl:text> this.cursor_elt.height.baseVal.value = new_height; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5871 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5872 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5873 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5874 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5875 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5876 |
<xsl:text> init_mandatory() { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5877 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5878 |
<xsl:text> this.cursor_elt.onpointerdown = () => this.on_cursor_down(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5879 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5880 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5881 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5882 |
<xsl:text> this.bound_drag = this.drag.bind(this); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5883 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5884 |
<xsl:text> this.bound_drop = this.drop.bind(this); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5885 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5886 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5887 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5888 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5889 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5890 |
<xsl:text> apply_position(position){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5891 |
</xsl:text> |
3151
8e5d383a58cb
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant
parents:
3150
diff
changeset
|
5892 |
<xsl:text> this.position = Math.round(Math.max(Math.min(position, this.range - this.size), 0)); |
3147 | 5893 |
</xsl:text> |
3178
21cb76012c78
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion
Edouard Tisserant
parents:
3175
diff
changeset
|
5894 |
<xsl:text> this.apply_hmi_value(1, this.position); |
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5895 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5896 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5897 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5898 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5899 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5900 |
<xsl:text> on_page_click(is_up){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5901 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5902 |
<xsl:text> this.apply_position(is_up ? this.position-this.size |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5903 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5904 |
<xsl:text> : this.position+this.size); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5905 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5906 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5907 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5908 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5909 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5910 |
<xsl:text> on_cursor_down(e){ |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5911 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5912 |
<xsl:text> // get scrollbar -> root transform |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5913 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5914 |
<xsl:text> let ctm = this.range_elt.getCTM(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5915 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5916 |
<xsl:text> // relative motion -> discard translation |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5917 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5918 |
<xsl:text> ctm.e = 0; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5919 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5920 |
<xsl:text> ctm.f = 0; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5921 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5922 |
<xsl:text> // root -> scrollbar transform |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5923 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5924 |
<xsl:text> this.invctm = ctm.inverse(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5925 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5926 |
<xsl:text> svg_root.addEventListener("pointerup", this.bound_drop, true); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5927 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5928 |
<xsl:text> svg_root.addEventListener("pointermove", this.bound_drag, true); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5929 |
</xsl:text> |
3147 | 5930 |
<xsl:text> this.dragpos = this.position; |
5931 |
</xsl:text> |
|
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5932 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5933 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5934 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5935 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5936 |
<xsl:text> drop(e) { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5937 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5938 |
<xsl:text> svg_root.removeEventListener("pointerup", this.bound_drop, true); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5939 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5940 |
<xsl:text> svg_root.removeEventListener("pointermove", this.bound_drag, true); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5941 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5942 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5943 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5944 |
<xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5945 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5946 |
<xsl:text> drag(e) { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5947 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5948 |
<xsl:text> let [size, maxh, range, pixels, units] = this.get_ratios(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5949 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5950 |
<xsl:text> if(pixels == 0) return; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5951 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5952 |
<xsl:text> let point = new DOMPoint(e.movementX, e.movementY); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5953 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5954 |
<xsl:text> let movement = point.matrixTransform(this.invctm).y; |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5955 |
</xsl:text> |
3147 | 5956 |
<xsl:text> this.dragpos += movement * units / pixels; |
5957 |
</xsl:text> |
|
5958 |
<xsl:text> this.apply_position(this.dragpos); |
|
3141
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5959 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5960 |
<xsl:text> } |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5961 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5962 |
<xsl:text>} |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5963 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5964 |
</xsl:template> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5965 |
<xsl:template mode="widget_defs" match="widget[@type='ScrollBar']"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5966 |
<xsl:param name="hmi_element"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5967 |
<xsl:call-template name="defs_by_labels"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5968 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5969 |
<xsl:with-param name="labels"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5970 |
<xsl:text>cursor range</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5971 |
</xsl:with-param> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5972 |
</xsl:call-template> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5973 |
<xsl:variable name="pagebuttons"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5974 |
<xsl:call-template name="defs_by_labels"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5975 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5976 |
<xsl:with-param name="labels"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5977 |
<xsl:text>pageup pagedown</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5978 |
</xsl:with-param> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5979 |
<xsl:with-param name="mandatory" select="'no'"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5980 |
</xsl:call-template> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5981 |
</xsl:variable> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5982 |
<xsl:variable name="have_pagebuttons" select="string-length($pagebuttons)>0"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5983 |
<xsl:value-of select="$pagebuttons"/> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5984 |
<xsl:text> init: function() { |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5985 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5986 |
<xsl:text> this.init_mandatory(); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5987 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5988 |
<xsl:if test="$have_pagebuttons"> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5989 |
<xsl:text> this.pageup_elt.onclick = () => this.on_page_click(true); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5990 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5991 |
<xsl:text> this.pagedown_elt.onclick = () => this.on_page_click(false); |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5992 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5993 |
</xsl:if> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5994 |
<xsl:text> }, |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5995 |
</xsl:text> |
6d4c1e6560ac
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3134
diff
changeset
|
5996 |
</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
|
5997 |
<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
|
5998 |
<xsl:text>class SliderWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
5999 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6000 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6001 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6002 |
<xsl:text> range = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6003 |
</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
|
6004 |
<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
|
6005 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6006 |
<xsl:text> scroll_size = undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6007 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6008 |
<xsl:text> scroll_range = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6009 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6010 |
<xsl:text> scroll_visible = 7; |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6011 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6012 |
<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
|
6013 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6014 |
<xsl:text> fi = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6015 |
</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
|
6016 |
<xsl:text> curr_value = 0; |
3045
f6d428330e04
All widgets reworked to use widget class and animate function if needed
usveticic
parents:
3026
diff
changeset
|
6017 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6018 |
<xsl:text> drag = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6019 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6020 |
<xsl:text> enTimer = false; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6021 |
</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
|
6022 |
<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
|
6023 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6024 |
<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
|
6025 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6026 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6027 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6028 |
<xsl:text> dispatch(value,oldval, index) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6029 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6030 |
<xsl:text> if (index == 0){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6031 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6032 |
<xsl:text> let [min,max,start,totallength] = this.range; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6033 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6034 |
<xsl:text> //save current value inside widget |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6035 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6036 |
<xsl:text> this.curr_value = value; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6037 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6038 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6039 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6040 |
<xsl:text> //check if in range |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6041 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6042 |
<xsl:text> if (this.curr_value > max){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6043 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6044 |
<xsl:text> this.curr_value = max; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6045 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6046 |
<xsl:text> this.apply_hmi_value(0, this.curr_value); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6047 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6048 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6049 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6050 |
<xsl:text> else if (this.curr_value < min){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6051 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6052 |
<xsl:text> this.curr_value = min; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6053 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6054 |
<xsl:text> this.apply_hmi_value(0, this.curr_value); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6055 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6056 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6057 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6058 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6059 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6060 |
<xsl:text> if(this.value_elt) |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6061 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6062 |
<xsl:text> this.value_elt.textContent = String(value); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6063 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6064 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6065 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6066 |
<xsl:text> else if(index == 1){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6067 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6068 |
<xsl:text> this.scroll_range = value; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6069 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6070 |
<xsl:text> this.set_scroll(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6071 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6072 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6073 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6074 |
<xsl:text> else if(index == 2){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6075 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6076 |
<xsl:text> this.scroll_visible = value; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6077 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6078 |
<xsl:text> this.set_scroll(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6079 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6080 |
<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
|
6081 |
</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
|
6082 |
<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
|
6083 |
</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
|
6084 |
<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
|
6085 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6086 |
<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
|
6087 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6088 |
<xsl:text> this.update_DOM(this.curr_value, this.handle_elt); |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6089 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6090 |
<xsl:text> } |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6091 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6092 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6093 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6094 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6095 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6096 |
<xsl:text> set_scroll(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6097 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6098 |
<xsl:text> //check if range is bigger than visible and set scroll size |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6099 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6100 |
<xsl:text> if(this.scroll_range > this.scroll_visible){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6101 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6102 |
<xsl:text> this.scroll_size = this.scroll_range - this.scroll_visible; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6103 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6104 |
<xsl:text> this.range[0] = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6105 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6106 |
<xsl:text> this.range[1] = this.scroll_size; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6107 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6108 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6109 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6110 |
<xsl:text> else{ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6111 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6112 |
<xsl:text> this.scroll_size = 1; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6113 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6114 |
<xsl:text> this.range[0] = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6115 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6116 |
<xsl:text> this.range[1] = 1; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6117 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6118 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6119 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6120 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6121 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6122 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6123 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6124 |
<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
|
6125 |
</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
|
6126 |
<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
|
6127 |
</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
|
6128 |
<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
|
6129 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6130 |
<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
|
6131 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6132 |
<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
|
6133 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6134 |
<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
|
6135 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6136 |
<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
|
6137 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6138 |
<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
|
6139 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6140 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6141 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6142 |
<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
|
6143 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6144 |
<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
|
6145 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6146 |
<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
|
6147 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6148 |
<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
|
6149 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6150 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6151 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6152 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6153 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6154 |
<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
|
6155 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6156 |
<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
|
6157 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6158 |
<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
|
6159 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6160 |
<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
|
6161 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6162 |
<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
|
6163 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6164 |
<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
|
6165 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6166 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6167 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6168 |
<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
|
6169 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6170 |
<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
|
6171 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6172 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6173 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6174 |
<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
|
6175 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6176 |
<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
|
6177 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6178 |
<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
|
6179 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6180 |
<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
|
6181 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6182 |
<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
|
6183 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6184 |
<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
|
6185 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6186 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6187 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6188 |
<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
|
6189 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6190 |
<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
|
6191 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6192 |
<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
|
6193 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6194 |
<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
|
6195 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6196 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6197 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6198 |
<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
|
6199 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6200 |
<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
|
6201 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6202 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6203 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6204 |
<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
|
6205 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6206 |
<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
|
6207 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6208 |
<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
|
6209 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6210 |
<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
|
6211 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6212 |
<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
|
6213 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6214 |
<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
|
6215 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6216 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6217 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6218 |
<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
|
6219 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6220 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6221 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6222 |
<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
|
6223 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6224 |
<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
|
6225 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6226 |
<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
|
6227 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6228 |
<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
|
6229 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6230 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6231 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6232 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6233 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6234 |
<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
|
6235 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6236 |
<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
|
6237 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6238 |
<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
|
6239 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6240 |
<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
|
6241 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6242 |
<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
|
6243 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6244 |
<xsl:text> }else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6245 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6246 |
<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
|
6247 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6248 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6249 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6250 |
<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
|
6251 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6252 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6253 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6254 |
<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
|
6255 |
</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
|
6256 |
<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
|
6257 |
</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
|
6258 |
<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
|
6259 |
</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
|
6260 |
<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
|
6261 |
</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
|
6262 |
<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
|
6263 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6264 |
<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
|
6265 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6266 |
<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
|
6267 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6268 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6269 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6270 |
<xsl:text> window.removeEventListener("mouseup", this.bound_on_release, true); |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6271 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6272 |
<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
|
6273 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6274 |
<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
|
6275 |
</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
|
6276 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6277 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6278 |
<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
|
6279 |
</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
|
6280 |
<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
|
6281 |
</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
|
6282 |
<xsl:text> this.drag = false; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6283 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6284 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6285 |
</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
|
6286 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6287 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6288 |
<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
|
6289 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6290 |
<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
|
6291 |
</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
|
6292 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6293 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6294 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6295 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6296 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6297 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6298 |
<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
|
6299 |
</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
|
6300 |
<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
|
6301 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6302 |
<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
|
6303 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6304 |
<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
|
6305 |
</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
|
6306 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6307 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6308 |
<xsl:text> //reset timer |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6309 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6310 |
<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
|
6311 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6312 |
<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
|
6313 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6314 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6315 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6316 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6317 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6318 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6319 |
</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
|
6320 |
<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
|
6321 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6322 |
<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
|
6323 |
</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
|
6324 |
<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
|
6325 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6326 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6327 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6328 |
<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
|
6329 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6330 |
<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
|
6331 |
</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
|
6332 |
<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
|
6333 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6334 |
<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
|
6335 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6336 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6337 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6338 |
<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
|
6339 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6340 |
<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
|
6341 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6342 |
<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
|
6343 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6344 |
<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
|
6345 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6346 |
<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
|
6347 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6348 |
<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
|
6349 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6350 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6351 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6352 |
<xsl:text> else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6353 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6354 |
<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
|
6355 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6356 |
<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
|
6357 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6358 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6359 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6360 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6361 |
</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
|
6362 |
<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
|
6363 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6364 |
<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
|
6365 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6366 |
<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
|
6367 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6368 |
<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
|
6369 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6370 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6371 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6372 |
<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
|
6373 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6374 |
<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
|
6375 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6376 |
<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
|
6377 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6378 |
<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
|
6379 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6380 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6381 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6382 |
<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
|
6383 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6384 |
<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
|
6385 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6386 |
<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
|
6387 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6388 |
<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
|
6389 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6390 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6391 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6392 |
<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
|
6393 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6394 |
<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
|
6395 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6396 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6397 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6398 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6399 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6400 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6401 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6402 |
<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
|
6403 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6404 |
<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
|
6405 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6406 |
<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
|
6407 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6408 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6409 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6410 |
<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
|
6411 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6412 |
<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
|
6413 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6414 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6415 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6416 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6417 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6418 |
<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
|
6419 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6420 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6421 |
</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
|
6422 |
<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
|
6423 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6424 |
<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
|
6425 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6426 |
<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
|
6427 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6428 |
<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
|
6429 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6430 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6431 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6432 |
<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
|
6433 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6434 |
<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
|
6435 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6436 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6437 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6438 |
<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
|
6439 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6440 |
<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
|
6441 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6442 |
<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
|
6443 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6444 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6445 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6446 |
<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
|
6447 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6448 |
<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
|
6449 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6450 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6451 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6452 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6453 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6454 |
<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
|
6455 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6456 |
<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
|
6457 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6458 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6459 |
</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
|
6460 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6461 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6462 |
<xsl:text> //check if in range and apply |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6463 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6464 |
<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
|
6465 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6466 |
<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
|
6467 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6468 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6469 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6470 |
<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
|
6471 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6472 |
<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
|
6473 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6474 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6475 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6476 |
<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
|
6477 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6478 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6479 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6480 |
<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
|
6481 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6482 |
<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
|
6483 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6484 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6485 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6486 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6487 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6488 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6489 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6490 |
<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
|
6491 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6492 |
<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
|
6493 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6494 |
<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
|
6495 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6496 |
<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
|
6497 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6498 |
<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
|
6499 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6500 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6501 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6502 |
<xsl:text> else{ |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6503 |
</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
|
6504 |
<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
|
6505 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6506 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6507 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6508 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6509 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6510 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6511 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6512 |
<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
|
6513 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6514 |
<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
|
6515 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6516 |
<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
|
6517 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6518 |
<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
|
6519 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6520 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6521 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6522 |
<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
|
6523 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6524 |
<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
|
6525 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6526 |
<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
|
6527 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6528 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6529 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6530 |
<xsl:text> window.addEventListener("mouseup", this.bound_on_release, true); |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6531 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6532 |
<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
|
6533 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6534 |
<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
|
6535 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6536 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6537 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6538 |
<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
|
6539 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6540 |
<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
|
6541 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6542 |
<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
|
6543 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6544 |
<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
|
6545 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6546 |
<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
|
6547 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6548 |
<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
|
6549 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6550 |
<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
|
6551 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6552 |
<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
|
6553 |
</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
|
6554 |
<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
|
6555 |
</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
|
6556 |
<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
|
6557 |
</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
|
6558 |
<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
|
6559 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6560 |
<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
|
6561 |
</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
|
6562 |
<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
|
6563 |
</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
|
6564 |
<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
|
6565 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6566 |
<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
|
6567 |
</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
|
6568 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6569 |
</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
|
6570 |
<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
|
6571 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6572 |
<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
|
6573 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6574 |
<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
|
6575 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6576 |
<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
|
6577 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6578 |
<xsl:text> } |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6579 |
</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
|
6580 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6581 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6582 |
<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
|
6583 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6584 |
<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
|
6585 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6586 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6587 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6588 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6589 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6590 |
<xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6591 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6592 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6593 |
</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
|
6594 |
<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
|
6595 |
</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
|
6596 |
<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
|
6597 |
</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
|
6598 |
<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
|
6599 |
</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
|
6600 |
<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
|
6601 |
</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
|
6602 |
<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
|
6603 |
</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
|
6604 |
<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
|
6605 |
</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
|
6606 |
<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
|
6607 |
</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
|
6608 |
<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
|
6609 |
</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
|
6610 |
<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
|
6611 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6612 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6613 |
</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
|
6614 |
<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
|
6615 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6616 |
<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
|
6617 |
</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
|
6618 |
<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
|
6619 |
</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
|
6620 |
<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
|
6621 |
</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
|
6622 |
<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
|
6623 |
</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
|
6624 |
<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
|
6625 |
</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
|
6626 |
<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
|
6627 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6628 |
<xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6629 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6630 |
<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
|
6631 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6632 |
<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
|
6633 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6634 |
<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
|
6635 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6636 |
<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
|
6637 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6638 |
<xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6639 |
</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
|
6640 |
<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
|
6641 |
</xsl:text> |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6642 |
<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
|
6643 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6644 |
<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
|
6645 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6646 |
<xsl:text> //touch recognised as page drag without next command |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6647 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6648 |
<xsl:text> document.body.addEventListener("touchstart", function(e){}, false); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6649 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6650 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6651 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6652 |
<xsl:text> //save ghost style |
3021
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6653 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6654 |
<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
|
6655 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6656 |
<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
|
6657 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6658 |
<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
|
6659 |
</xsl:text> |
49799de67540
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant
parents:
3019
diff
changeset
|
6660 |
<xsl:text> } |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6661 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6662 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6663 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6664 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6665 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6666 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6667 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6668 |
</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
|
6669 |
<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
|
6670 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6671 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6672 |
<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
|
6673 |
<xsl:with-param name="labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6674 |
<xsl:text>handle range</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6675 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6676 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6677 |
<xsl:call-template name="defs_by_labels"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6678 |
<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
|
6679 |
<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
|
6680 |
<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
|
6681 |
</xsl:with-param> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6682 |
<xsl:with-param name="mandatory" select="'no'"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6683 |
</xsl:call-template> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6684 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6685 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6686 |
</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
|
6687 |
<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
|
6688 |
<xsl:text>class SwitchWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6689 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6690 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6691 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6692 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6693 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6694 |
<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
|
6695 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6696 |
<xsl:text> if(value != choice.value){ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6697 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6698 |
<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
|
6699 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6700 |
<xsl:text> } else { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6701 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6702 |
<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
|
6703 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6704 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6705 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6706 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6707 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6708 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6709 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6710 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6711 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6712 |
</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
|
6713 |
<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
|
6714 |
<xsl:param name="hmi_element"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6715 |
<xsl:text> choices: [ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6716 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6717 |
<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
|
6718 |
<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
|
6719 |
<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
|
6720 |
<xsl:text> { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6721 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6722 |
<xsl:text> elt:id("</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6723 |
<xsl:value-of select="@id"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6724 |
<xsl:text>"), |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6725 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6726 |
<xsl:text> style:"</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6727 |
<xsl:value-of select="@style"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6728 |
<xsl:text>", |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6729 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6730 |
<xsl:text> value:</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6731 |
<xsl:value-of select="$literal"/> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6732 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6733 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6734 |
<xsl:text> }</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6735 |
<xsl:if test="position()!=last()"> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6736 |
<xsl:text>,</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6737 |
</xsl:if> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6738 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6739 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6740 |
</xsl:for-each> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6741 |
<xsl:text> ], |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6742 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6743 |
</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
|
6744 |
<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
|
6745 |
<xsl:text>class ToggleButtonWidget extends Widget{ |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6746 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6747 |
<xsl:text> frequency = 5; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6748 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6749 |
<xsl:text> state = 0; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6750 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6751 |
<xsl:text> active_style = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6752 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6753 |
<xsl:text> inactive_style = undefined; |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6754 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6755 |
<xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6756 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6757 |
<xsl:text> dispatch(value) { |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6758 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6759 |
<xsl:text> this.state = value; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6760 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6761 |
<xsl:text> //redraw toggle button |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6762 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6763 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6764 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6765 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6766 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6767 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6768 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6769 |
<xsl:text> on_click(evt) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6770 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6771 |
<xsl:text> //toggle state and apply |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6772 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6773 |
<xsl:text> if (this.state) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6774 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6775 |
<xsl:text> this.state = 0; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6776 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6777 |
<xsl:text> } else { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6778 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6779 |
<xsl:text> this.state = 1; |
3058
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6780 |
</xsl:text> |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6781 |
<xsl:text> } |
6ea4b7e1a9ed
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
Edouard Tisserant
parents:
3048
diff
changeset
|
6782 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6783 |
<xsl:text> this.apply_hmi_value(0, this.state); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6784 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6785 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6786 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6787 |
<xsl:text> //redraw toggle button |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6788 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6789 |
<xsl:text> this.request_animate(); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6790 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6791 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6792 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6793 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6794 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6795 |
<xsl:text> animate(){ |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6796 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6797 |
<xsl:text> // redraw toggle button on screen refresh |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6798 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6799 |
<xsl:text> if (this.state) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6800 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6801 |
<xsl:text> this.active_elt.setAttribute("style", this.active_style); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6802 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6803 |
<xsl:text> this.inactive_elt.setAttribute("style", "display:none"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6804 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6805 |
<xsl:text> } else { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6806 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6807 |
<xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6808 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6809 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6810 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6811 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6812 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6813 |
<xsl:text> } |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6814 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6815 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6816 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6817 |
<xsl:text> init() { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6818 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6819 |
<xsl:text> this.active_style = this.active_elt ? this.active_elt.style.cssText : undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6820 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6821 |
<xsl:text> this.inactive_style = this.inactive_elt ? this.inactive_elt.style.cssText : undefined; |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6822 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6823 |
<xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6824 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6825 |
<xsl:text> if (this.active_style && this.inactive_style) { |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6826 |
</xsl:text> |
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6827 |
<xsl:text> this.active_elt.setAttribute("style", "display:none"); |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6828 |
</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
|
6829 |
<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
|
6830 |
</xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6831 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6832 |
</xsl:text> |
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6833 |
<xsl:text> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6834 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6835 |
<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
|
6836 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6837 |
<xsl:text> } |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6838 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6839 |
<xsl:text>} |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6840 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6841 |
</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
|
6842 |
<xsl:template mode="widget_defs" match="widget[@type='ToggleButton']"> |
2977 | 6843 |
<xsl:param name="hmi_element"/> |
6844 |
<xsl:call-template name="defs_by_labels"> |
|
6845 |
<xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
6846 |
<xsl:with-param name="labels"> |
|
6847 |
<xsl:text>active inactive</xsl:text> |
|
6848 |
</xsl:with-param> |
|
3065
c369a742443d
SVGHMI: non significant cosmetic changes
Edouard Tisserant
parents:
3058
diff
changeset
|
6849 |
<xsl:with-param name="mandatory" select="'no'"/> |
2977 | 6850 |
</xsl:call-template> |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
6851 |
<xsl:text> |
2977 | 6852 |
</xsl:text> |
6853 |
</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
|
6854 |
<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
|
6855 |
<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
|
6856 |
<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
|
6857 |
</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
|
6858 |
<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
|
6859 |
<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
|
6860 |
</xsl:comment> |
3186
1e9b9d7451cd
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.
Edouard Tisserant
parents:
3181
diff
changeset
|
6861 |
<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
|
6862 |
<head/> |
3084 | 6863 |
<body style="margin:0;overflow:hidden;user-select:none;touch-action:none;"> |
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
|
6864 |
<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
|
6865 |
<script> |
2943
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6866 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6867 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6868 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6869 |
// Early independent declarations |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6870 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6871 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6872 |
</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
|
6873 |
<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
|
6874 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6875 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6876 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6877 |
// 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
|
6878 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6879 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6880 |
</xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6881 |
<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
|
6882 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6883 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6884 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6885 |
// 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
|
6886 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6887 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6888 |
</xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6889 |
<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
|
6890 |
<xsl:text> |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6891 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6892 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6893 |
// 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
|
6894 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6895 |
// |
304e88bae115
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
2942
diff
changeset
|
6896 |
</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
|
6897 |
<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
|
6898 |
<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
|
6899 |
</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
|
6900 |
<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
|
6901 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
6902 |
<xsl:text>var need_cache_apply = []; |
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
|
6903 |
</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
|
6904 |
<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
|
6905 |
</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
|
6906 |
<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
|
6907 |
</xsl:text> |
3022
f6fe42b7ce60
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant
parents:
3017
diff
changeset
|
6908 |
<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
|
6909 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6910 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6911 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6912 |
<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
|
6913 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6914 |
<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
|
6915 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6916 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6917 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6918 |
<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
|
6919 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6920 |
<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
|
6921 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6922 |
<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
|
6923 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6924 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6925 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6926 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6927 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6928 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6929 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6930 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6931 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6932 |
<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
|
6933 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6934 |
<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
|
6935 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6936 |
<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
|
6937 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6938 |
<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
|
6939 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6940 |
<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
|
6941 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6942 |
<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
|
6943 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6944 |
<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
|
6945 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6946 |
<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
|
6947 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6948 |
<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
|
6949 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6950 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6951 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6952 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6953 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6954 |
<xsl:text> }); |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6955 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6956 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6957 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6958 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6959 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6960 |
<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
|
6961 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6962 |
<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
|
6963 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6964 |
<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
|
6965 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6966 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6967 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6968 |
<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
|
6969 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6970 |
<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
|
6971 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6972 |
<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
|
6973 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6974 |
<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
|
6975 |
</xsl:text> |
3068
81758c94f3df
SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3065
diff
changeset
|
6976 |
<xsl:text> REAL: (dv,offset) => [dv.getFloat32(offset, true), 4], |
81758c94f3df
SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3065
diff
changeset
|
6977 |
</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
|
6978 |
<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
|
6979 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
6980 |
<xsl:text> const size = dv.getInt8(offset); |
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
|
6981 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6982 |
<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
|
6983 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6984 |
<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
|
6985 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6986 |
<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
|
6987 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6988 |
<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
|
6989 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6990 |
<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
|
6991 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6992 |
<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
|
6993 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6994 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6995 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6996 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6997 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6998 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
6999 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7000 |
<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
|
7001 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7002 |
<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
|
7003 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7004 |
<xsl:text> updates.forEach((value, index) => { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7005 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7006 |
<xsl:text> dispatch_value(index, value); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7007 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7008 |
<xsl:text> }); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7009 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7010 |
<xsl:text> updates.clear(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7011 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7012 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7013 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7014 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7015 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7016 |
<xsl:text>// Called on requestAnimationFrame, modifies DOM |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7017 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7018 |
<xsl:text>var requestAnimationFrameID = null; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7019 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7020 |
<xsl:text>function animate() { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7021 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7022 |
<xsl:text> // Do the page swith if any one pending |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7023 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7024 |
<xsl:text> if(current_subscribed_page != current_visible_page){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7025 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7026 |
<xsl:text> switch_visible_page(current_subscribed_page); |
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
|
7027 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7028 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7029 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7030 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7031 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7032 |
<xsl:text> while(widget = need_cache_apply.pop()){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7033 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7034 |
<xsl:text> widget.apply_cache(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7035 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7036 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7037 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7038 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7039 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7040 |
<xsl:text> if(jumps_need_update) update_jumps(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7041 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7042 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7043 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7044 |
<xsl:text> apply_updates(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7045 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7046 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7047 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7048 |
<xsl:text> pending_widget_animates.forEach(widget => widget._animate()); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7049 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7050 |
<xsl:text> pending_widget_animates = []; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7051 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7052 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7053 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7054 |
<xsl:text> requestAnimationFrameID = null; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7055 |
</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
|
7056 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7057 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7058 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7059 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7060 |
<xsl:text>function requestHMIAnimation() { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7061 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7062 |
<xsl:text> if(requestAnimationFrameID == null){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7063 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7064 |
<xsl:text> requestAnimationFrameID = window.requestAnimationFrame(animate); |
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
|
7065 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7066 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7067 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7068 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7069 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7070 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7071 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7072 |
<xsl:text>// Message reception handler |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7073 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7074 |
<xsl:text>// Hash is verified and HMI values updates resulting from binary parsing |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7075 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7076 |
<xsl:text>// are stored until browser can compute next frame, DOM is left untouched |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7077 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7078 |
<xsl:text>ws.onmessage = function (evt) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7079 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7080 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7081 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7082 |
<xsl:text> let data = evt.data; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7083 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7084 |
<xsl:text> let dv = new DataView(data); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7085 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7086 |
<xsl:text> let i = 0; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7087 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7088 |
<xsl:text> try { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7089 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7090 |
<xsl:text> for(let hash_int of hmi_hash) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7091 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7092 |
<xsl:text> if(hash_int != dv.getUint8(i)){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7093 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7094 |
<xsl:text> throw new Error("Hash doesn't match"); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7095 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7096 |
<xsl:text> }; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7097 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7098 |
<xsl:text> i++; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7099 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7100 |
<xsl:text> }; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7101 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7102 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7103 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7104 |
<xsl:text> while(i < data.byteLength){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7105 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7106 |
<xsl:text> let index = dv.getUint32(i, true); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7107 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7108 |
<xsl:text> i += 4; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7109 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7110 |
<xsl:text> let iectype = hmitree_types[index]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7111 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7112 |
<xsl:text> if(iectype != undefined){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7113 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7114 |
<xsl:text> let dvgetter = dvgetters[iectype]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7115 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7116 |
<xsl:text> let [value, bytesize] = dvgetter(dv,i); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7117 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7118 |
<xsl:text> updates.set(index, value); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7119 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7120 |
<xsl:text> i += bytesize; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7121 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7122 |
<xsl:text> } else { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7123 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7124 |
<xsl:text> throw new Error("Unknown index "+index); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7125 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7126 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7127 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7128 |
<xsl:text> }; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7129 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7130 |
<xsl:text> // register for rendering on next frame, since there are updates |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7131 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7132 |
<xsl:text> requestHMIAnimation(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7133 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7134 |
<xsl:text> } catch(err) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7135 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7136 |
<xsl:text> // 1003 is for "Unsupported Data" |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7137 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7138 |
<xsl:text> // ws.close(1003, err.message); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7139 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7140 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7141 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7142 |
<xsl:text> // TODO : remove debug alert ? |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7143 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7144 |
<xsl:text> alert("Error : "+err.message+"\nHMI will be reloaded."); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7145 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7146 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7147 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7148 |
<xsl:text> // force reload ignoring cache |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7149 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7150 |
<xsl:text> location.reload(true); |
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
|
7151 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7152 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7153 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7154 |
<xsl:text>}; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7155 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7156 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7157 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7158 |
<xsl:text>hmi_hash_u8 = new Uint8Array(hmi_hash); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7159 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7160 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7161 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7162 |
<xsl:text>function send_blob(data) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7163 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7164 |
<xsl:text> if(data.length > 0) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7165 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7166 |
<xsl:text> ws.send(new Blob([hmi_hash_u8].concat(data))); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7167 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7168 |
<xsl:text> }; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7169 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7170 |
<xsl:text>}; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7171 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7172 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7173 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7174 |
<xsl:text>const typedarray_types = { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7175 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7176 |
<xsl:text> INT: (number) => new Int16Array([number]), |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7177 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7178 |
<xsl:text> BOOL: (truth) => new Int16Array([truth]), |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7179 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7180 |
<xsl:text> NODE: (truth) => new Int16Array([truth]), |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7181 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7182 |
<xsl:text> REAL: (number) => new Float32Array([number]), |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7183 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7184 |
<xsl:text> STRING: (str) => { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7185 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7186 |
<xsl:text> // beremiz default string max size is 128 |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7187 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7188 |
<xsl:text> str = str.slice(0,128); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7189 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7190 |
<xsl:text> binary = new Uint8Array(str.length + 1); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7191 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7192 |
<xsl:text> binary[0] = str.length; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7193 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7194 |
<xsl:text> for(let i = 0; i < str.length; i++){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7195 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7196 |
<xsl:text> binary[i+1] = str.charCodeAt(i); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7197 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7198 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7199 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7200 |
<xsl:text> return binary; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7201 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7202 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7203 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7204 |
<xsl:text> /* TODO */ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7205 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7206 |
<xsl:text>}; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7207 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7208 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7209 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7210 |
<xsl:text>function send_reset() { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7211 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7212 |
<xsl:text> send_blob(new Uint8Array([1])); /* reset = 1 */ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7213 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7214 |
<xsl:text>}; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7215 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7216 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7217 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7218 |
<xsl:text>var subscriptions = []; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7219 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7220 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7221 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7222 |
<xsl:text>function subscribers(index) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7223 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7224 |
<xsl:text> let entry = subscriptions[index]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7225 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7226 |
<xsl:text> let res; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7227 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7228 |
<xsl:text> if(entry == undefined){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7229 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7230 |
<xsl:text> res = new Set(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7231 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7232 |
<xsl:text> subscriptions[index] = [res,0]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7233 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7234 |
<xsl:text> }else{ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7235 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7236 |
<xsl:text> [res, _ign] = entry; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7237 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7238 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7239 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7240 |
<xsl:text> return res |
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
|
7241 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7242 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7243 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7244 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7245 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7246 |
<xsl:text>function get_subscription_period(index) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7247 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7248 |
<xsl:text> let entry = subscriptions[index]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7249 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7250 |
<xsl:text> if(entry == undefined) |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7251 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7252 |
<xsl:text> return 0; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7253 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7254 |
<xsl:text> let [_ign, period] = entry; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7255 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7256 |
<xsl:text> return period; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7257 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7258 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7259 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7260 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7261 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7262 |
<xsl:text>function set_subscription_period(index, period) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7263 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7264 |
<xsl:text> let entry = subscriptions[index]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7265 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7266 |
<xsl:text> if(entry == undefined){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7267 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7268 |
<xsl:text> subscriptions[index] = [new Set(), period]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7269 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7270 |
<xsl:text> } else { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7271 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7272 |
<xsl:text> entry[1] = period; |
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
|
7273 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7274 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7275 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7276 |
<xsl:text>} |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7277 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7278 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7279 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7280 |
<xsl:text>// artificially subscribe the watchdog widget to "/heartbeat" hmi variable |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7281 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7282 |
<xsl:text>// Since dispatch directly calls change_hmi_value, |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7283 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7284 |
<xsl:text>// PLC will periodically send variable at given frequency |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7285 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7286 |
<xsl:text>subscribers(heartbeat_index).add({ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7287 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7288 |
<xsl:text> /* type: "Watchdog", */ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7289 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7290 |
<xsl:text> frequency: 1, |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7291 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7292 |
<xsl:text> indexes: [heartbeat_index], |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7293 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7294 |
<xsl:text> new_hmi_value: function(index, value, oldval) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7295 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7296 |
<xsl:text> apply_hmi_value(heartbeat_index, value+1); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7297 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7298 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7299 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7300 |
<xsl:text>}); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7301 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7302 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7303 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7304 |
<xsl:text>function svg_text_to_multiline(elt) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7305 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7306 |
<xsl:text> return(Array.prototype.map.call(elt.children, x=>x.textContent).join("\n")); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7307 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7308 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7309 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7310 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7311 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7312 |
<xsl:text>function multiline_to_svg_text(elt, str) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7313 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7314 |
<xsl:text> str.split('\n').map((line,i) => {elt.children[i].textContent = line;}); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7315 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7316 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7317 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7318 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7319 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7320 |
<xsl:text>function switch_langnum(langnum) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7321 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7322 |
<xsl:text> langnum = Math.max(0, Math.min(langs.length - 1, langnum)); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7323 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7324 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7325 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7326 |
<xsl:text> for (let translation of translations) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7327 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7328 |
<xsl:text> let [objs, msgs] = translation; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7329 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7330 |
<xsl:text> let msg = msgs[langnum]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7331 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7332 |
<xsl:text> for (let obj of objs) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7333 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7334 |
<xsl:text> multiline_to_svg_text(obj, msg); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7335 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7336 |
<xsl:text> obj.setAttribute("lang",langnum); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7337 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7338 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7339 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7340 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7341 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7342 |
<xsl:text> return langnum; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7343 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7344 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7345 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7346 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7347 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7348 |
<xsl:text>// backup original texts |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7349 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7350 |
<xsl:text>for (let translation of translations) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7351 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7352 |
<xsl:text> let [objs, msgs] = translation; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7353 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7354 |
<xsl:text> msgs.unshift(svg_text_to_multiline(objs[0])); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7355 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7356 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7357 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7358 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7359 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7360 |
<xsl:text>var lang_local_index = hmi_local_index("lang"); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7361 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7362 |
<xsl:text>var langcode_local_index = hmi_local_index("lang_code"); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7363 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7364 |
<xsl:text>var langname_local_index = hmi_local_index("lang_name"); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7365 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7366 |
<xsl:text>subscribers(lang_local_index).add({ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7367 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7368 |
<xsl:text> indexes: [lang_local_index], |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7369 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7370 |
<xsl:text> new_hmi_value: function(index, value, oldval) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7371 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7372 |
<xsl:text> let current_lang = switch_langnum(value); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7373 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7374 |
<xsl:text> let [langname,langcode] = langs[current_lang]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7375 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7376 |
<xsl:text> apply_hmi_value(langcode_local_index, langcode); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7377 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7378 |
<xsl:text> apply_hmi_value(langname_local_index, langname); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7379 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7380 |
<xsl:text> switch_page(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7381 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7382 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7383 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7384 |
<xsl:text>}); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7385 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7386 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7387 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7388 |
<xsl:text>function setup_lang(){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7389 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7390 |
<xsl:text> let current_lang = cache[lang_local_index]; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7391 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7392 |
<xsl:text> let new_lang = switch_langnum(current_lang); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7393 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7394 |
<xsl:text> if(current_lang != new_lang){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7395 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7396 |
<xsl:text> apply_hmi_value(lang_local_index, new_lang); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7397 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7398 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7399 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7400 |
<xsl:text>} |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7401 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7402 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7403 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7404 |
<xsl:text>setup_lang(); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7405 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7406 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7407 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7408 |
<xsl:text>function update_subscriptions() { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7409 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7410 |
<xsl:text> let delta = []; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7411 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7412 |
<xsl:text> for(let index in subscriptions){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7413 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7414 |
<xsl:text> let widgets = subscribers(index); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7415 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7416 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7417 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7418 |
<xsl:text> // periods are in ms |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7419 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7420 |
<xsl:text> let previous_period = get_subscription_period(index); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7421 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7422 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7423 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7424 |
<xsl:text> // subscribing with a zero period is unsubscribing |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7425 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7426 |
<xsl:text> let new_period = 0; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7427 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7428 |
<xsl:text> if(widgets.size > 0) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7429 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7430 |
<xsl:text> let maxfreq = 0; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7431 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7432 |
<xsl:text> for(let widget of widgets){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7433 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7434 |
<xsl:text> let wf = widget.frequency; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7435 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7436 |
<xsl:text> if(wf != undefined && maxfreq < wf) |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7437 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7438 |
<xsl:text> maxfreq = wf; |
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
|
7439 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7440 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7441 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7442 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7443 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7444 |
<xsl:text> if(maxfreq != 0) |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7445 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7446 |
<xsl:text> new_period = 1000/maxfreq; |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7447 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7448 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7449 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7450 |
<xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7451 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7452 |
<xsl:text> if(previous_period != new_period) { |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7453 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7454 |
<xsl:text> set_subscription_period(index, new_period); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7455 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7456 |
<xsl:text> if(index <= last_remote_index){ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7457 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7458 |
<xsl:text> delta.push( |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7459 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7460 |
<xsl:text> new Uint8Array([2]), /* subscribe = 2 */ |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7461 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7462 |
<xsl:text> new Uint32Array([index]), |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7463 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7464 |
<xsl:text> new Uint16Array([new_period])); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7465 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7466 |
<xsl:text> } |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7467 |
</xsl:text> |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7468 |
<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
|
7469 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7470 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7471 |
</xsl:text> |
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7472 |
<xsl:text> send_blob(delta); |
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7473 |
</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
|
7474 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7475 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7476 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7477 |
</xsl:text> |
3147 | 7478 |
<xsl:text>function send_hmi_value(index, value) { |
7479 |
</xsl:text> |
|
7480 |
<xsl:text> if(index > last_remote_index){ |
|
7481 |
</xsl:text> |
|
3154
a8c81a080588
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3151
diff
changeset
|
7482 |
<xsl:text> updates.set(index, value); |
3147 | 7483 |
</xsl:text> |
7484 |
<xsl:text> |
|
7485 |
</xsl:text> |
|
7486 |
<xsl:text> if(persistent_indexes.has(index)){ |
|
7487 |
</xsl:text> |
|
7488 |
<xsl:text> let varname = persistent_indexes.get(index); |
|
7489 |
</xsl:text> |
|
7490 |
<xsl:text> document.cookie = varname+"="+value+"; max-age=3153600000"; |
|
7491 |
</xsl:text> |
|
7492 |
<xsl:text> } |
|
7493 |
</xsl:text> |
|
7494 |
<xsl:text> |
|
7495 |
</xsl:text> |
|
7496 |
<xsl:text> requestHMIAnimation(); |
|
7497 |
</xsl:text> |
|
7498 |
<xsl:text> return; |
|
7499 |
</xsl:text> |
|
7500 |
<xsl:text> } |
|
7501 |
</xsl:text> |
|
7502 |
<xsl:text> |
|
7503 |
</xsl:text> |
|
7504 |
<xsl:text> let iectype = hmitree_types[index]; |
|
7505 |
</xsl:text> |
|
7506 |
<xsl:text> let tobinary = typedarray_types[iectype]; |
|
7507 |
</xsl:text> |
|
7508 |
<xsl:text> send_blob([ |
|
7509 |
</xsl:text> |
|
7510 |
<xsl:text> new Uint8Array([0]), /* setval = 0 */ |
|
7511 |
</xsl:text> |
|
7512 |
<xsl:text> new Uint32Array([index]), |
|
7513 |
</xsl:text> |
|
7514 |
<xsl:text> tobinary(value)]); |
|
7515 |
</xsl:text> |
|
7516 |
<xsl:text> |
|
7517 |
</xsl:text> |
|
7518 |
<xsl:text> // DON'T DO THAT unless read_iterator in svghmi.c modifies wbuf as well, not only rbuf |
|
7519 |
</xsl:text> |
|
7520 |
<xsl:text> // cache[index] = value; |
|
7521 |
</xsl:text> |
|
7522 |
<xsl:text>}; |
|
7523 |
</xsl:text> |
|
7524 |
<xsl:text> |
|
7525 |
</xsl:text> |
|
7526 |
<xsl:text>function apply_hmi_value(index, new_val) { |
|
7527 |
</xsl:text> |
|
3190
80dd371e15bb
SVGHMI: cosmetic change, missing semicolon
Edouard Tisserant
parents:
3189
diff
changeset
|
7528 |
<xsl:text> let old_val = cache[index]; |
3147 | 7529 |
</xsl:text> |
7530 |
<xsl:text> if(new_val != undefined && old_val != new_val) |
|
7531 |
</xsl:text> |
|
7532 |
<xsl:text> send_hmi_value(index, new_val); |
|
7533 |
</xsl:text> |
|
7534 |
<xsl:text> return new_val; |
|
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7535 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7536 |
<xsl:text>} |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7537 |
</xsl:text> |
3147 | 7538 |
<xsl:text> |
7539 |
</xsl:text> |
|
7540 |
<xsl:text>const quotes = {"'":null, '"':null}; |
|
7541 |
</xsl:text> |
|
7542 |
<xsl:text> |
|
7543 |
</xsl:text> |
|
7544 |
<xsl:text>function eval_operation_string(old_val, opstr) { |
|
7545 |
</xsl:text> |
|
7546 |
<xsl:text> let op = opstr[0]; |
|
7547 |
</xsl:text> |
|
7548 |
<xsl:text> let given_val; |
|
7549 |
</xsl:text> |
|
7550 |
<xsl:text> if(opstr.length < 2) |
|
7551 |
</xsl:text> |
|
7552 |
<xsl:text> return undefined; |
|
7553 |
</xsl:text> |
|
7554 |
<xsl:text> if(opstr[1] in quotes){ |
|
7555 |
</xsl:text> |
|
7556 |
<xsl:text> if(opstr.length < 3) |
|
7557 |
</xsl:text> |
|
7558 |
<xsl:text> return undefined; |
|
7559 |
</xsl:text> |
|
7560 |
<xsl:text> if(opstr[opstr.length-1] == opstr[1]){ |
|
7561 |
</xsl:text> |
|
7562 |
<xsl:text> given_val = opstr.slice(2,opstr.length-1); |
|
7563 |
</xsl:text> |
|
7564 |
<xsl:text> } |
|
7565 |
</xsl:text> |
|
7566 |
<xsl:text> } else { |
|
7567 |
</xsl:text> |
|
7568 |
<xsl:text> given_val = Number(opstr.slice(1)); |
|
3128
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7569 |
</xsl:text> |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7570 |
<xsl:text> } |
32a4675af377
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3124
diff
changeset
|
7571 |
</xsl:text> |
3147 | 7572 |
<xsl:text> let new_val; |
7573 |
</xsl:text> |
|
7574 |
<xsl:text> switch(op){ |
|
7575 |
</xsl:text> |
|
7576 |
<xsl:text> case "=": |
|
7577 |
</xsl:text> |
|
7578 |
<xsl:text> new_val = given_val; |
|
7579 |
</xsl:text> |
|
7580 |
<xsl:text> break; |
|
7581 |
</xsl:text> |
|
7582 |
<xsl:text> case "+": |
|
7583 |
</xsl:text> |
|
7584 |
<xsl:text> new_val = old_val + given_val; |
|
7585 |
</xsl:text> |
|
7586 |
<xsl:text> break; |
|
7587 |
</xsl:text> |
|
7588 |
<xsl:text> case "-": |
|
7589 |
</xsl:text> |
|
7590 |
<xsl:text> new_val = old_val - given_val; |
|
7591 |
</xsl:text> |
|
7592 |
<xsl:text> break; |
|
7593 |
</xsl:text> |
|
7594 |
<xsl:text> case "*": |
|
7595 |
</xsl:text> |
|
7596 |
<xsl:text> new_val = old_val * given_val; |
|
7597 |
</xsl:text> |
|
7598 |
<xsl:text> break; |
|
7599 |
</xsl:text> |
|
7600 |
<xsl:text> case "/": |
|
7601 |
</xsl:text> |
|
7602 |
<xsl:text> new_val = old_val / given_val; |
|
7603 |
</xsl:text> |
|
7604 |
<xsl:text> break; |
|
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
|
7605 |
</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
|
7606 |
<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
|
7607 |
</xsl:text> |
3147 | 7608 |
<xsl:text> return new_val; |
7609 |
</xsl:text> |
|
7610 |
<xsl:text>} |
|
7611 |
</xsl:text> |
|
7612 |
<xsl:text> |
|
7613 |
</xsl:text> |
|
7614 |
<xsl:text>var current_visible_page; |
|
7615 |
</xsl:text> |
|
7616 |
<xsl:text>var current_subscribed_page; |
|
7617 |
</xsl:text> |
|
7618 |
<xsl:text>var current_page_index; |
|
7619 |
</xsl:text> |
|
3206
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7620 |
<xsl:text>var page_node_local_index = hmi_local_index("page_node"); |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7621 |
</xsl:text> |
3147 | 7622 |
<xsl:text> |
7623 |
</xsl:text> |
|
7624 |
<xsl:text>function prepare_svg() { |
|
7625 |
</xsl:text> |
|
7626 |
<xsl:text> // prevents context menu from appearing on right click and long touch |
|
7627 |
</xsl:text> |
|
7628 |
<xsl:text> document.body.addEventListener('contextmenu', e => { |
|
7629 |
</xsl:text> |
|
7630 |
<xsl:text> e.preventDefault(); |
|
7631 |
</xsl:text> |
|
7632 |
<xsl:text> }); |
|
7633 |
</xsl:text> |
|
7634 |
<xsl:text> |
|
7635 |
</xsl:text> |
|
7636 |
<xsl:text> for(let eltid in detachable_elements){ |
|
7637 |
</xsl:text> |
|
7638 |
<xsl:text> let [element,parent] = detachable_elements[eltid]; |
|
7639 |
</xsl:text> |
|
7640 |
<xsl:text> parent.removeChild(element); |
|
7641 |
</xsl:text> |
|
7642 |
<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
|
7643 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7644 |
<xsl:text>}; |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7645 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7646 |
<xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7647 |
</xsl:text> |
3147 | 7648 |
<xsl:text>function switch_page(page_name, page_index) { |
7649 |
</xsl:text> |
|
7650 |
<xsl:text> if(current_subscribed_page != current_visible_page){ |
|
7651 |
</xsl:text> |
|
7652 |
<xsl:text> /* page switch already going */ |
|
7653 |
</xsl:text> |
|
7654 |
<xsl:text> /* TODO LOG ERROR */ |
|
7655 |
</xsl:text> |
|
7656 |
<xsl:text> return false; |
|
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
|
7657 |
</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
|
7658 |
<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
|
7659 |
</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
|
7660 |
<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
|
7661 |
</xsl:text> |
3147 | 7662 |
<xsl:text> if(page_name == undefined) |
7663 |
</xsl:text> |
|
7664 |
<xsl:text> page_name = current_subscribed_page; |
|
7665 |
</xsl:text> |
|
7666 |
<xsl:text> |
|
7667 |
</xsl:text> |
|
7668 |
<xsl:text> |
|
7669 |
</xsl:text> |
|
7670 |
<xsl:text> let old_desc = page_desc[current_subscribed_page]; |
|
7671 |
</xsl:text> |
|
7672 |
<xsl:text> let new_desc = page_desc[page_name]; |
|
7673 |
</xsl:text> |
|
7674 |
<xsl:text> |
|
7675 |
</xsl:text> |
|
7676 |
<xsl:text> if(new_desc == undefined){ |
|
7677 |
</xsl:text> |
|
7678 |
<xsl:text> /* TODO LOG ERROR */ |
|
7679 |
</xsl:text> |
|
7680 |
<xsl:text> return false; |
|
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7681 |
</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7682 |
<xsl:text> } |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7683 |
</xsl:text> |
3147 | 7684 |
<xsl:text> |
7685 |
</xsl:text> |
|
7686 |
<xsl:text> if(page_index == undefined){ |
|
7687 |
</xsl:text> |
|
7688 |
<xsl:text> page_index = new_desc.page_index; |
|
3097
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7689 |
</xsl:text> |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7690 |
<xsl:text> } |
a098b2dd9dff
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3094
diff
changeset
|
7691 |
</xsl:text> |
3147 | 7692 |
<xsl:text> |
7693 |
</xsl:text> |
|
7694 |
<xsl:text> if(old_desc){ |
|
7695 |
</xsl:text> |
|
7696 |
<xsl:text> old_desc.widgets.map(([widget,relativeness])=>widget.unsub()); |
|
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
|
7697 |
</xsl:text> |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7698 |
<xsl:text> } |
ff9ae4f4e3be
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
3004
diff
changeset
|
7699 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7700 |
<xsl:text> const new_offset = page_index == undefined ? 0 : page_index - new_desc.page_index; |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7701 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7702 |
<xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7703 |
</xsl:text> |
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7704 |
<xsl:text> const 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
|
7705 |
</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
|
7706 |
<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
|
7707 |
</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
|
7708 |
<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
|
7709 |
</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
|
7710 |
<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
|
7711 |
</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
|
7712 |
<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
|
7713 |
</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
|
7714 |
<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
|
7715 |
</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
|
7716 |
<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
|
7717 |
</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
|
7718 |
<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
|
7719 |
</xsl:text> |
3206
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7720 |
<xsl:text> let page_node; |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7721 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7722 |
<xsl:text> if(page_index != undefined){ |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7723 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7724 |
<xsl:text> page_node = hmitree_paths[page_index]; |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7725 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7726 |
<xsl:text> }else{ |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7727 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7728 |
<xsl:text> page_node = ""; |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7729 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7730 |
<xsl:text> } |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7731 |
</xsl:text> |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7732 |
<xsl:text> apply_hmi_value(page_node_local_index, page_node); |
4fd7bd10e606
SVGHMI: added "page_node" variable that reflects the HMI tree path of current relative page
Edouard Tisserant
parents:
3199
diff
changeset
|
7733 |
</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
|
7734 |
<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
|
7735 |
</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
|
7736 |
<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
|
7737 |
</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
|
7738 |
<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
|
7739 |
</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
|
7740 |
<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
|
7741 |
</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
|
7742 |
<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
|
7743 |
</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
|
7744 |
<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
|
7745 |
</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
|
7746 |
<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
|
7747 |
</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
|
7748 |
<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
|
7749 |
</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
|
7750 |
<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
|
7751 |
</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
|
7752 |
<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
|
7753 |
</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
|
7754 |
<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
|
7755 |
</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
|
7756 |
<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
|
7757 |
</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
|
7758 |
<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
|
7759 |
</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
|
7760 |
<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
|
7761 |
</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
|
7762 |
<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
|
7763 |
</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
|
7764 |
<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
|
7765 |
</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
|
7766 |
<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
|
7767 |
</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
|
7768 |
<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
|
7769 |
</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
|
7770 |
<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
|
7771 |
</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
|
7772 |
<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
|
7773 |
</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
|
7774 |
<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
|
7775 |
</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
|
7776 |
<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
|
7777 |
</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
|
7778 |
<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
|
7779 |
</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
|
7780 |
<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
|
7781 |
</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
|
7782 |
<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
|
7783 |
</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
|
7784 |
<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
|
7785 |
</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
|
7786 |
<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
|
7787 |
</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
|
7788 |
<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
|
7789 |
</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
|
7790 |
<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
|
7791 |
</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
|
7792 |
<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
|
7793 |
</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
|
7794 |
<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
|
7795 |
</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
|
7796 |
<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
|
7797 |
</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
|
7798 |
<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
|
7799 |
</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
|
7800 |
<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
|
7801 |
</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
|
7802 |
<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
|
7803 |
</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
|
7804 |
<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
|
7805 |
</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
|
7806 |
<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
|
7807 |
</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
|
7808 |
<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
|
7809 |
</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
|
7810 |
<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
|
7811 |
</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
|
7812 |
<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
|
7813 |
</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
|
7814 |
<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
|
7815 |
</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
|
7816 |
<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
|
7817 |
</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
|
7818 |
<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
|
7819 |
</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
|
7820 |
<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
|
7821 |
</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
|
7822 |
<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
|
7823 |
</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
|
7824 |
<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
|
7825 |
</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
|
7826 |
<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
|
7827 |
</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
|
7828 |
<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
|
7829 |
</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
|
7830 |
<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
|
7831 |
</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
|
7832 |
<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
|
7833 |
</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
|
7834 |
<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
|
7835 |
</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
|
7836 |
<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
|
7837 |
</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
|
7838 |
<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
|
7839 |
</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
|
7840 |
<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
|
7841 |
</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
|
7842 |
<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
|
7843 |
</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
|
7844 |
<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
|
7845 |
</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
|
7846 |
<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
|
7847 |
</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
|
7848 |
<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
|
7849 |
</xsl:text> |
3080
e5fa1f49f0b9
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant
parents:
3079
diff
changeset
|
7850 |
<xsl:text>const xmlns = "http://www.w3.org/2000/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
|
7851 |
</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
|
7852 |
<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
|
7853 |
</xsl:text> |
3079 | 7854 |
<xsl:text>const localtypes = {"PAGE_LOCAL":null, "HMI_LOCAL":null} |
7855 |
</xsl:text> |
|
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
7856 |
<xsl:text>function edit_value(path, valuetype, callback, initial) { |
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
|
7857 |
</xsl:text> |
3079 | 7858 |
<xsl:text> if(valuetype in localtypes){ |
7859 |
</xsl:text> |
|
7860 |
<xsl:text> valuetype = (typeof initial) == "number" ? "HMI_REAL" : "HMI_STRING"; |
|
7861 |
</xsl:text> |
|
7862 |
<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
|
7863 |
</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
|
7864 |
<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
|
7865 |
</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
|
7866 |
<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
|
7867 |
</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
|
7868 |
<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
|
7869 |
</xsl:text> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
7870 |
<xsl:text> widget.start_edit(path, valuetype, callback, initial); |
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
|
7871 |
</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
|
7872 |
<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
|
7873 |
</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
|
7874 |
<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
|
7875 |
</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
|
7876 |
<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
|
7877 |
</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
|
7878 |
<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
|
7879 |
</xsl:text> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
7880 |
<xsl:text>function show_modal() { |
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
|
7881 |
</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
|
7882 |
<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
|
7883 |
</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
|
7884 |
<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
|
7885 |
</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
|
7886 |
<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
|
7887 |
</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
|
7888 |
<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
|
7889 |
</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
|
7890 |
<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
|
7891 |
</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
|
7892 |
<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
|
7893 |
</xsl:text> |
3118
e704b0487515
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant
parents:
3116
diff
changeset
|
7894 |
<xsl:text> tmpgrpattr.value = "translate("+String(xdest-xcoord)+","+String(ydest-ycoord)+")"; |
3015
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
7895 |
</xsl:text> |
bd0b120cf277
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic
parents:
3004
diff
changeset
|
7896 |
<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
|
7897 |
</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
|
7898 |
<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
|
7899 |
</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
|
7900 |
<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
|
7901 |
</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
|
7902 |
<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
|
7903 |
</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
|
7904 |
<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
|
7905 |
</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
|
7906 |
<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
|
7907 |
</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
|
7908 |
<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
|
7909 |
</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
|
7910 |
<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
|
7911 |
</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
|
7912 |
<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
|
7913 |
</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
|
7914 |
<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
|
7915 |
</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
|
7916 |
<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
|
7917 |
</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
|
7918 |
<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
|
7919 |
</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
|
7920 |
<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
|
7921 |
</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
|
7922 |
<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
|
7923 |
</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
|
7924 |
<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
|
7925 |
</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
|
7926 |
<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
|
7927 |
</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
|
7928 |
<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
|
7929 |
</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
|
7930 |
<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
|
7931 |
</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
|
7932 |
</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
|
7933 |
</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
|
7934 |
</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
|
7935 |
</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
|
7936 |
</xsl:stylesheet> |