32 } |
32 } |
33 } |
33 } |
34 || |
34 || |
35 |
35 |
36 template "svg:*", mode="json_table_elt_render" { |
36 template "svg:*", mode="json_table_elt_render" { |
37 warning > 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 template "svg:use", mode="json_table_elt_render" { |
40 template "svg:use", mode="json_table_elt_render" { |
41 param "value_expr"; |
41 param "value_expr"; |
42 | console.log("«@id»", "«$value_expr»", «$value_expr»); |
42 // cloned element must be part of a HMI:List |
|
43 const "targetid", "substring-after(@xlink:href,'#')"; |
|
44 const "from_list", "$hmi_lists[(@id | */@id) = $targetid]"; |
|
45 |
|
46 if "count($from_list) = 0" |
|
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. |
|
48 |
|
49 | id("«@id»").setAttribute("xlink:href", |
|
50 // obtain new target id from HMI:List widget |
|
51 | "#"+hmi_widgets["«$from_list/@id»"].items[«$value_expr»]); |
43 } |
52 } |
44 |
53 |
45 template "svg:text", mode="json_table_elt_render" { |
54 template "svg:text", mode="json_table_elt_render" { |
46 param "value_expr"; |
55 param "value_expr"; |
47 | console.log("«@id»", "«$value_expr»", «$value_expr»); |
56 | id("«@id»").textContent = String(«$value_expr»); |
48 } |
57 } |
49 |
58 |
50 template "svg:*", mode="json_table_render" { |
59 template "svg:*", mode="json_table_render" { |
51 param "objname"; |
60 param "objname"; |
52 apply ".", mode="json_table_elt_render" with "value_expr" > «$objname»«@inkscape:label» |
61 apply ".", mode="json_table_elt_render" with "value_expr" > «$objname»«@inkscape:label» |
53 } |
62 } |
54 |
63 |
55 template "svg:g", mode="json_table_render" { |
64 template "svg:g", mode="json_table_render" { |
56 param "objname"; |
65 param "objname"; |
57 | let obj_«@id» = «$objname»«@inkscape:label»; |
66 | let obj_«@id» = «$objname»«@inkscape:label»; |
58 apply "*[@inkscape:label]", mode="json_table_render" |
67 apply "*[@inkscape:label]", mode="json_table_render" |
59 with "objname" > obj_«@id» |
68 with "objname" > obj_«@id» |
60 } |
69 } |
61 |
70 |
62 template "widget[@type='JsonTable']", mode="widget_defs" { |
71 template "widget[@type='JsonTable']", mode="widget_defs" { |
63 param "hmi_element"; |
72 param "hmi_element"; |
64 labels("data"); |
73 labels("data"); |
65 optional_labels("forward backward cursor"); |
74 optional_labels("forward backward cursor"); |
66 const "data_elt", "$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"; |
75 const "data_elt", "$result_svg_ns//*[@id = $hmi_element/@id]/*[@inkscape:label = 'data']"; |
67 | spread_json_data: function(jdata) { |
76 | spread_json_data: function(jdata) { |
68 | console.log(jdata); |
|
69 apply "$data_elt/*", mode="json_table_render" with "objname","'jdata'"; |
77 apply "$data_elt/*", mode="json_table_render" with "objname","'jdata'"; |
70 | } |
78 | } |
71 } |
79 } |