branch | svghmi |
changeset 3238 | 8a9d4c794cba |
parent 3229 | c5be4fd425e7 |
child 3241 | fe945f1f48b7 |
3237:d000a91d1e95 | 3238:8a9d4c794cba |
---|---|
134 <xsl:with-param name="parentpath"> |
134 <xsl:with-param name="parentpath"> |
135 <xsl:value-of select="$parentpath"/> |
135 <xsl:value-of select="$parentpath"/> |
136 </xsl:with-param> |
136 </xsl:with-param> |
137 </xsl:apply-templates> |
137 </xsl:apply-templates> |
138 </xsl:template> |
138 </xsl:template> |
139 <xsl:variable name="pathregex" select="'^([^\[,]+)(\[[^\]]+\])?([\d,]*)$'"/> |
|
139 <xsl:template mode="parselabel" match="*"> |
140 <xsl:template mode="parselabel" match="*"> |
140 <xsl:variable name="label" select="@inkscape:label"/> |
141 <xsl:variable name="label" select="@inkscape:label"/> |
141 <xsl:variable name="id" select="@id"/> |
142 <xsl:variable name="id" select="@id"/> |
142 <xsl:variable name="description" select="substring-after($label,'HMI:')"/> |
143 <xsl:variable name="description" select="substring-after($label,'HMI:')"/> |
143 <xsl:variable name="_args" select="substring-before($description,'@')"/> |
144 <xsl:variable name="_args" select="substring-before($description,'@')"/> |
179 </xsl:for-each> |
180 </xsl:for-each> |
180 <xsl:variable name="paths" select="substring-after($description,'@')"/> |
181 <xsl:variable name="paths" select="substring-after($description,'@')"/> |
181 <xsl:for-each select="str:split($paths, '@')"> |
182 <xsl:for-each select="str:split($paths, '@')"> |
182 <xsl:if test="string-length(.) > 0"> |
183 <xsl:if test="string-length(.) > 0"> |
183 <path> |
184 <path> |
184 <xsl:variable name="pathminmax" select="str:split(.,',')"/> |
185 <xsl:variable name="path_match" select="regexp:match(.,$pathregex)"/> |
185 <xsl:variable name="path" select="$pathminmax[1]"/> |
186 <xsl:variable name="pathminmax" select="str:split($path_match[4],',')"/> |
187 <xsl:variable name="path" select="$path_match[2]"/> |
|
188 <xsl:variable name="path_accepts" select="$path_match[3]"/> |
|
186 <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> |
189 <xsl:variable name="pathminmaxcount" select="count($pathminmax)"/> |
187 <xsl:attribute name="value"> |
190 <xsl:attribute name="value"> |
188 <xsl:value-of select="$path"/> |
191 <xsl:value-of select="$path"/> |
189 </xsl:attribute> |
192 </xsl:attribute> |
193 <xsl:if test="string-length($path_accepts)"> |
|
194 <xsl:attribute name="accepts"> |
|
195 <xsl:value-of select="$path_accepts"/> |
|
196 </xsl:attribute> |
|
197 </xsl:if> |
|
190 <xsl:choose> |
198 <xsl:choose> |
191 <xsl:when test="$pathminmaxcount = 3"> |
199 <xsl:when test="$pathminmaxcount = 2"> |
192 <xsl:attribute name="min"> |
200 <xsl:attribute name="min"> |
201 <xsl:value-of select="$pathminmax[1]"/> |
|
202 </xsl:attribute> |
|
203 <xsl:attribute name="max"> |
|
193 <xsl:value-of select="$pathminmax[2]"/> |
204 <xsl:value-of select="$pathminmax[2]"/> |
194 </xsl:attribute> |
205 </xsl:attribute> |
195 <xsl:attribute name="max"> |
|
196 <xsl:value-of select="$pathminmax[3]"/> |
|
197 </xsl:attribute> |
|
198 </xsl:when> |
206 </xsl:when> |
199 <xsl:when test="$pathminmaxcount = 2"> |
207 <xsl:when test="$pathminmaxcount = 1 or $pathminmaxcount > 2"> |
200 <xsl:message terminate="yes"> |
208 <xsl:message terminate="yes"> |
201 <xsl:text>Widget id:</xsl:text> |
209 <xsl:text>Widget id:</xsl:text> |
202 <xsl:value-of select="$id"/> |
210 <xsl:value-of select="$id"/> |
203 <xsl:text> label:</xsl:text> |
211 <xsl:text> label:</xsl:text> |
204 <xsl:value-of select="$label"/> |
212 <xsl:value-of select="$label"/> |
256 </xsl:template> |
264 </xsl:template> |
257 <xsl:template mode="genlabel" match="path"> |
265 <xsl:template mode="genlabel" match="path"> |
258 <xsl:text>@</xsl:text> |
266 <xsl:text>@</xsl:text> |
259 <xsl:value-of select="@value"/> |
267 <xsl:value-of select="@value"/> |
260 <xsl:if test="string-length(@min)>0 or string-length(@max)>0"> |
268 <xsl:if test="string-length(@min)>0 or string-length(@max)>0"> |
261 <xsl:text>:</xsl:text> |
269 <xsl:text>,</xsl:text> |
262 <xsl:value-of select="@min"/> |
270 <xsl:value-of select="@min"/> |
263 <xsl:text>:</xsl:text> |
271 <xsl:text>,</xsl:text> |
264 <xsl:value-of select="@max"/> |
272 <xsl:value-of select="@max"/> |
265 </xsl:if> |
273 </xsl:if> |
266 </xsl:template> |
274 </xsl:template> |
267 <xsl:template mode="genlabel" match="widget"> |
275 <xsl:template mode="genlabel" match="widget"> |
268 <xsl:text>HMI:</xsl:text> |
276 <xsl:text>HMI:</xsl:text> |
675 <xsl:text> |
683 <xsl:text> |
676 </xsl:text> |
684 </xsl:text> |
677 </xsl:for-each> |
685 </xsl:for-each> |
678 <xsl:text> } |
686 <xsl:text> } |
679 </xsl:text> |
687 </xsl:text> |
680 <xsl:apply-templates mode="per_page_widget_template" select="$parsed_widgets/widget[@id = $all_page_widgets/@id]"> |
688 <xsl:apply-templates mode="widget_page" select="$parsed_widgets/widget[@id = $all_page_widgets/@id]"> |
681 <xsl:with-param name="page_desc" select="$desc"/> |
689 <xsl:with-param name="page_desc" select="$desc"/> |
682 </xsl:apply-templates> |
690 </xsl:apply-templates> |
683 <xsl:text> }</xsl:text> |
691 <xsl:text> }</xsl:text> |
684 <xsl:if test="position()!=last()"> |
692 <xsl:if test="position()!=last()"> |
685 <xsl:text>,</xsl:text> |
693 <xsl:text>,</xsl:text> |
706 <xsl:text>} |
714 <xsl:text>} |
707 </xsl:text> |
715 </xsl:text> |
708 <xsl:text> |
716 <xsl:text> |
709 </xsl:text> |
717 </xsl:text> |
710 </xsl:template> |
718 </xsl:template> |
711 <xsl:template mode="per_page_widget_template" match="*"/> |
719 <xsl:template mode="widget_page" match="*"/> |
712 <debug:detachable-pages/> |
720 <debug:detachable-pages/> |
713 <xsl:template match="debug:detachable-pages"> |
721 <xsl:template match="debug:detachable-pages"> |
714 <xsl:text> |
722 <xsl:text> |
715 </xsl:text> |
723 </xsl:text> |
716 <xsl:text>/* </xsl:text> |
724 <xsl:text>/* </xsl:text> |
1868 <xsl:otherwise> |
1876 <xsl:otherwise> |
1869 <func:result select="$txt"/> |
1877 <func:result select="$txt"/> |
1870 </xsl:otherwise> |
1878 </xsl:otherwise> |
1871 </xsl:choose> |
1879 </xsl:choose> |
1872 </func:function> |
1880 </func:function> |
1873 <xsl:template mode="widget_class" match="widget[@type='Animate']"> |
1881 <xsl:template match="widget[@type='Animate']" mode="widget_class"> |
1874 <xsl:text>class AnimateWidget extends Widget{ |
1882 <xsl:text>class </xsl:text> |
1883 <xsl:text>AnimateWidget</xsl:text> |
|
1884 <xsl:text> extends Widget{ |
|
1875 </xsl:text> |
1885 </xsl:text> |
1876 <xsl:text> frequency = 5; |
1886 <xsl:text> frequency = 5; |
1877 </xsl:text> |
1887 </xsl:text> |
1878 <xsl:text> speed = 0; |
1888 <xsl:text> speed = 0; |
1879 </xsl:text> |
1889 </xsl:text> |
1952 <xsl:text> } |
1962 <xsl:text> } |
1953 </xsl:text> |
1963 </xsl:text> |
1954 <xsl:text>} |
1964 <xsl:text>} |
1955 </xsl:text> |
1965 </xsl:text> |
1956 </xsl:template> |
1966 </xsl:template> |
1957 <xsl:template mode="widget_defs" match="widget[@type='Animate']"> |
1967 <xsl:template match="widget[@type='AnimateRotation']" mode="widget_class"> |
1968 <xsl:text>class </xsl:text> |
|
1969 <xsl:text>AnimateRotationWidget</xsl:text> |
|
1970 <xsl:text> extends Widget{ |
|
1971 </xsl:text> |
|
1972 <xsl:text> frequency = 5; |
|
1973 </xsl:text> |
|
1974 <xsl:text> speed = 0; |
|
1975 </xsl:text> |
|
1976 <xsl:text> widget_center = undefined; |
|
1977 </xsl:text> |
|
1978 <xsl:text> |
|
1979 </xsl:text> |
|
1980 <xsl:text> dispatch(value) { |
|
1981 </xsl:text> |
|
1982 <xsl:text> this.speed = value / 5; |
|
1983 </xsl:text> |
|
1984 <xsl:text> |
|
1985 </xsl:text> |
|
1986 <xsl:text> //reconfigure animation |
|
1987 </xsl:text> |
|
1988 <xsl:text> this.request_animate(); |
|
1989 </xsl:text> |
|
1990 <xsl:text> } |
|
1991 </xsl:text> |
|
1992 <xsl:text> |
|
1993 </xsl:text> |
|
1994 <xsl:text> animate(){ |
|
1995 </xsl:text> |
|
1996 <xsl:text> // change animation properties |
|
1997 </xsl:text> |
|
1998 <xsl:text> for(let child of this.element.children){ |
|
1999 </xsl:text> |
|
2000 <xsl:text> if(child.nodeName == "animateTransform"){ |
|
2001 </xsl:text> |
|
2002 <xsl:text> if(this.speed > 0){ |
|
2003 </xsl:text> |
|
2004 <xsl:text> child.setAttribute("dur", this.speed+"s"); |
|
2005 </xsl:text> |
|
2006 <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2007 </xsl:text> |
|
2008 <xsl:text> child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2009 </xsl:text> |
|
2010 <xsl:text> } |
|
2011 </xsl:text> |
|
2012 <xsl:text> else if(this.speed < 0){ |
|
2013 </xsl:text> |
|
2014 <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); |
|
2015 </xsl:text> |
|
2016 <xsl:text> child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2017 </xsl:text> |
|
2018 <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2019 </xsl:text> |
|
2020 <xsl:text> } |
|
2021 </xsl:text> |
|
2022 <xsl:text> else{ |
|
2023 </xsl:text> |
|
2024 <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2025 </xsl:text> |
|
2026 <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2027 </xsl:text> |
|
2028 <xsl:text> } |
|
2029 </xsl:text> |
|
2030 <xsl:text> } |
|
2031 </xsl:text> |
|
2032 <xsl:text> } |
|
2033 </xsl:text> |
|
2034 <xsl:text> } |
|
2035 </xsl:text> |
|
2036 <xsl:text> |
|
2037 </xsl:text> |
|
2038 <xsl:text> init() { |
|
2039 </xsl:text> |
|
2040 <xsl:text> let widget_pos = this.element.getBBox(); |
|
2041 </xsl:text> |
|
2042 <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; |
|
2043 </xsl:text> |
|
2044 <xsl:text> } |
|
2045 </xsl:text> |
|
2046 <xsl:text>} |
|
2047 </xsl:text> |
|
2048 </xsl:template> |
|
2049 <xsl:template match="widget[@type='AnimateRotation']" mode="widget_defs"> |
|
1958 <xsl:param name="hmi_element"/> |
2050 <xsl:param name="hmi_element"/> |
1959 <xsl:text> |
|
1960 </xsl:text> |
|
1961 </xsl:template> |
|
1962 <xsl:template mode="widget_class" match="widget[@type='AnimateRotation']"> |
|
1963 <xsl:text>class AnimateRotationWidget extends Widget{ |
|
1964 </xsl:text> |
|
1965 <xsl:text> frequency = 5; |
|
1966 </xsl:text> |
|
1967 <xsl:text> speed = 0; |
|
1968 </xsl:text> |
|
1969 <xsl:text> widget_center = undefined; |
|
1970 </xsl:text> |
|
1971 <xsl:text> |
|
1972 </xsl:text> |
|
1973 <xsl:text> dispatch(value) { |
|
1974 </xsl:text> |
|
1975 <xsl:text> this.speed = value / 5; |
|
1976 </xsl:text> |
|
1977 <xsl:text> |
|
1978 </xsl:text> |
|
1979 <xsl:text> //reconfigure animation |
|
1980 </xsl:text> |
|
1981 <xsl:text> this.request_animate(); |
|
1982 </xsl:text> |
|
1983 <xsl:text> } |
|
1984 </xsl:text> |
|
1985 <xsl:text> |
|
1986 </xsl:text> |
|
1987 <xsl:text> animate(){ |
|
1988 </xsl:text> |
|
1989 <xsl:text> // change animation properties |
|
1990 </xsl:text> |
|
1991 <xsl:text> for(let child of this.element.children){ |
|
1992 </xsl:text> |
|
1993 <xsl:text> if(child.nodeName == "animateTransform"){ |
|
1994 </xsl:text> |
|
1995 <xsl:text> if(this.speed > 0){ |
|
1996 </xsl:text> |
|
1997 <xsl:text> child.setAttribute("dur", this.speed+"s"); |
|
1998 </xsl:text> |
|
1999 <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2000 </xsl:text> |
|
2001 <xsl:text> child.setAttribute("to", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2002 </xsl:text> |
|
2003 <xsl:text> } |
|
2004 </xsl:text> |
|
2005 <xsl:text> else if(this.speed < 0){ |
|
2006 </xsl:text> |
|
2007 <xsl:text> child.setAttribute("dur", (-1)*this.speed+"s"); |
|
2008 </xsl:text> |
|
2009 <xsl:text> child.setAttribute("from", "360 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2010 </xsl:text> |
|
2011 <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2012 </xsl:text> |
|
2013 <xsl:text> } |
|
2014 </xsl:text> |
|
2015 <xsl:text> else{ |
|
2016 </xsl:text> |
|
2017 <xsl:text> child.setAttribute("from", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2018 </xsl:text> |
|
2019 <xsl:text> child.setAttribute("to", "0 "+this.widget_center[0]+" "+this.widget_center[1]); |
|
2020 </xsl:text> |
|
2021 <xsl:text> } |
|
2022 </xsl:text> |
|
2023 <xsl:text> } |
|
2024 </xsl:text> |
|
2025 <xsl:text> } |
|
2026 </xsl:text> |
|
2027 <xsl:text> } |
|
2028 </xsl:text> |
|
2029 <xsl:text> |
|
2030 </xsl:text> |
|
2031 <xsl:text> init() { |
|
2032 </xsl:text> |
|
2033 <xsl:text> let widget_pos = this.element.getBBox(); |
|
2034 </xsl:text> |
|
2035 <xsl:text> this.widget_center = [(widget_pos.x+widget_pos.width/2), (widget_pos.y+widget_pos.height/2)]; |
|
2036 </xsl:text> |
|
2037 <xsl:text> } |
|
2038 </xsl:text> |
|
2039 <xsl:text>} |
|
2040 </xsl:text> |
|
2041 </xsl:template> |
|
2042 <xsl:template mode="widget_defs" match="widget[@type='AnimateRotation']"> |
|
2043 <xsl:param name="hmi_element"/> |
2051 <xsl:param name="hmi_element"/> |
2044 <xsl:text> |
2052 <xsl:text> |
2045 </xsl:text> |
2053 </xsl:text> |
2046 </xsl:template> |
2054 </xsl:template> |
2047 <xsl:template mode="widget_class" match="widget[@type='Back']"> |
2055 <xsl:template match="widget[@type='Back']" mode="widget_class"> |
2048 <xsl:text>class BackWidget extends Widget{ |
2056 <xsl:text>class </xsl:text> |
2057 <xsl:text>BackWidget</xsl:text> |
|
2058 <xsl:text> extends Widget{ |
|
2049 </xsl:text> |
2059 </xsl:text> |
2050 <xsl:text> on_click(evt) { |
2060 <xsl:text> on_click(evt) { |
2051 </xsl:text> |
2061 </xsl:text> |
2052 <xsl:text> if(jump_history.length > 1){ |
2062 <xsl:text> if(jump_history.length > 1){ |
2053 </xsl:text> |
2063 </xsl:text> |
2216 <xsl:text> this.apply_hmi_value(0, </xsl:text> |
2226 <xsl:text> this.apply_hmi_value(0, </xsl:text> |
2217 <xsl:value-of select="@value"/> |
2227 <xsl:value-of select="@value"/> |
2218 <xsl:text>); |
2228 <xsl:text>); |
2219 </xsl:text> |
2229 </xsl:text> |
2220 </xsl:template> |
2230 </xsl:template> |
2221 <xsl:template mode="widget_class" match="widget[@type='Button']"> |
2231 <xsl:template match="widget[@type='Button']" mode="widget_class"> |
2232 <xsl:text>class </xsl:text> |
|
2233 <xsl:text>ButtonWidget</xsl:text> |
|
2234 <xsl:text> extends Widget{ |
|
2235 </xsl:text> |
|
2222 <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> |
2236 <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> |
2223 <xsl:text>class ButtonWidget extends Widget{ |
|
2224 </xsl:text> |
|
2225 <xsl:text> frequency = 5; |
2237 <xsl:text> frequency = 5; |
2226 </xsl:text> |
2238 </xsl:text> |
2227 <xsl:text> display = "inactive"; |
2239 <xsl:text> display = "inactive"; |
2228 </xsl:text> |
2240 </xsl:text> |
2229 <xsl:text> state = "init"; |
2241 <xsl:text> state = "init"; |
2285 <xsl:text> } |
2297 <xsl:text> } |
2286 </xsl:text> |
2298 </xsl:text> |
2287 <xsl:text>} |
2299 <xsl:text>} |
2288 </xsl:text> |
2300 </xsl:text> |
2289 </xsl:template> |
2301 </xsl:template> |
2290 <xsl:template mode="widget_defs" match="widget[@type='Button']"> |
2302 <xsl:template match="widget[@type='Button']" mode="widget_defs"> |
2303 <xsl:param name="hmi_element"/> |
|
2291 <xsl:param name="hmi_element"/> |
2304 <xsl:param name="hmi_element"/> |
2292 <xsl:call-template name="defs_by_labels"> |
2305 <xsl:call-template name="defs_by_labels"> |
2293 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2306 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2294 <xsl:with-param name="labels"> |
2307 <xsl:with-param name="labels"> |
2295 <xsl:text>active inactive</xsl:text> |
2308 <xsl:text>active inactive</xsl:text> |
2296 </xsl:with-param> |
2309 </xsl:with-param> |
2297 <xsl:with-param name="mandatory" select="'no'"/> |
2310 <xsl:with-param name="mandatory" select="'no'"/> |
2298 </xsl:call-template> |
2311 </xsl:call-template> |
2299 </xsl:template> |
2312 </xsl:template> |
2300 <xsl:template mode="widget_class" match="widget[@type='CircularBar']"> |
2313 <xsl:template match="widget[@type='CircularBar']" mode="widget_class"> |
2301 <xsl:text>class CircularBarWidget extends Widget{ |
2314 <xsl:text>class </xsl:text> |
2315 <xsl:text>CircularBarWidget</xsl:text> |
|
2316 <xsl:text> extends Widget{ |
|
2302 </xsl:text> |
2317 </xsl:text> |
2303 <xsl:text> frequency = 10; |
2318 <xsl:text> frequency = 10; |
2304 </xsl:text> |
2319 </xsl:text> |
2305 <xsl:text> range = undefined; |
2320 <xsl:text> range = undefined; |
2306 </xsl:text> |
2321 </xsl:text> |
2393 <xsl:text> } |
2408 <xsl:text> } |
2394 </xsl:text> |
2409 </xsl:text> |
2395 <xsl:text>} |
2410 <xsl:text>} |
2396 </xsl:text> |
2411 </xsl:text> |
2397 </xsl:template> |
2412 </xsl:template> |
2398 <xsl:template mode="widget_defs" match="widget[@type='CircularBar']"> |
2413 <xsl:template match="widget[@type='CircularBar']" mode="widget_defs"> |
2414 <xsl:param name="hmi_element"/> |
|
2399 <xsl:param name="hmi_element"/> |
2415 <xsl:param name="hmi_element"/> |
2400 <xsl:call-template name="defs_by_labels"> |
2416 <xsl:call-template name="defs_by_labels"> |
2401 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2417 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2402 <xsl:with-param name="labels"> |
2418 <xsl:with-param name="labels"> |
2403 <xsl:text>path</xsl:text> |
2419 <xsl:text>path</xsl:text> |
2409 <xsl:text>value min max</xsl:text> |
2425 <xsl:text>value min max</xsl:text> |
2410 </xsl:with-param> |
2426 </xsl:with-param> |
2411 <xsl:with-param name="mandatory" select="'no'"/> |
2427 <xsl:with-param name="mandatory" select="'no'"/> |
2412 </xsl:call-template> |
2428 </xsl:call-template> |
2413 </xsl:template> |
2429 </xsl:template> |
2414 <xsl:template mode="widget_class" match="widget[@type='CircularSlider']"> |
2430 <xsl:template match="widget[@type='CircularSlider']" mode="widget_class"> |
2415 <xsl:text>class CircularSliderWidget extends Widget{ |
2431 <xsl:text>class </xsl:text> |
2432 <xsl:text>CircularSliderWidget</xsl:text> |
|
2433 <xsl:text> extends Widget{ |
|
2416 </xsl:text> |
2434 </xsl:text> |
2417 <xsl:text> frequency = 5; |
2435 <xsl:text> frequency = 5; |
2418 </xsl:text> |
2436 </xsl:text> |
2419 <xsl:text> range = undefined; |
2437 <xsl:text> range = undefined; |
2420 </xsl:text> |
2438 </xsl:text> |
2865 <xsl:text> } |
2883 <xsl:text> } |
2866 </xsl:text> |
2884 </xsl:text> |
2867 <xsl:text>} |
2885 <xsl:text>} |
2868 </xsl:text> |
2886 </xsl:text> |
2869 </xsl:template> |
2887 </xsl:template> |
2870 <xsl:template mode="widget_defs" match="widget[@type='CircularSlider']"> |
2888 <xsl:template match="widget[@type='CircularSlider']" mode="widget_defs"> |
2889 <xsl:param name="hmi_element"/> |
|
2871 <xsl:param name="hmi_element"/> |
2890 <xsl:param name="hmi_element"/> |
2872 <xsl:call-template name="defs_by_labels"> |
2891 <xsl:call-template name="defs_by_labels"> |
2873 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2892 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2874 <xsl:with-param name="labels"> |
2893 <xsl:with-param name="labels"> |
2875 <xsl:text>handle range</xsl:text> |
2894 <xsl:text>handle range</xsl:text> |
2883 <xsl:with-param name="mandatory" select="'no'"/> |
2902 <xsl:with-param name="mandatory" select="'no'"/> |
2884 </xsl:call-template> |
2903 </xsl:call-template> |
2885 <xsl:text> |
2904 <xsl:text> |
2886 </xsl:text> |
2905 </xsl:text> |
2887 </xsl:template> |
2906 </xsl:template> |
2888 <xsl:template mode="widget_class" match="widget[@type='CustomHtml']"> |
2907 <xsl:template match="widget[@type='CustomHtml']" mode="widget_class"> |
2889 <xsl:text>class CustomHtmlWidget extends Widget{ |
2908 <xsl:text>class </xsl:text> |
2909 <xsl:text>CustomHtmlWidget</xsl:text> |
|
2910 <xsl:text> extends Widget{ |
|
2890 </xsl:text> |
2911 </xsl:text> |
2891 <xsl:text> frequency = 5; |
2912 <xsl:text> frequency = 5; |
2892 </xsl:text> |
2913 </xsl:text> |
2893 <xsl:text> widget_size = undefined; |
2914 <xsl:text> widget_size = undefined; |
2894 </xsl:text> |
2915 </xsl:text> |
2925 <xsl:text> } |
2946 <xsl:text> } |
2926 </xsl:text> |
2947 </xsl:text> |
2927 <xsl:text>} |
2948 <xsl:text>} |
2928 </xsl:text> |
2949 </xsl:text> |
2929 </xsl:template> |
2950 </xsl:template> |
2930 <xsl:template mode="widget_defs" match="widget[@type='CustomHtml']"> |
2951 <xsl:template match="widget[@type='CustomHtml']" mode="widget_defs"> |
2952 <xsl:param name="hmi_element"/> |
|
2931 <xsl:param name="hmi_element"/> |
2953 <xsl:param name="hmi_element"/> |
2932 <xsl:call-template name="defs_by_labels"> |
2954 <xsl:call-template name="defs_by_labels"> |
2933 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2955 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2934 <xsl:with-param name="labels"> |
2956 <xsl:with-param name="labels"> |
2935 <xsl:text>container code</xsl:text> |
2957 <xsl:text>container code</xsl:text> |
2936 </xsl:with-param> |
2958 </xsl:with-param> |
2937 </xsl:call-template> |
2959 </xsl:call-template> |
2938 <xsl:text> |
2960 </xsl:template> |
2939 </xsl:text> |
2961 <xsl:template match="widget[@type='Display']" mode="widget_class"> |
2940 </xsl:template> |
2962 <xsl:text>class </xsl:text> |
2941 <xsl:template mode="widget_class" match="widget[@type='Display']"> |
2963 <xsl:text>DisplayWidget</xsl:text> |
2942 <xsl:text>class DisplayWidget extends Widget{ |
2964 <xsl:text> extends Widget{ |
2943 </xsl:text> |
2965 </xsl:text> |
2944 <xsl:text> frequency = 5; |
2966 <xsl:text> frequency = 5; |
2945 </xsl:text> |
2967 </xsl:text> |
2946 <xsl:text> dispatch(value, oldval, index) { |
2968 <xsl:text> dispatch(value, oldval, index) { |
2947 </xsl:text> |
2969 </xsl:text> |
2952 <xsl:text> } |
2974 <xsl:text> } |
2953 </xsl:text> |
2975 </xsl:text> |
2954 <xsl:text>} |
2976 <xsl:text>} |
2955 </xsl:text> |
2977 </xsl:text> |
2956 </xsl:template> |
2978 </xsl:template> |
2957 <xsl:template mode="widget_defs" match="widget[@type='Display']"> |
2979 <xsl:template match="widget[@type='Display']" mode="widget_defs"> |
2980 <xsl:param name="hmi_element"/> |
|
2958 <xsl:param name="hmi_element"/> |
2981 <xsl:param name="hmi_element"/> |
2959 <xsl:variable name="format"> |
2982 <xsl:variable name="format"> |
2960 <xsl:call-template name="defs_by_labels"> |
2983 <xsl:call-template name="defs_by_labels"> |
2961 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2984 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2962 <xsl:with-param name="labels"> |
2985 <xsl:with-param name="labels"> |
3505 <xsl:text>}(); // eslint-disable-line |
3528 <xsl:text>}(); // eslint-disable-line |
3506 </xsl:text> |
3529 </xsl:text> |
3507 <xsl:text> |
3530 <xsl:text> |
3508 </xsl:text> |
3531 </xsl:text> |
3509 </xsl:template> |
3532 </xsl:template> |
3510 <xsl:template mode="widget_class" match="widget[@type='DropDown']"> |
3533 <xsl:template match="widget[@type='DropDown']" mode="widget_class"> |
3511 <xsl:text> function numb_event(e) { |
3534 <xsl:text>class </xsl:text> |
3512 </xsl:text> |
3535 <xsl:text>DropDownWidget</xsl:text> |
3513 <xsl:text> e.stopPropagation(); |
3536 <xsl:text> extends Widget{ |
3514 </xsl:text> |
|
3515 <xsl:text> } |
|
3516 </xsl:text> |
|
3517 <xsl:text> class DropDownWidget extends Widget{ |
|
3518 </xsl:text> |
3537 </xsl:text> |
3519 <xsl:text> dispatch(value) { |
3538 <xsl:text> dispatch(value) { |
3520 </xsl:text> |
3539 </xsl:text> |
3521 <xsl:text> if(!this.opened) this.set_selection(value); |
3540 <xsl:text> if(!this.opened) this.set_selection(value); |
3522 </xsl:text> |
3541 </xsl:text> |
3740 </xsl:text> |
3759 </xsl:text> |
3741 <xsl:text> close(){ |
3760 <xsl:text> close(){ |
3742 </xsl:text> |
3761 </xsl:text> |
3743 <xsl:text> // Stop hogging all click events |
3762 <xsl:text> // Stop hogging all click events |
3744 </xsl:text> |
3763 </xsl:text> |
3745 <xsl:text> svg_root.removeEventListener("pointerdown", numb_event, true); |
3764 <xsl:text> svg_root.removeEventListener("pointerdown", this.numb_event, true); |
3746 </xsl:text> |
3765 </xsl:text> |
3747 <xsl:text> svg_root.removeEventListener("pointerup", numb_event, true); |
3766 <xsl:text> svg_root.removeEventListener("pointerup", this.numb_event, true); |
3748 </xsl:text> |
3767 </xsl:text> |
3749 <xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); |
3768 <xsl:text> svg_root.removeEventListener("click", this.bound_close_on_click_elsewhere, true); |
3750 </xsl:text> |
3769 </xsl:text> |
3751 <xsl:text> // Restore position and sixe of widget elements |
3770 <xsl:text> // Restore position and sixe of widget elements |
3752 </xsl:text> |
3771 </xsl:text> |
3976 </xsl:text> |
3995 </xsl:text> |
3977 <xsl:text> } |
3996 <xsl:text> } |
3978 </xsl:text> |
3997 </xsl:text> |
3979 <xsl:text> } |
3998 <xsl:text> } |
3980 </xsl:text> |
3999 </xsl:text> |
4000 <xsl:text> numb_event(e) { |
|
4001 </xsl:text> |
|
4002 <xsl:text> e.stopPropagation(); |
|
4003 </xsl:text> |
|
4004 <xsl:text> } |
|
4005 </xsl:text> |
|
3981 <xsl:text> open(){ |
4006 <xsl:text> open(){ |
3982 </xsl:text> |
4007 </xsl:text> |
3983 <xsl:text> let length = this.content.length; |
4008 <xsl:text> let length = this.content.length; |
3984 </xsl:text> |
4009 </xsl:text> |
3985 <xsl:text> // systematically reset text, to strip eventual whitespace spans |
4010 <xsl:text> // systematically reset text, to strip eventual whitespace spans |
4030 </xsl:text> |
4055 </xsl:text> |
4031 <xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); |
4056 <xsl:text> this.element.parentNode.appendChild(this.element.parentNode.removeChild(this.element)); |
4032 </xsl:text> |
4057 </xsl:text> |
4033 <xsl:text> // disable interaction with background |
4058 <xsl:text> // disable interaction with background |
4034 </xsl:text> |
4059 </xsl:text> |
4035 <xsl:text> svg_root.addEventListener("pointerdown", numb_event, true); |
4060 <xsl:text> svg_root.addEventListener("pointerdown", this.numb_event, true); |
4036 </xsl:text> |
4061 </xsl:text> |
4037 <xsl:text> svg_root.addEventListener("pointerup", numb_event, true); |
4062 <xsl:text> svg_root.addEventListener("pointerup", this.numb_event, true); |
4038 </xsl:text> |
4063 </xsl:text> |
4039 <xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); |
4064 <xsl:text> svg_root.addEventListener("click", this.bound_close_on_click_elsewhere, true); |
4040 </xsl:text> |
4065 </xsl:text> |
4041 <xsl:text> this.highlight_selection(); |
4066 <xsl:text> this.highlight_selection(); |
4042 </xsl:text> |
4067 </xsl:text> |
4160 </xsl:text> |
4185 </xsl:text> |
4161 <xsl:text> b.height.baseVal.value = 2 * tmargin + m.height; |
4186 <xsl:text> b.height.baseVal.value = 2 * tmargin + m.height; |
4162 </xsl:text> |
4187 </xsl:text> |
4163 <xsl:text> } |
4188 <xsl:text> } |
4164 </xsl:text> |
4189 </xsl:text> |
4165 <xsl:text> } |
4190 <xsl:text>} |
4166 </xsl:text> |
4191 </xsl:text> |
4167 </xsl:template> |
4192 </xsl:template> |
4168 <xsl:template mode="widget_defs" match="widget[@type='DropDown']"> |
4193 <xsl:template match="widget[@type='DropDown']" mode="widget_defs"> |
4194 <xsl:param name="hmi_element"/> |
|
4169 <xsl:param name="hmi_element"/> |
4195 <xsl:param name="hmi_element"/> |
4170 <xsl:call-template name="defs_by_labels"> |
4196 <xsl:call-template name="defs_by_labels"> |
4171 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
4197 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
4172 <xsl:with-param name="labels"> |
4198 <xsl:with-param name="labels"> |
4173 <xsl:text>text box button highlight</xsl:text> |
4199 <xsl:text>text box button highlight</xsl:text> |
4191 </xsl:otherwise> |
4217 </xsl:otherwise> |
4192 </xsl:choose> |
4218 </xsl:choose> |
4193 <xsl:text>, |
4219 <xsl:text>, |
4194 </xsl:text> |
4220 </xsl:text> |
4195 </xsl:template> |
4221 </xsl:template> |
4196 <xsl:template mode="widget_defs" match="widget[@type='ForEach']"> |
4222 <xsl:template match="widget[@type='ForEach']" mode="widget_defs"> |
4223 <xsl:param name="hmi_element"/> |
|
4197 <xsl:param name="hmi_element"/> |
4224 <xsl:param name="hmi_element"/> |
4198 <xsl:if test="count(path) != 1"> |
4225 <xsl:if test="count(path) != 1"> |
4199 <xsl:message terminate="yes"> |
4226 <xsl:message terminate="yes"> |
4200 <xsl:text>ForEach widget </xsl:text> |
4227 <xsl:text>ForEach widget </xsl:text> |
4201 <xsl:value-of select="$hmi_element/@id"/> |
4228 <xsl:value-of select="$hmi_element/@id"/> |
4305 <xsl:text> }, |
4332 <xsl:text> }, |
4306 </xsl:text> |
4333 </xsl:text> |
4307 <xsl:text> item_offset: 0, |
4334 <xsl:text> item_offset: 0, |
4308 </xsl:text> |
4335 </xsl:text> |
4309 </xsl:template> |
4336 </xsl:template> |
4310 <xsl:template mode="widget_class" match="widget[@type='ForEach']"> |
4337 <xsl:template match="widget[@type='ForEach']" mode="widget_class"> |
4311 <xsl:text>class ForEachWidget extends Widget{ |
4338 <xsl:text>class </xsl:text> |
4339 <xsl:text>ForEachWidget</xsl:text> |
|
4340 <xsl:text> extends Widget{ |
|
4312 </xsl:text> |
4341 </xsl:text> |
4313 <xsl:text> |
4342 <xsl:text> |
4314 </xsl:text> |
4343 </xsl:text> |
4315 <xsl:text> unsub_items(){ |
4344 <xsl:text> unsub_items(){ |
4316 </xsl:text> |
4345 </xsl:text> |
4441 <xsl:text> } |
4470 <xsl:text> } |
4442 </xsl:text> |
4471 </xsl:text> |
4443 <xsl:text>} |
4472 <xsl:text>} |
4444 </xsl:text> |
4473 </xsl:text> |
4445 </xsl:template> |
4474 </xsl:template> |
4446 <xsl:template mode="widget_class" match="widget[@type='Input']"> |
4475 <xsl:template match="widget[@type='Input']" mode="widget_desc"> |
4447 <xsl:text> class InputWidget extends Widget{ |
4476 <type> |
4448 </xsl:text> |
4477 <xsl:value-of select="@type"/> |
4449 <xsl:text> on_op_click(opstr) { |
4478 </type> |
4450 </xsl:text> |
4479 <longdesc> |
4451 <xsl:text> this.change_hmi_value(0, opstr); |
4480 <xsl:text>Input widget takes one variable path, and displays current value in |
4452 </xsl:text> |
4481 </xsl:text> |
4453 <xsl:text> } |
4482 <xsl:text>optional "value" labeled sub-element. Click on optional "edit" labeled |
4454 </xsl:text> |
4483 </xsl:text> |
4455 <xsl:text> edit_callback(new_val) { |
4484 <xsl:text>element opens keypad to edit value. Operation on current value is |
4456 </xsl:text> |
4485 </xsl:text> |
4457 <xsl:text> this.apply_hmi_value(0, new_val); |
4486 <xsl:text>performed when click on sub-elements with label starting with '=', '+' |
4458 </xsl:text> |
4487 </xsl:text> |
4459 <xsl:text> } |
4488 <xsl:text>or '-' sign. Value after sign is used as operand. |
4460 </xsl:text> |
4489 </xsl:text> |
4461 <xsl:text> |
4490 </longdesc> |
4462 </xsl:text> |
4491 <shortdesc> |
4463 <xsl:text> is_inhibited = false; |
4492 <xsl:text>Input field with predefined operation buttons</xsl:text> |
4464 </xsl:text> |
4493 </shortdesc> |
4465 <xsl:text> alert(msg){ |
4494 <arg accepts="string"> |
4466 </xsl:text> |
4495 <xsl:text>optional printf-like format </xsl:text> |
4467 <xsl:text> this.is_inhibited = true; |
4496 </arg> |
4468 </xsl:text> |
4497 <path accepts="HMI_INT, HMI_REAL, HMI_STRING"> |
4469 <xsl:text> this.display = msg; |
4498 <xsl:text>single variable to edit</xsl:text> |
4470 </xsl:text> |
4499 </path> |
4471 <xsl:text> setTimeout(() => this.stopalert(), 1000); |
4500 </xsl:template> |
4472 </xsl:text> |
4501 <xsl:template match="widget[@type='Input']" mode="widget_class"> |
4473 <xsl:text> this.request_animate(); |
4502 <xsl:text>class </xsl:text> |
4474 </xsl:text> |
4503 <xsl:text>InputWidget</xsl:text> |
4475 <xsl:text> } |
4504 <xsl:text> extends Widget{ |
4476 </xsl:text> |
4505 </xsl:text> |
4477 <xsl:text> |
4506 <xsl:text> on_op_click(opstr) { |
4478 </xsl:text> |
4507 </xsl:text> |
4479 <xsl:text> stopalert(){ |
4508 <xsl:text> this.change_hmi_value(0, opstr); |
4480 </xsl:text> |
4509 </xsl:text> |
4481 <xsl:text> this.is_inhibited = false; |
4510 <xsl:text> } |
4482 </xsl:text> |
4511 </xsl:text> |
4483 <xsl:text> this.display = this.last_value; |
4512 <xsl:text> edit_callback(new_val) { |
4484 </xsl:text> |
4513 </xsl:text> |
4485 <xsl:text> this.request_animate(); |
4514 <xsl:text> this.apply_hmi_value(0, new_val); |
4486 </xsl:text> |
4515 </xsl:text> |
4487 <xsl:text> } |
4516 <xsl:text> } |
4488 </xsl:text> |
4517 </xsl:text> |
4489 <xsl:text> |
4518 <xsl:text> |
4490 </xsl:text> |
4519 </xsl:text> |
4491 <xsl:text> overshot(new_val, max) { |
4520 <xsl:text> is_inhibited = false; |
4492 </xsl:text> |
4521 </xsl:text> |
4493 <xsl:text> this.alert("max"); |
4522 <xsl:text> alert(msg){ |
4494 </xsl:text> |
4523 </xsl:text> |
4495 <xsl:text> } |
4524 <xsl:text> this.is_inhibited = true; |
4496 </xsl:text> |
4525 </xsl:text> |
4497 <xsl:text> |
4526 <xsl:text> this.display = msg; |
4498 </xsl:text> |
4527 </xsl:text> |
4499 <xsl:text> undershot(new_val, min) { |
4528 <xsl:text> setTimeout(() => this.stopalert(), 1000); |
4500 </xsl:text> |
4529 </xsl:text> |
4501 <xsl:text> this.alert("min"); |
4530 <xsl:text> this.request_animate(); |
4502 </xsl:text> |
4531 </xsl:text> |
4503 <xsl:text> } |
4532 <xsl:text> } |
4504 </xsl:text> |
4533 </xsl:text> |
4505 <xsl:text> |
4534 <xsl:text> |
4506 </xsl:text> |
4535 </xsl:text> |
4507 <xsl:text> |
4536 <xsl:text> stopalert(){ |
4508 </xsl:text> |
4537 </xsl:text> |
4509 <xsl:text> } |
4538 <xsl:text> this.is_inhibited = false; |
4510 </xsl:text> |
4539 </xsl:text> |
4511 </xsl:template> |
4540 <xsl:text> this.display = this.last_value; |
4512 <xsl:template mode="widget_defs" match="widget[@type='Input']"> |
4541 </xsl:text> |
4542 <xsl:text> this.request_animate(); |
|
4543 </xsl:text> |
|
4544 <xsl:text> } |
|
4545 </xsl:text> |
|
4546 <xsl:text> |
|
4547 </xsl:text> |
|
4548 <xsl:text> overshot(new_val, max) { |
|
4549 </xsl:text> |
|
4550 <xsl:text> this.alert("max"); |
|
4551 </xsl:text> |
|
4552 <xsl:text> } |
|
4553 </xsl:text> |
|
4554 <xsl:text> |
|
4555 </xsl:text> |
|
4556 <xsl:text> undershot(new_val, min) { |
|
4557 </xsl:text> |
|
4558 <xsl:text> this.alert("min"); |
|
4559 </xsl:text> |
|
4560 <xsl:text> } |
|
4561 </xsl:text> |
|
4562 <xsl:text>} |
|
4563 </xsl:text> |
|
4564 </xsl:template> |
|
4565 <xsl:template match="widget[@type='Input']" mode="widget_defs"> |
|
4513 <xsl:param name="hmi_element"/> |
4566 <xsl:param name="hmi_element"/> |
4514 <xsl:variable name="value_elt"> |
4567 <xsl:variable name="value_elt"> |
4515 <xsl:call-template name="defs_by_labels"> |
4568 <xsl:call-template name="defs_by_labels"> |
4516 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
4569 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
4517 <xsl:with-param name="labels"> |
4570 <xsl:with-param name="labels"> |
4596 </xsl:text> |
4649 </xsl:text> |
4597 </xsl:for-each> |
4650 </xsl:for-each> |
4598 <xsl:text> }, |
4651 <xsl:text> }, |
4599 </xsl:text> |
4652 </xsl:text> |
4600 </xsl:template> |
4653 </xsl:template> |
4601 <xsl:template mode="widget_class" match="widget[@type='JsonTable']"> |
4654 <xsl:template match="widget[@type='JsonTable']" mode="widget_class"> |
4602 <xsl:text>class JsonTableWidget extends Widget{ |
4655 <xsl:text>class </xsl:text> |
4656 <xsl:text>JsonTableWidget</xsl:text> |
|
4657 <xsl:text> extends Widget{ |
|
4603 </xsl:text> |
4658 </xsl:text> |
4604 <xsl:text> // arbitrary defaults to avoid missing entries in query |
4659 <xsl:text> // arbitrary defaults to avoid missing entries in query |
4605 </xsl:text> |
4660 </xsl:text> |
4606 <xsl:text> cache = [0,0,0]; |
4661 <xsl:text> cache = [0,0,0]; |
4607 </xsl:text> |
4662 </xsl:text> |
5016 <xsl:text>").style = "display:none"; |
5071 <xsl:text>").style = "display:none"; |
5017 </xsl:text> |
5072 </xsl:text> |
5018 <xsl:text> } |
5073 <xsl:text> } |
5019 </xsl:text> |
5074 </xsl:text> |
5020 </xsl:template> |
5075 </xsl:template> |
5021 <xsl:template mode="widget_defs" match="widget[@type='JsonTable']"> |
5076 <xsl:template match="widget[@type='JsonTable']" mode="widget_defs"> |
5077 <xsl:param name="hmi_element"/> |
|
5022 <xsl:param name="hmi_element"/> |
5078 <xsl:param name="hmi_element"/> |
5023 <xsl:call-template name="defs_by_labels"> |
5079 <xsl:call-template name="defs_by_labels"> |
5024 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5080 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5025 <xsl:with-param name="labels"> |
5081 <xsl:with-param name="labels"> |
5026 <xsl:text>data</xsl:text> |
5082 <xsl:text>data</xsl:text> |
5062 </xsl:text> |
5118 </xsl:text> |
5063 </xsl:for-each> |
5119 </xsl:for-each> |
5064 <xsl:text> } |
5120 <xsl:text> } |
5065 </xsl:text> |
5121 </xsl:text> |
5066 </xsl:template> |
5122 </xsl:template> |
5067 <xsl:template mode="widget_class" match="widget[@type='Jump']"> |
5123 <xsl:template match="widget[@type='Jump']" mode="widget_class"> |
5068 <xsl:text> class JumpWidget extends Widget{ |
5124 <xsl:text>class </xsl:text> |
5069 </xsl:text> |
5125 <xsl:text>JumpWidget</xsl:text> |
5070 <xsl:text> |
5126 <xsl:text> extends Widget{ |
5071 </xsl:text> |
5127 </xsl:text> |
5072 <xsl:text> activable = false; |
5128 <xsl:text> activable = false; |
5073 </xsl:text> |
5129 </xsl:text> |
5074 <xsl:text> active = false; |
5130 <xsl:text> active = false; |
5075 </xsl:text> |
5131 </xsl:text> |
5175 </xsl:text> |
5231 </xsl:text> |
5176 <xsl:text> } |
5232 <xsl:text> } |
5177 </xsl:text> |
5233 </xsl:text> |
5178 <xsl:text> } |
5234 <xsl:text> } |
5179 </xsl:text> |
5235 </xsl:text> |
5180 <xsl:text> } |
5236 <xsl:text>} |
5181 </xsl:text> |
5237 </xsl:text> |
5182 </xsl:template> |
5238 </xsl:template> |
5183 <xsl:template mode="widget_defs" match="widget[@type='Jump']"> |
5239 <xsl:template match="widget[@type='Jump']" mode="widget_defs"> |
5240 <xsl:param name="hmi_element"/> |
|
5184 <xsl:param name="hmi_element"/> |
5241 <xsl:param name="hmi_element"/> |
5185 <xsl:variable name="activity"> |
5242 <xsl:variable name="activity"> |
5186 <xsl:call-template name="defs_by_labels"> |
5243 <xsl:call-template name="defs_by_labels"> |
5187 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5244 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5188 <xsl:with-param name="labels"> |
5245 <xsl:with-param name="labels"> |
5227 </xsl:otherwise> |
5284 </xsl:otherwise> |
5228 </xsl:choose> |
5285 </xsl:choose> |
5229 <xsl:text> }, |
5286 <xsl:text> }, |
5230 </xsl:text> |
5287 </xsl:text> |
5231 </xsl:template> |
5288 </xsl:template> |
5232 <xsl:template mode="per_page_widget_template" match="widget[@type='Jump']"> |
5289 <xsl:template match="widget[@type='Jump']" mode="widget_page"> |
5290 <xsl:param name="page_desc"/> |
|
5233 <xsl:param name="page_desc"/> |
5291 <xsl:param name="page_desc"/> |
5234 <xsl:if test="path"> |
5292 <xsl:if test="path"> |
5235 <xsl:variable name="target_page_name"> |
5293 <xsl:variable name="target_page_name"> |
5236 <xsl:choose> |
5294 <xsl:choose> |
5237 <xsl:when test="arg"> |
5295 <xsl:when test="arg"> |
5329 <xsl:text>} |
5387 <xsl:text>} |
5330 </xsl:text> |
5388 </xsl:text> |
5331 <xsl:text> |
5389 <xsl:text> |
5332 </xsl:text> |
5390 </xsl:text> |
5333 </xsl:template> |
5391 </xsl:template> |
5334 <xsl:template mode="widget_class" match="widget[@type='Keypad']"> |
5392 <xsl:template match="widget[@type='Keypad']" mode="widget_class"> |
5335 <xsl:text>class KeypadWidget extends Widget{ |
5393 <xsl:text>class </xsl:text> |
5336 </xsl:text> |
5394 <xsl:text>KeypadWidget</xsl:text> |
5337 <xsl:text> |
5395 <xsl:text> extends Widget{ |
5338 </xsl:text> |
5396 </xsl:text> |
5339 <xsl:text> on_key_click(symbols) { |
5397 <xsl:text> on_key_click(symbols) { |
5340 </xsl:text> |
5398 </xsl:text> |
5341 <xsl:text> var syms = symbols.split(" "); |
5399 <xsl:text> var syms = symbols.split(" "); |
5342 </xsl:text> |
5400 </xsl:text> |
5523 <xsl:text> } |
5581 <xsl:text> } |
5524 </xsl:text> |
5582 </xsl:text> |
5525 <xsl:text>} |
5583 <xsl:text>} |
5526 </xsl:text> |
5584 </xsl:text> |
5527 </xsl:template> |
5585 </xsl:template> |
5528 <xsl:template mode="widget_defs" match="widget[@type='Keypad']"> |
5586 <xsl:template match="widget[@type='Keypad']" mode="widget_defs"> |
5587 <xsl:param name="hmi_element"/> |
|
5529 <xsl:param name="hmi_element"/> |
5588 <xsl:param name="hmi_element"/> |
5530 <xsl:call-template name="defs_by_labels"> |
5589 <xsl:call-template name="defs_by_labels"> |
5531 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5590 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5532 <xsl:with-param name="labels"> |
5591 <xsl:with-param name="labels"> |
5533 <xsl:text>Esc Enter BackSpace Keys Info Value</xsl:text> |
5592 <xsl:text>Esc Enter BackSpace Keys Info Value</xsl:text> |
5584 <xsl:text>, </xsl:text> |
5643 <xsl:text>, </xsl:text> |
5585 <xsl:value-of select="$g/@y"/> |
5644 <xsl:value-of select="$g/@y"/> |
5586 <xsl:text>], |
5645 <xsl:text>], |
5587 </xsl:text> |
5646 </xsl:text> |
5588 </xsl:template> |
5647 </xsl:template> |
5589 <xsl:template mode="widget_defs" match="widget[@type='List']"> |
5648 <xsl:template match="widget[@type='List']" mode="widget_defs"> |
5649 <xsl:param name="hmi_element"/> |
|
5590 <xsl:param name="hmi_element"/> |
5650 <xsl:param name="hmi_element"/> |
5591 <xsl:text> items: { |
5651 <xsl:text> items: { |
5592 </xsl:text> |
5652 </xsl:text> |
5593 <xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
5653 <xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
5594 <xsl:text> </xsl:text> |
5654 <xsl:text> </xsl:text> |
5599 </xsl:text> |
5659 </xsl:text> |
5600 </xsl:for-each> |
5660 </xsl:for-each> |
5601 <xsl:text> }, |
5661 <xsl:text> }, |
5602 </xsl:text> |
5662 </xsl:text> |
5603 </xsl:template> |
5663 </xsl:template> |
5604 <xsl:template mode="widget_defs" match="widget[@type='TextStyleList']"> |
5664 <xsl:template match="widget[@type='TextStyleList']" mode="widget_defs"> |
5665 <xsl:param name="hmi_element"/> |
|
5605 <xsl:param name="hmi_element"/> |
5666 <xsl:param name="hmi_element"/> |
5606 <xsl:text> styles: { |
5667 <xsl:text> styles: { |
5607 </xsl:text> |
5668 </xsl:text> |
5608 <xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
5669 <xsl:for-each select="$hmi_element/*[@inkscape:label]"> |
5609 <xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/> |
5670 <xsl:variable name="style" select="func:refered_elements(.)[self::svg:text]/@style"/> |
5615 </xsl:text> |
5676 </xsl:text> |
5616 </xsl:for-each> |
5677 </xsl:for-each> |
5617 <xsl:text> }, |
5678 <xsl:text> }, |
5618 </xsl:text> |
5679 </xsl:text> |
5619 </xsl:template> |
5680 </xsl:template> |
5620 <xsl:template mode="widget_class" match="widget[@type='Meter']"> |
5681 <xsl:template match="widget[@type='Metter']" mode="widget_class"> |
5621 <xsl:text>class MeterWidget extends Widget{ |
5682 <xsl:text>class </xsl:text> |
5683 <xsl:text>MetterWidget</xsl:text> |
|
5684 <xsl:text> extends Widget{ |
|
5622 </xsl:text> |
5685 </xsl:text> |
5623 <xsl:text> frequency = 10; |
5686 <xsl:text> frequency = 10; |
5624 </xsl:text> |
5687 </xsl:text> |
5625 <xsl:text> origin = undefined; |
5688 <xsl:text> origin = undefined; |
5626 </xsl:text> |
5689 </xsl:text> |
5670 </xsl:text> |
5733 </xsl:text> |
5671 <xsl:text> this.origin = this.needle_elt.getPointAtLength(0); |
5734 <xsl:text> this.origin = this.needle_elt.getPointAtLength(0); |
5672 </xsl:text> |
5735 </xsl:text> |
5673 <xsl:text> } |
5736 <xsl:text> } |
5674 </xsl:text> |
5737 </xsl:text> |
5675 <xsl:text> |
|
5676 </xsl:text> |
|
5677 <xsl:text>} |
5738 <xsl:text>} |
5678 </xsl:text> |
5739 </xsl:text> |
5679 </xsl:template> |
5740 </xsl:template> |
5680 <xsl:template mode="widget_defs" match="widget[@type='Meter']"> |
5741 <xsl:template match="widget[@type='Meter']" mode="widget_defs"> |
5742 <xsl:param name="hmi_element"/> |
|
5681 <xsl:param name="hmi_element"/> |
5743 <xsl:param name="hmi_element"/> |
5682 <xsl:call-template name="defs_by_labels"> |
5744 <xsl:call-template name="defs_by_labels"> |
5683 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5745 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5684 <xsl:with-param name="labels"> |
5746 <xsl:with-param name="labels"> |
5685 <xsl:text>needle range</xsl:text> |
5747 <xsl:text>needle range</xsl:text> |
5691 <xsl:text>value min max</xsl:text> |
5753 <xsl:text>value min max</xsl:text> |
5692 </xsl:with-param> |
5754 </xsl:with-param> |
5693 <xsl:with-param name="mandatory" select="'no'"/> |
5755 <xsl:with-param name="mandatory" select="'no'"/> |
5694 </xsl:call-template> |
5756 </xsl:call-template> |
5695 </xsl:template> |
5757 </xsl:template> |
5696 <xsl:template mode="widget_class" match="widget[@type='MultiState']"> |
5758 <xsl:template match="widget[@type='MultiState']" mode="widget_class"> |
5697 <xsl:text>class MultiStateWidget extends Widget{ |
5759 <xsl:text>class </xsl:text> |
5760 <xsl:text>MultiStateWidget</xsl:text> |
|
5761 <xsl:text> extends Widget{ |
|
5698 </xsl:text> |
5762 </xsl:text> |
5699 <xsl:text> frequency = 5; |
5763 <xsl:text> frequency = 5; |
5700 </xsl:text> |
5764 </xsl:text> |
5701 <xsl:text> state = 0; |
5765 <xsl:text> state = 0; |
5702 </xsl:text> |
5766 </xsl:text> |
5773 <xsl:text> } |
5837 <xsl:text> } |
5774 </xsl:text> |
5838 </xsl:text> |
5775 <xsl:text>} |
5839 <xsl:text>} |
5776 </xsl:text> |
5840 </xsl:text> |
5777 </xsl:template> |
5841 </xsl:template> |
5778 <xsl:template mode="widget_defs" match="widget[@type='MultiState']"> |
5842 <xsl:template match="widget[@type='MultiState']" mode="widget_defs"> |
5843 <xsl:param name="hmi_element"/> |
|
5779 <xsl:param name="hmi_element"/> |
5844 <xsl:param name="hmi_element"/> |
5780 <xsl:text> choices: [ |
5845 <xsl:text> choices: [ |
5781 </xsl:text> |
5846 </xsl:text> |
5782 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
5847 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
5783 <xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]"> |
5848 <xsl:for-each select="$result_svg_ns//*[@id = $hmi_element/@id]//*[regexp:test(@inkscape:label,$regex)]"> |
5804 </xsl:text> |
5869 </xsl:text> |
5805 </xsl:for-each> |
5870 </xsl:for-each> |
5806 <xsl:text> ], |
5871 <xsl:text> ], |
5807 </xsl:text> |
5872 </xsl:text> |
5808 </xsl:template> |
5873 </xsl:template> |
5809 <xsl:template mode="widget_class" match="widget[@type='ScrollBar']"> |
5874 <xsl:template match="widget[@type='ScrollBar']" mode="widget_class"> |
5810 <xsl:text>class ScrollBarWidget extends Widget{ |
5875 <xsl:text>class </xsl:text> |
5876 <xsl:text>ScrollBarWidget</xsl:text> |
|
5877 <xsl:text> extends Widget{ |
|
5811 </xsl:text> |
5878 </xsl:text> |
5812 <xsl:text> frequency = 10; |
5879 <xsl:text> frequency = 10; |
5813 </xsl:text> |
5880 </xsl:text> |
5814 <xsl:text> position = undefined; |
5881 <xsl:text> position = undefined; |
5815 </xsl:text> |
5882 </xsl:text> |
5982 <xsl:text> } |
6049 <xsl:text> } |
5983 </xsl:text> |
6050 </xsl:text> |
5984 <xsl:text>} |
6051 <xsl:text>} |
5985 </xsl:text> |
6052 </xsl:text> |
5986 </xsl:template> |
6053 </xsl:template> |
5987 <xsl:template mode="widget_defs" match="widget[@type='ScrollBar']"> |
6054 <xsl:template match="widget[@type='ScrollBar']" mode="widget_defs"> |
6055 <xsl:param name="hmi_element"/> |
|
5988 <xsl:param name="hmi_element"/> |
6056 <xsl:param name="hmi_element"/> |
5989 <xsl:call-template name="defs_by_labels"> |
6057 <xsl:call-template name="defs_by_labels"> |
5990 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
6058 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
5991 <xsl:with-param name="labels"> |
6059 <xsl:with-param name="labels"> |
5992 <xsl:text>cursor range</xsl:text> |
6060 <xsl:text>cursor range</xsl:text> |
6014 </xsl:text> |
6082 </xsl:text> |
6015 </xsl:if> |
6083 </xsl:if> |
6016 <xsl:text> }, |
6084 <xsl:text> }, |
6017 </xsl:text> |
6085 </xsl:text> |
6018 </xsl:template> |
6086 </xsl:template> |
6019 <xsl:template mode="widget_class" match="widget[@type='Slider']"> |
6087 <xsl:template match="widget[@type='Slider']" mode="widget_class"> |
6088 <xsl:text>class </xsl:text> |
|
6089 <xsl:text>SliderWidget</xsl:text> |
|
6090 <xsl:text> extends Widget{ |
|
6091 </xsl:text> |
|
6020 <xsl:text>class SliderWidget extends Widget{ |
6092 <xsl:text>class SliderWidget extends Widget{ |
6021 </xsl:text> |
6093 </xsl:text> |
6022 <xsl:text> frequency = 5; |
6094 <xsl:text> frequency = 5; |
6023 </xsl:text> |
6095 </xsl:text> |
6024 <xsl:text> range = undefined; |
6096 <xsl:text> range = undefined; |
6685 </xsl:text> |
6757 </xsl:text> |
6686 <xsl:text> } |
6758 <xsl:text> } |
6687 </xsl:text> |
6759 </xsl:text> |
6688 <xsl:text>} |
6760 <xsl:text>} |
6689 </xsl:text> |
6761 </xsl:text> |
6690 </xsl:template> |
6762 <xsl:text>} |
6691 <xsl:template mode="widget_defs" match="widget[@type='Slider']"> |
6763 </xsl:text> |
6764 </xsl:template> |
|
6765 <xsl:template match="widget[@type='Slider']" mode="widget_defs"> |
|
6766 <xsl:param name="hmi_element"/> |
|
6692 <xsl:param name="hmi_element"/> |
6767 <xsl:param name="hmi_element"/> |
6693 <xsl:call-template name="defs_by_labels"> |
6768 <xsl:call-template name="defs_by_labels"> |
6694 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
6769 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
6695 <xsl:with-param name="labels"> |
6770 <xsl:with-param name="labels"> |
6696 <xsl:text>handle range</xsl:text> |
6771 <xsl:text>handle range</xsl:text> |
6701 <xsl:with-param name="labels"> |
6776 <xsl:with-param name="labels"> |
6702 <xsl:text>value min max setpoint</xsl:text> |
6777 <xsl:text>value min max setpoint</xsl:text> |
6703 </xsl:with-param> |
6778 </xsl:with-param> |
6704 <xsl:with-param name="mandatory" select="'no'"/> |
6779 <xsl:with-param name="mandatory" select="'no'"/> |
6705 </xsl:call-template> |
6780 </xsl:call-template> |
6706 <xsl:text> |
6781 </xsl:template> |
6707 </xsl:text> |
6782 <xsl:template match="widget[@type='Switch']" mode="widget_class"> |
6708 </xsl:template> |
6783 <xsl:text>class </xsl:text> |
6709 <xsl:template mode="widget_class" match="widget[@type='Switch']"> |
6784 <xsl:text>SwitchWidget</xsl:text> |
6710 <xsl:text>class SwitchWidget extends Widget{ |
6785 <xsl:text> extends Widget{ |
6711 </xsl:text> |
6786 </xsl:text> |
6712 <xsl:text> frequency = 5; |
6787 <xsl:text> frequency = 5; |
6713 </xsl:text> |
6788 </xsl:text> |
6714 <xsl:text> dispatch(value) { |
6789 <xsl:text> dispatch(value) { |
6715 </xsl:text> |
6790 </xsl:text> |
6730 <xsl:text> } |
6805 <xsl:text> } |
6731 </xsl:text> |
6806 </xsl:text> |
6732 <xsl:text>} |
6807 <xsl:text>} |
6733 </xsl:text> |
6808 </xsl:text> |
6734 </xsl:template> |
6809 </xsl:template> |
6735 <xsl:template mode="widget_defs" match="widget[@type='Switch']"> |
6810 <xsl:template match="widget[@type='Switch']" mode="widget_defs"> |
6811 <xsl:param name="hmi_element"/> |
|
6736 <xsl:param name="hmi_element"/> |
6812 <xsl:param name="hmi_element"/> |
6737 <xsl:text> choices: [ |
6813 <xsl:text> choices: [ |
6738 </xsl:text> |
6814 </xsl:text> |
6739 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
6815 <xsl:variable name="regex" select="'^("[^"].*"|\-?[0-9]+|false|true)(#.*)?$'"/> |
6740 <xsl:variable name="subelts" select="$result_widgets[@id = $hmi_element/@id]//*"/> |
6816 <xsl:variable name="subelts" select="$result_widgets[@id = $hmi_element/@id]//*"/> |
6764 </xsl:text> |
6840 </xsl:text> |
6765 </xsl:for-each> |
6841 </xsl:for-each> |
6766 <xsl:text> ], |
6842 <xsl:text> ], |
6767 </xsl:text> |
6843 </xsl:text> |
6768 </xsl:template> |
6844 </xsl:template> |
6769 <xsl:template mode="widget_class" match="widget[@type='ToggleButton']"> |
6845 <xsl:template match="widget[@type='ToggleButton']" mode="widget_class"> |
6770 <xsl:text>class ToggleButtonWidget extends Widget{ |
6846 <xsl:text>class </xsl:text> |
6847 <xsl:text>ToggleButtonWidget</xsl:text> |
|
6848 <xsl:text> extends Widget{ |
|
6771 </xsl:text> |
6849 </xsl:text> |
6772 <xsl:text> frequency = 5; |
6850 <xsl:text> frequency = 5; |
6773 </xsl:text> |
6851 </xsl:text> |
6774 <xsl:text> state = 0; |
6852 <xsl:text> state = 0; |
6775 </xsl:text> |
6853 </xsl:text> |
6844 <xsl:text> } |
6922 <xsl:text> } |
6845 </xsl:text> |
6923 </xsl:text> |
6846 <xsl:text>} |
6924 <xsl:text>} |
6847 </xsl:text> |
6925 </xsl:text> |
6848 </xsl:template> |
6926 </xsl:template> |
6849 <xsl:template mode="widget_defs" match="widget[@type='ToggleButton']"> |
6927 <xsl:template match="widget[@type='ToggleButton']" mode="widget_defs"> |
6928 <xsl:param name="hmi_element"/> |
|
6850 <xsl:param name="hmi_element"/> |
6929 <xsl:param name="hmi_element"/> |
6851 <xsl:call-template name="defs_by_labels"> |
6930 <xsl:call-template name="defs_by_labels"> |
6852 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
6931 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
6853 <xsl:with-param name="labels"> |
6932 <xsl:with-param name="labels"> |
6854 <xsl:text>active inactive</xsl:text> |
6933 <xsl:text>active inactive</xsl:text> |