35 |
35 |
36 template "svg:*", mode="json_table_elt_render" { |
36 template "svg:*", mode="json_table_elt_render" { |
37 error > JsonTable Widget can't contain element of type «local-name()». |
37 error > JsonTable Widget can't contain element of type «local-name()». |
38 } |
38 } |
39 |
39 |
|
40 |
|
41 const "hmi_textstylelists_descs", "$parsed_widgets/widget[@type = 'TextStyleList']"; |
|
42 const "hmi_textstylelists", "$hmi_elements[@id = $hmi_textstylelists_descs/@id]"; |
|
43 |
40 template "svg:use", mode="json_table_elt_render" { |
44 template "svg:use", mode="json_table_elt_render" { |
41 param "value_expr"; |
45 param "value_expr"; |
42 // cloned element must be part of a HMI:List |
46 // cloned element must be part of a HMI:List |
43 const "targetid", "substring-after(@xlink:href,'#')"; |
47 const "targetid", "substring-after(@xlink:href,'#')"; |
44 const "from_list", "$hmi_lists[(@id | */@id) = $targetid]"; |
48 const "from_list", "$hmi_lists[(@id | */@id) = $targetid]"; |
|
49 const "from_textstylelist", "$hmi_textstylelists[(@id | */@id) = $targetid]"; |
45 |
50 |
46 if "count($from_list) = 0" |
51 choose { |
47 error > Clones (svg:use) in JsonTable Widget must point to a valid HMI:List widget or HMI:List item. Reference "«@xlink:href»" is not valid. |
52 when "count($from_list) > 0" { |
48 |
53 | id("«@id»").setAttribute("xlink:href", |
49 | id("«@id»").setAttribute("xlink:href", |
54 // obtain new target id from HMI:List widget |
50 // obtain new target id from HMI:List widget |
55 | "#"+hmi_widgets["«$from_list/@id»"].items[«$value_expr»]); |
51 | "#"+hmi_widgets["«$from_list/@id»"].items[«$value_expr»]); |
56 } |
|
57 when "count($from_textstylelist) > 0" { |
|
58 | console.log("from_textsylelist","«@id»", "«$value_expr»", «$value_expr», |
|
59 // obtain new style from HMI:TextStyleList widget |
|
60 | hmi_widgets["«$from_textstylelist/@id»"].items[«$value_expr»]); |
|
61 } |
|
62 otherwise |
|
63 warning > Clones (svg:use) in JsonTable Widget must point to a valid HMI:List or HMI:TextStyleList widget or item. Reference "«@xlink:href»" is not valid and will not be updated. |
|
64 } |
52 } |
65 } |
53 |
66 |
54 template "svg:text", mode="json_table_elt_render" { |
67 template "svg:text", mode="json_table_elt_render" { |
55 param "value_expr"; |
68 param "value_expr"; |
56 | id("«@id»").textContent = String(«$value_expr»); |
69 | id("«@id»").textContent = String(«$value_expr»); |
57 } |
70 } |
58 |
71 |
59 template "svg:*", mode="json_table_render" { |
72 template "svg:*", mode="json_table_render" { |
60 param "objname"; |
73 param "objname"; |
61 apply ".", mode="json_table_elt_render" with "value_expr" > «$objname»«@inkscape:label» |
74 apply ".", mode="json_table_elt_render" with "value_expr" > «$objname»«substring-before(@inkscape:label, ' ')» |
62 } |
75 } |
63 |
76 |
64 template "svg:g", mode="json_table_render" { |
77 template "svg:g", mode="json_table_render" { |
65 param "objname"; |
78 param "objname"; |
66 | let obj_«@id» = «$objname»«@inkscape:label»; |
79 | let obj_«@id» = «$objname»«substring-before(@inkscape:label, ' ')»; |
67 apply "*[@inkscape:label]", mode="json_table_render" |
80 apply "*[@inkscape:label]", mode="json_table_render" |
68 with "objname" > obj_«@id» |
81 with "objname" > obj_«@id» |
69 } |
82 } |
70 |
83 |
71 template "widget[@type='JsonTable']", mode="widget_defs" { |
84 template "widget[@type='JsonTable']", mode="widget_defs" { |