1226 <xsl:if test="position()!=last()"> |
1243 <xsl:if test="position()!=last()"> |
1227 <xsl:text>,</xsl:text> |
1244 <xsl:text>,</xsl:text> |
1228 </xsl:if> |
1245 </xsl:if> |
1229 </xsl:for-each> |
1246 </xsl:for-each> |
1230 </xsl:variable> |
1247 </xsl:variable> |
|
1248 <xsl:variable name="freq"> |
|
1249 <xsl:choose> |
|
1250 <xsl:when test="$widget/@freq"> |
|
1251 <xsl:value-of select="$widget/@freq"/> |
|
1252 </xsl:when> |
|
1253 <xsl:otherwise> |
|
1254 <xsl:text>undefined</xsl:text> |
|
1255 </xsl:otherwise> |
|
1256 </xsl:choose> |
|
1257 </xsl:variable> |
1231 <xsl:text> "</xsl:text> |
1258 <xsl:text> "</xsl:text> |
1232 <xsl:value-of select="@id"/> |
1259 <xsl:value-of select="@id"/> |
1233 <xsl:text>": new </xsl:text> |
1260 <xsl:text>": new </xsl:text> |
1234 <xsl:value-of select="$widget/@type"/> |
1261 <xsl:value-of select="$widget/@type"/> |
1235 <xsl:text>Widget ("</xsl:text> |
1262 <xsl:text>Widget ("</xsl:text> |
1236 <xsl:value-of select="@id"/> |
1263 <xsl:value-of select="@id"/> |
1237 <xsl:text>",[</xsl:text> |
1264 <xsl:text>",</xsl:text> |
|
1265 <xsl:value-of select="$freq"/> |
|
1266 <xsl:text>,[</xsl:text> |
1238 <xsl:value-of select="$args"/> |
1267 <xsl:value-of select="$args"/> |
1239 <xsl:text>],[</xsl:text> |
1268 <xsl:text>],[</xsl:text> |
1240 <xsl:value-of select="$indexes"/> |
1269 <xsl:value-of select="$indexes"/> |
1241 <xsl:text>],[</xsl:text> |
1270 <xsl:text>],[</xsl:text> |
1242 <xsl:value-of select="$minmaxes"/> |
1271 <xsl:value-of select="$minmaxes"/> |
2181 </shortdesc> |
2212 </shortdesc> |
2182 <path name="value" accepts="HMI_BOOL"> |
2213 <path name="value" accepts="HMI_BOOL"> |
2183 <xsl:text>Boolean variable</xsl:text> |
2214 <xsl:text>Boolean variable</xsl:text> |
2184 </path> |
2215 </path> |
2185 </xsl:template> |
2216 </xsl:template> |
|
2217 <xsl:variable name="_push_button_fsm"> |
|
2218 <fsm> |
|
2219 <state name="init"> |
|
2220 <on-dispatch value="false"> |
|
2221 <jump state="reflect_off"/> |
|
2222 </on-dispatch> |
|
2223 <on-dispatch value="true"> |
|
2224 <jump state="reflect_on"/> |
|
2225 </on-dispatch> |
|
2226 </state> |
|
2227 <state name="reflect_on"> |
|
2228 <show eltname="active"/> |
|
2229 <on-mouse position="down"> |
|
2230 <jump state="on"/> |
|
2231 </on-mouse> |
|
2232 <on-mouse position="up"> |
|
2233 <jump state="off"/> |
|
2234 </on-mouse> |
|
2235 <on-dispatch value="false"> |
|
2236 <jump state="reflect_off"/> |
|
2237 </on-dispatch> |
|
2238 </state> |
|
2239 <state name="on"> |
|
2240 <hmi-value value="true"/> |
|
2241 <show eltname="active"/> |
|
2242 <on-mouse position="up"> |
|
2243 <jump state="off"/> |
|
2244 </on-mouse> |
|
2245 <on-dispatch value="false"> |
|
2246 <jump state="reflect_off"/> |
|
2247 </on-dispatch> |
|
2248 </state> |
|
2249 <state name="reflect_off"> |
|
2250 <show eltname="inactive"/> |
|
2251 <on-mouse position="down"> |
|
2252 <jump state="on"/> |
|
2253 </on-mouse> |
|
2254 <on-mouse position="up"> |
|
2255 <jump state="off"/> |
|
2256 </on-mouse> |
|
2257 <on-dispatch value="true"> |
|
2258 <jump state="reflect_on"/> |
|
2259 </on-dispatch> |
|
2260 </state> |
|
2261 <state name="off"> |
|
2262 <hmi-value value="false"/> |
|
2263 <show eltname="inactive"/> |
|
2264 <on-mouse position="down"> |
|
2265 <jump state="on"/> |
|
2266 </on-mouse> |
|
2267 <on-dispatch value="true"> |
|
2268 <jump state="reflect_on"/> |
|
2269 </on-dispatch> |
|
2270 </state> |
|
2271 </fsm> |
|
2272 </xsl:variable> |
2186 <xsl:variable name="_button_fsm"> |
2273 <xsl:variable name="_button_fsm"> |
2187 <fsm> |
2274 <fsm> |
2188 <state name="init"> |
2275 <state name="init"> |
2189 <on-dispatch value="false"> |
2276 <on-dispatch value="false"> |
2190 <jump state="released"/> |
2277 <jump state="released"/> |
2329 <xsl:text> this.apply_hmi_value(0, </xsl:text> |
2420 <xsl:text> this.apply_hmi_value(0, </xsl:text> |
2330 <xsl:value-of select="@value"/> |
2421 <xsl:value-of select="@value"/> |
2331 <xsl:text>); |
2422 <xsl:text>); |
2332 </xsl:text> |
2423 </xsl:text> |
2333 </xsl:template> |
2424 </xsl:template> |
|
2425 <xsl:template name="generated_button_class"> |
|
2426 <xsl:param name="fsm"/> |
|
2427 <xsl:text> frequency = 5; |
|
2428 </xsl:text> |
|
2429 <xsl:text> display = "inactive"; |
|
2430 </xsl:text> |
|
2431 <xsl:text> state = "init"; |
|
2432 </xsl:text> |
|
2433 <xsl:text> dispatch(value) { |
|
2434 </xsl:text> |
|
2435 <xsl:apply-templates mode="dispatch_transition" select="$fsm"/> |
|
2436 <xsl:text> } |
|
2437 </xsl:text> |
|
2438 <xsl:text> onmouseup(evt) { |
|
2439 </xsl:text> |
|
2440 <xsl:text> svg_root.removeEventListener("pointerup", this.bound_onmouseup, true); |
|
2441 </xsl:text> |
|
2442 <xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2443 <xsl:with-param name="position" select="'up'"/> |
|
2444 </xsl:apply-templates> |
|
2445 <xsl:text> } |
|
2446 </xsl:text> |
|
2447 <xsl:text> onmousedown(evt) { |
|
2448 </xsl:text> |
|
2449 <xsl:text> svg_root.addEventListener("pointerup", this.bound_onmouseup, true); |
|
2450 </xsl:text> |
|
2451 <xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2452 <xsl:with-param name="position" select="'down'"/> |
|
2453 </xsl:apply-templates> |
|
2454 <xsl:text> } |
|
2455 </xsl:text> |
|
2456 <xsl:apply-templates mode="actions" select="$fsm"/> |
|
2457 <xsl:text> animate(){ |
|
2458 </xsl:text> |
|
2459 <xsl:text> if (this.active_elt && this.inactive_elt) { |
|
2460 </xsl:text> |
|
2461 <xsl:for-each select="str:split('active inactive')"> |
|
2462 <xsl:text> if(this.display == "</xsl:text> |
|
2463 <xsl:value-of select="."/> |
|
2464 <xsl:text>") |
|
2465 </xsl:text> |
|
2466 <xsl:text> this.</xsl:text> |
|
2467 <xsl:value-of select="."/> |
|
2468 <xsl:text>_elt.style.display = ""; |
|
2469 </xsl:text> |
|
2470 <xsl:text> else |
|
2471 </xsl:text> |
|
2472 <xsl:text> this.</xsl:text> |
|
2473 <xsl:value-of select="."/> |
|
2474 <xsl:text>_elt.style.display = "none"; |
|
2475 </xsl:text> |
|
2476 </xsl:for-each> |
|
2477 <xsl:text> } |
|
2478 </xsl:text> |
|
2479 <xsl:text> } |
|
2480 </xsl:text> |
|
2481 <xsl:text> init() { |
|
2482 </xsl:text> |
|
2483 <xsl:text> this.bound_onmouseup = this.onmouseup.bind(this); |
|
2484 </xsl:text> |
|
2485 <xsl:text> this.element.addEventListener("pointerdown", this.onmousedown.bind(this)); |
|
2486 </xsl:text> |
|
2487 <xsl:text> } |
|
2488 </xsl:text> |
|
2489 </xsl:template> |
2334 <xsl:template match="widget[@type='Button']" mode="widget_class"> |
2490 <xsl:template match="widget[@type='Button']" mode="widget_class"> |
2335 <xsl:text>class </xsl:text> |
2491 <xsl:text>class </xsl:text> |
2336 <xsl:text>ButtonWidget</xsl:text> |
2492 <xsl:text>ButtonWidget</xsl:text> |
2337 <xsl:text> extends Widget{ |
2493 <xsl:text> extends Widget{ |
2338 </xsl:text> |
2494 </xsl:text> |
2339 <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> |
2495 <xsl:variable name="fsm" select="exsl:node-set($_button_fsm)"/> |
2340 <xsl:text> frequency = 5; |
2496 <xsl:call-template name="generated_button_class"> |
2341 </xsl:text> |
2497 <xsl:with-param name="fsm" select="$fsm"/> |
2342 <xsl:text> display = "inactive"; |
2498 </xsl:call-template> |
2343 </xsl:text> |
|
2344 <xsl:text> state = "init"; |
|
2345 </xsl:text> |
|
2346 <xsl:text> dispatch(value) { |
|
2347 </xsl:text> |
|
2348 <xsl:apply-templates mode="dispatch_transition" select="$fsm"/> |
|
2349 <xsl:text> } |
|
2350 </xsl:text> |
|
2351 <xsl:text> onmouseup(evt) { |
|
2352 </xsl:text> |
|
2353 <xsl:text> svg_root.removeEventListener("pointerup", this.bound_onmouseup, true); |
|
2354 </xsl:text> |
|
2355 <xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2356 <xsl:with-param name="position" select="'up'"/> |
|
2357 </xsl:apply-templates> |
|
2358 <xsl:text> } |
|
2359 </xsl:text> |
|
2360 <xsl:text> onmousedown(evt) { |
|
2361 </xsl:text> |
|
2362 <xsl:text> svg_root.addEventListener("pointerup", this.bound_onmouseup, true); |
|
2363 </xsl:text> |
|
2364 <xsl:apply-templates mode="mouse_transition" select="$fsm"> |
|
2365 <xsl:with-param name="position" select="'down'"/> |
|
2366 </xsl:apply-templates> |
|
2367 <xsl:text> } |
|
2368 </xsl:text> |
|
2369 <xsl:apply-templates mode="actions" select="$fsm"/> |
|
2370 <xsl:text> animate(){ |
|
2371 </xsl:text> |
|
2372 <xsl:text> if (this.active_elt && this.inactive_elt) { |
|
2373 </xsl:text> |
|
2374 <xsl:for-each select="str:split('active inactive')"> |
|
2375 <xsl:text> if(this.display == "</xsl:text> |
|
2376 <xsl:value-of select="."/> |
|
2377 <xsl:text>") |
|
2378 </xsl:text> |
|
2379 <xsl:text> this.</xsl:text> |
|
2380 <xsl:value-of select="."/> |
|
2381 <xsl:text>_elt.style.display = ""; |
|
2382 </xsl:text> |
|
2383 <xsl:text> else |
|
2384 </xsl:text> |
|
2385 <xsl:text> this.</xsl:text> |
|
2386 <xsl:value-of select="."/> |
|
2387 <xsl:text>_elt.style.display = "none"; |
|
2388 </xsl:text> |
|
2389 </xsl:for-each> |
|
2390 <xsl:text> } |
|
2391 </xsl:text> |
|
2392 <xsl:text> } |
|
2393 </xsl:text> |
|
2394 <xsl:text> init() { |
|
2395 </xsl:text> |
|
2396 <xsl:text> this.bound_onmouseup = this.onmouseup.bind(this); |
|
2397 </xsl:text> |
|
2398 <xsl:text> this.element.addEventListener("pointerdown", this.onmousedown.bind(this)); |
|
2399 </xsl:text> |
|
2400 <xsl:text> } |
|
2401 </xsl:text> |
|
2402 <xsl:text>} |
2499 <xsl:text>} |
2403 </xsl:text> |
2500 </xsl:text> |
2404 </xsl:template> |
2501 </xsl:template> |
2405 <xsl:template match="widget[@type='Button']" mode="widget_defs"> |
2502 <xsl:template match="widget[@type='Button']" mode="widget_defs"> |
|
2503 <xsl:param name="hmi_element"/> |
|
2504 <xsl:call-template name="defs_by_labels"> |
|
2505 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
|
2506 <xsl:with-param name="labels"> |
|
2507 <xsl:text>active inactive</xsl:text> |
|
2508 </xsl:with-param> |
|
2509 <xsl:with-param name="mandatory" select="'no'"/> |
|
2510 </xsl:call-template> |
|
2511 </xsl:template> |
|
2512 <xsl:template match="widget[@type='PushButton']" mode="widget_class"> |
|
2513 <xsl:text>class </xsl:text> |
|
2514 <xsl:text>PushButtonWidget</xsl:text> |
|
2515 <xsl:text> extends Widget{ |
|
2516 </xsl:text> |
|
2517 <xsl:variable name="fsm" select="exsl:node-set($_push_button_fsm)"/> |
|
2518 <xsl:call-template name="generated_button_class"> |
|
2519 <xsl:with-param name="fsm" select="$fsm"/> |
|
2520 </xsl:call-template> |
|
2521 <xsl:text>} |
|
2522 </xsl:text> |
|
2523 </xsl:template> |
|
2524 <xsl:template match="widget[@type='PushButton']" mode="widget_defs"> |
2406 <xsl:param name="hmi_element"/> |
2525 <xsl:param name="hmi_element"/> |
2407 <xsl:call-template name="defs_by_labels"> |
2526 <xsl:call-template name="defs_by_labels"> |
2408 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2527 <xsl:with-param name="hmi_element" select="$hmi_element"/> |
2409 <xsl:with-param name="labels"> |
2528 <xsl:with-param name="labels"> |
2410 <xsl:text>active inactive</xsl:text> |
2529 <xsl:text>active inactive</xsl:text> |