cpee 2.1.92 → 2.1.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/ui.css +4 -4
  3. data/cockpit/css/wfadaptor.css +25 -100
  4. data/cockpit/js/details.js +7 -0
  5. data/cockpit/js/instance.js +13 -7
  6. data/cockpit/js/wfadaptor.js +120 -87
  7. data/cockpit/only_llm.html +3 -5
  8. data/cockpit/templates/Frames.xml +142 -55
  9. data/cockpit/themes/base.js +7 -8
  10. data/cockpit/themes/control/rngs/call.rng +1 -0
  11. data/cockpit/themes/control/rngs/callmanipulate.rng +1 -0
  12. data/cockpit/themes/control/rngs/manipulate.rng +1 -0
  13. data/cockpit/themes/control/rngs/start.rng +1 -0
  14. data/cockpit/themes/control/symbols/arrow.svg +1 -1
  15. data/cockpit/themes/control/symbols/callmanipulate.svg +1 -1
  16. data/cockpit/themes/control/symbols/callmanipulate_sensor.svg +2 -1
  17. data/cockpit/themes/control/symbols/callmanipulate_sensor_signal.svg +1 -1
  18. data/cockpit/themes/control/symbols/callmanipulate_signal.svg +1 -1
  19. data/cockpit/themes/control/symbols/critical.svg +3 -2
  20. data/cockpit/themes/control/symbols/delete.svg +2 -2
  21. data/cockpit/themes/control/symbols/end.svg +1 -1
  22. data/cockpit/themes/control/symbols/manipulate.svg +2 -2
  23. data/cockpit/themes/control/symbols/parallel.svg +2 -1
  24. data/cockpit/themes/control/symbols/scripts.svg +1 -1
  25. data/cockpit/themes/dataflow/rngs/call.rng +1 -0
  26. data/cockpit/themes/dataflow/rngs/callmanipulate.rng +1 -0
  27. data/cockpit/themes/dataflow/rngs/manipulate.rng +1 -0
  28. data/cockpit/themes/dataflow/rngs/start.rng +1 -0
  29. data/cockpit/themes/dataflow/symbols/arrow.svg +1 -1
  30. data/cockpit/themes/dataflow/symbols/callmanipulate.svg +1 -1
  31. data/cockpit/themes/dataflow/symbols/callmanipulate_sensor.svg +2 -1
  32. data/cockpit/themes/dataflow/symbols/callmanipulate_sensor_signal.svg +1 -1
  33. data/cockpit/themes/dataflow/symbols/callmanipulate_signal.svg +1 -1
  34. data/cockpit/themes/dataflow/symbols/critical.svg +3 -2
  35. data/cockpit/themes/dataflow/symbols/delete.svg +2 -2
  36. data/cockpit/themes/dataflow/symbols/end.svg +1 -1
  37. data/cockpit/themes/dataflow/symbols/manipulate.svg +2 -2
  38. data/cockpit/themes/dataflow/symbols/parallel.svg +2 -1
  39. data/cockpit/themes/dataflow/symbols/scripts.svg +1 -1
  40. data/cockpit/themes/dataflow/theme.js +4 -4
  41. data/cockpit/themes/default/rngs/call.rng +1 -0
  42. data/cockpit/themes/default/rngs/callmanipulate.rng +1 -0
  43. data/cockpit/themes/default/rngs/manipulate.rng +1 -0
  44. data/cockpit/themes/default/rngs/start.rng +1 -0
  45. data/cockpit/themes/default/symbols/arrow.svg +1 -1
  46. data/cockpit/themes/default/symbols/callmanipulate.svg +1 -1
  47. data/cockpit/themes/default/symbols/callmanipulate_sensor.svg +2 -1
  48. data/cockpit/themes/default/symbols/callmanipulate_sensor_signal.svg +1 -1
  49. data/cockpit/themes/default/symbols/callmanipulate_signal.svg +1 -1
  50. data/cockpit/themes/default/symbols/critical.svg +3 -2
  51. data/cockpit/themes/default/symbols/delete.svg +2 -2
  52. data/cockpit/themes/default/symbols/end.svg +1 -1
  53. data/cockpit/themes/default/symbols/manipulate.svg +2 -2
  54. data/cockpit/themes/default/symbols/parallel.svg +2 -1
  55. data/cockpit/themes/default/symbols/scripts.svg +1 -1
  56. data/cockpit/themes/extended/rngs/call.rng +1 -0
  57. data/cockpit/themes/extended/rngs/callmanipulate.rng +1 -0
  58. data/cockpit/themes/extended/rngs/manipulate.rng +1 -0
  59. data/cockpit/themes/extended/rngs/start.rng +1 -0
  60. data/cockpit/themes/extended/symbols/arrow.svg +1 -1
  61. data/cockpit/themes/extended/symbols/callmanipulate.svg +1 -1
  62. data/cockpit/themes/extended/symbols/callmanipulate_sensor.svg +2 -1
  63. data/cockpit/themes/extended/symbols/callmanipulate_sensor_signal.svg +1 -1
  64. data/cockpit/themes/extended/symbols/callmanipulate_signal.svg +1 -1
  65. data/cockpit/themes/extended/symbols/critical.svg +3 -2
  66. data/cockpit/themes/extended/symbols/delete.svg +2 -2
  67. data/cockpit/themes/extended/symbols/end.svg +1 -1
  68. data/cockpit/themes/extended/symbols/manipulate.svg +2 -2
  69. data/cockpit/themes/extended/symbols/parallel.svg +2 -1
  70. data/cockpit/themes/extended/symbols/scripts.svg +1 -1
  71. data/cockpit/themes/felix/symbols/arrow.svg +1 -1
  72. data/cockpit/themes/felix/symbols/callmanipulate.svg +1 -1
  73. data/cockpit/themes/felix/symbols/callmanipulate_sensor.svg +2 -1
  74. data/cockpit/themes/felix/symbols/callmanipulate_sensor_signal.svg +1 -1
  75. data/cockpit/themes/felix/symbols/callmanipulate_signal.svg +1 -1
  76. data/cockpit/themes/felix/symbols/critical.svg +3 -2
  77. data/cockpit/themes/felix/symbols/delete.svg +2 -2
  78. data/cockpit/themes/felix/symbols/end.svg +1 -1
  79. data/cockpit/themes/felix/symbols/manipulate.svg +2 -2
  80. data/cockpit/themes/felix/symbols/parallel.svg +2 -1
  81. data/cockpit/themes/felix/symbols/scripts.svg +1 -1
  82. data/cockpit/themes/model/symbols/arrow.svg +1 -1
  83. data/cockpit/themes/model/symbols/callmanipulate.svg +1 -1
  84. data/cockpit/themes/model/symbols/callmanipulate_sensor.svg +2 -1
  85. data/cockpit/themes/model/symbols/callmanipulate_sensor_signal.svg +1 -1
  86. data/cockpit/themes/model/symbols/callmanipulate_signal.svg +1 -1
  87. data/cockpit/themes/model/symbols/critical.svg +3 -2
  88. data/cockpit/themes/model/symbols/delete.svg +2 -2
  89. data/cockpit/themes/model/symbols/end.svg +1 -1
  90. data/cockpit/themes/model/symbols/manipulate.svg +2 -2
  91. data/cockpit/themes/model/symbols/parallel.svg +2 -1
  92. data/cockpit/themes/model/symbols/scripts.svg +1 -1
  93. data/cockpit/themes/packed/rngs/call.rng +1 -0
  94. data/cockpit/themes/packed/rngs/callmanipulate.rng +1 -0
  95. data/cockpit/themes/packed/rngs/manipulate.rng +1 -0
  96. data/cockpit/themes/packed/rngs/start.rng +1 -0
  97. data/cockpit/themes/packed/symbols/arrow.svg +1 -1
  98. data/cockpit/themes/packed/symbols/callmanipulate.svg +1 -1
  99. data/cockpit/themes/packed/symbols/callmanipulate_sensor.svg +2 -1
  100. data/cockpit/themes/packed/symbols/callmanipulate_sensor_signal.svg +1 -1
  101. data/cockpit/themes/packed/symbols/callmanipulate_signal.svg +1 -1
  102. data/cockpit/themes/packed/symbols/critical.svg +3 -2
  103. data/cockpit/themes/packed/symbols/delete.svg +2 -2
  104. data/cockpit/themes/packed/symbols/end.svg +1 -1
  105. data/cockpit/themes/packed/symbols/manipulate.svg +2 -2
  106. data/cockpit/themes/packed/symbols/parallel.svg +2 -1
  107. data/cockpit/themes/packed/symbols/scripts.svg +1 -1
  108. data/cockpit/themes/preset/rngs/call.rng +1 -0
  109. data/cockpit/themes/preset/rngs/callmanipulate.rng +1 -0
  110. data/cockpit/themes/preset/rngs/manipulate.rng +1 -0
  111. data/cockpit/themes/preset/rngs/start.rng +1 -0
  112. data/cockpit/themes/preset/symbols/arrow.svg +1 -1
  113. data/cockpit/themes/preset/symbols/callmanipulate.svg +1 -1
  114. data/cockpit/themes/preset/symbols/callmanipulate_sensor.svg +2 -1
  115. data/cockpit/themes/preset/symbols/callmanipulate_sensor_signal.svg +1 -1
  116. data/cockpit/themes/preset/symbols/callmanipulate_signal.svg +1 -1
  117. data/cockpit/themes/preset/symbols/critical.svg +3 -2
  118. data/cockpit/themes/preset/symbols/delete.svg +2 -2
  119. data/cockpit/themes/preset/symbols/end.svg +1 -1
  120. data/cockpit/themes/preset/symbols/manipulate.svg +2 -2
  121. data/cockpit/themes/preset/symbols/parallel.svg +2 -1
  122. data/cockpit/themes/preset/symbols/scripts.svg +1 -1
  123. data/cockpit/themes/presetaltid/rngs/alternative.rng +25 -0
  124. data/cockpit/themes/presetaltid/rngs/call.rng +243 -0
  125. data/cockpit/themes/presetaltid/rngs/callmanipulate.rng +275 -0
  126. data/cockpit/themes/presetaltid/rngs/choose.rng +17 -0
  127. data/cockpit/themes/presetaltid/rngs/closed_loop.rng +62 -0
  128. data/cockpit/themes/presetaltid/rngs/closed_loop_cancel.rng +5 -0
  129. data/cockpit/themes/presetaltid/rngs/closed_loop_control.rng +31 -0
  130. data/cockpit/themes/presetaltid/rngs/closed_loop_measuring.rng +12 -0
  131. data/cockpit/themes/presetaltid/rngs/critical.rng +5 -0
  132. data/cockpit/themes/presetaltid/rngs/escape.rng +1 -0
  133. data/cockpit/themes/presetaltid/rngs/group.rng +3 -0
  134. data/cockpit/themes/presetaltid/rngs/loop.rng +22 -0
  135. data/cockpit/themes/presetaltid/rngs/manipulate.rng +23 -0
  136. data/cockpit/themes/presetaltid/rngs/otherwise.rng +22 -0
  137. data/cockpit/themes/presetaltid/rngs/parallel.rng +27 -0
  138. data/cockpit/themes/presetaltid/rngs/parallel_branch.rng +2 -0
  139. data/cockpit/themes/presetaltid/rngs/scripts.rng +23 -0
  140. data/cockpit/themes/presetaltid/rngs/start.rng +145 -0
  141. data/cockpit/themes/presetaltid/rngs/stop.rng +5 -0
  142. data/cockpit/themes/presetaltid/rngs/terminate.rng +1 -0
  143. data/cockpit/themes/presetaltid/rngs/wait_for_signal.rng +8 -0
  144. data/cockpit/themes/presetaltid/symbols/alternative.svg +15 -0
  145. data/cockpit/themes/presetaltid/symbols/arrow.svg +3 -0
  146. data/cockpit/themes/presetaltid/symbols/call.svg +19 -0
  147. data/cockpit/themes/presetaltid/symbols/call_sensor.svg +23 -0
  148. data/cockpit/themes/presetaltid/symbols/callmanipulate.svg +23 -0
  149. data/cockpit/themes/presetaltid/symbols/callmanipulate_sensor.svg +26 -0
  150. data/cockpit/themes/presetaltid/symbols/callmanipulate_sensor_signal.svg +32 -0
  151. data/cockpit/themes/presetaltid/symbols/callmanipulate_signal.svg +29 -0
  152. data/cockpit/themes/presetaltid/symbols/choose.svg +15 -0
  153. data/cockpit/themes/presetaltid/symbols/choose_exclusive.svg +15 -0
  154. data/cockpit/themes/presetaltid/symbols/choose_exclusive_finish.svg +5 -0
  155. data/cockpit/themes/presetaltid/symbols/choose_inclusive.svg +13 -0
  156. data/cockpit/themes/presetaltid/symbols/choose_inclusive_finish.svg +4 -0
  157. data/cockpit/themes/presetaltid/symbols/closed_loop.svg +5 -0
  158. data/cockpit/themes/presetaltid/symbols/closed_loop_cancel.svg +5 -0
  159. data/cockpit/themes/presetaltid/symbols/closed_loop_control.svg +5 -0
  160. data/cockpit/themes/presetaltid/symbols/closed_loop_measuring.svg +6 -0
  161. data/cockpit/themes/presetaltid/symbols/complex.svg +8 -0
  162. data/cockpit/themes/presetaltid/symbols/critical.svg +5 -0
  163. data/cockpit/themes/presetaltid/symbols/delete.svg +4 -0
  164. data/cockpit/themes/presetaltid/symbols/end.svg +3 -0
  165. data/cockpit/themes/presetaltid/symbols/escape.svg +5 -0
  166. data/cockpit/themes/presetaltid/symbols/event_end.svg +3 -0
  167. data/cockpit/themes/presetaltid/symbols/loop.svg +15 -0
  168. data/cockpit/themes/presetaltid/symbols/loop_end.svg +15 -0
  169. data/cockpit/themes/presetaltid/symbols/manipulate.svg +19 -0
  170. data/cockpit/themes/presetaltid/symbols/otherwise.svg +5 -0
  171. data/cockpit/themes/presetaltid/symbols/parallel.svg +6 -0
  172. data/cockpit/themes/presetaltid/symbols/parallel_branch.svg +5 -0
  173. data/cockpit/themes/presetaltid/symbols/parallel_branch_event.svg +14 -0
  174. data/cockpit/themes/presetaltid/symbols/parallel_branch_normal.svg +5 -0
  175. data/cockpit/themes/presetaltid/symbols/parallel_eventbased_exclusive.svg +9 -0
  176. data/cockpit/themes/presetaltid/symbols/parallel_eventbased_parallel.svg +8 -0
  177. data/cockpit/themes/presetaltid/symbols/scripts.svg +4 -0
  178. data/cockpit/themes/presetaltid/symbols/start.svg +3 -0
  179. data/cockpit/themes/presetaltid/symbols/start_event.svg +5 -0
  180. data/cockpit/themes/presetaltid/symbols/stop.svg +5 -0
  181. data/cockpit/themes/presetaltid/symbols/terminate.svg +4 -0
  182. data/cockpit/themes/presetaltid/symbols/wait_for_signal.svg +21 -0
  183. data/cockpit/themes/presetaltid/theme.js +16 -0
  184. data/cockpit/themes/presetid/rngs/alternative.rng +25 -0
  185. data/cockpit/themes/presetid/rngs/call.rng +243 -0
  186. data/cockpit/themes/presetid/rngs/callmanipulate.rng +275 -0
  187. data/cockpit/themes/presetid/rngs/choose.rng +17 -0
  188. data/cockpit/themes/presetid/rngs/closed_loop.rng +62 -0
  189. data/cockpit/themes/presetid/rngs/closed_loop_cancel.rng +5 -0
  190. data/cockpit/themes/presetid/rngs/closed_loop_control.rng +31 -0
  191. data/cockpit/themes/presetid/rngs/closed_loop_measuring.rng +12 -0
  192. data/cockpit/themes/presetid/rngs/critical.rng +5 -0
  193. data/cockpit/themes/presetid/rngs/escape.rng +1 -0
  194. data/cockpit/themes/presetid/rngs/group.rng +3 -0
  195. data/cockpit/themes/presetid/rngs/loop.rng +22 -0
  196. data/cockpit/themes/presetid/rngs/manipulate.rng +23 -0
  197. data/cockpit/themes/presetid/rngs/otherwise.rng +22 -0
  198. data/cockpit/themes/presetid/rngs/parallel.rng +27 -0
  199. data/cockpit/themes/presetid/rngs/parallel_branch.rng +2 -0
  200. data/cockpit/themes/presetid/rngs/scripts.rng +23 -0
  201. data/cockpit/themes/presetid/rngs/start.rng +145 -0
  202. data/cockpit/themes/presetid/rngs/stop.rng +5 -0
  203. data/cockpit/themes/presetid/rngs/terminate.rng +1 -0
  204. data/cockpit/themes/presetid/rngs/wait_for_signal.rng +8 -0
  205. data/cockpit/themes/presetid/symbols/alternative.svg +15 -0
  206. data/cockpit/themes/presetid/symbols/arrow.svg +3 -0
  207. data/cockpit/themes/presetid/symbols/call.svg +19 -0
  208. data/cockpit/themes/presetid/symbols/call_sensor.svg +23 -0
  209. data/cockpit/themes/presetid/symbols/callmanipulate.svg +23 -0
  210. data/cockpit/themes/presetid/symbols/callmanipulate_sensor.svg +26 -0
  211. data/cockpit/themes/presetid/symbols/callmanipulate_sensor_signal.svg +32 -0
  212. data/cockpit/themes/presetid/symbols/callmanipulate_signal.svg +29 -0
  213. data/cockpit/themes/presetid/symbols/choose.svg +15 -0
  214. data/cockpit/themes/presetid/symbols/choose_exclusive.svg +15 -0
  215. data/cockpit/themes/presetid/symbols/choose_exclusive_finish.svg +5 -0
  216. data/cockpit/themes/presetid/symbols/choose_inclusive.svg +13 -0
  217. data/cockpit/themes/presetid/symbols/choose_inclusive_finish.svg +4 -0
  218. data/cockpit/themes/presetid/symbols/closed_loop.svg +5 -0
  219. data/cockpit/themes/presetid/symbols/closed_loop_cancel.svg +5 -0
  220. data/cockpit/themes/presetid/symbols/closed_loop_control.svg +5 -0
  221. data/cockpit/themes/presetid/symbols/closed_loop_measuring.svg +6 -0
  222. data/cockpit/themes/presetid/symbols/complex.svg +8 -0
  223. data/cockpit/themes/presetid/symbols/critical.svg +5 -0
  224. data/cockpit/themes/presetid/symbols/delete.svg +4 -0
  225. data/cockpit/themes/presetid/symbols/end.svg +3 -0
  226. data/cockpit/themes/presetid/symbols/escape.svg +5 -0
  227. data/cockpit/themes/presetid/symbols/event_end.svg +3 -0
  228. data/cockpit/themes/presetid/symbols/loop.svg +15 -0
  229. data/cockpit/themes/presetid/symbols/loop_end.svg +15 -0
  230. data/cockpit/themes/presetid/symbols/manipulate.svg +19 -0
  231. data/cockpit/themes/presetid/symbols/otherwise.svg +5 -0
  232. data/cockpit/themes/presetid/symbols/parallel.svg +6 -0
  233. data/cockpit/themes/presetid/symbols/parallel_branch.svg +5 -0
  234. data/cockpit/themes/presetid/symbols/parallel_branch_event.svg +14 -0
  235. data/cockpit/themes/presetid/symbols/parallel_branch_normal.svg +5 -0
  236. data/cockpit/themes/presetid/symbols/parallel_eventbased_exclusive.svg +9 -0
  237. data/cockpit/themes/presetid/symbols/parallel_eventbased_parallel.svg +8 -0
  238. data/cockpit/themes/presetid/symbols/scripts.svg +4 -0
  239. data/cockpit/themes/presetid/symbols/start.svg +3 -0
  240. data/cockpit/themes/presetid/symbols/start_event.svg +5 -0
  241. data/cockpit/themes/presetid/symbols/stop.svg +5 -0
  242. data/cockpit/themes/presetid/symbols/terminate.svg +4 -0
  243. data/cockpit/themes/presetid/symbols/wait_for_signal.svg +21 -0
  244. data/cockpit/themes/presetid/theme.js +16 -0
  245. data/cockpit/themes/reduced/rngs/call.rng +1 -0
  246. data/cockpit/themes/reduced/rngs/callmanipulate.rng +1 -0
  247. data/cockpit/themes/reduced/rngs/manipulate.rng +1 -0
  248. data/cockpit/themes/reduced/rngs/start.rng +1 -0
  249. data/cockpit/themes/reduced/symbols/arrow.svg +1 -1
  250. data/cockpit/themes/reduced/symbols/callmanipulate.svg +1 -1
  251. data/cockpit/themes/reduced/symbols/callmanipulate_sensor.svg +2 -1
  252. data/cockpit/themes/reduced/symbols/callmanipulate_sensor_signal.svg +1 -1
  253. data/cockpit/themes/reduced/symbols/callmanipulate_signal.svg +1 -1
  254. data/cockpit/themes/reduced/symbols/critical.svg +3 -2
  255. data/cockpit/themes/reduced/symbols/delete.svg +2 -2
  256. data/cockpit/themes/reduced/symbols/end.svg +1 -1
  257. data/cockpit/themes/reduced/symbols/manipulate.svg +2 -2
  258. data/cockpit/themes/reduced/symbols/parallel.svg +2 -1
  259. data/cockpit/themes/reduced/symbols/scripts.svg +1 -1
  260. data/cpee.gemspec +1 -1
  261. data/server/executionhandlers/ruby/connection.rb +5 -1
  262. metadata +123 -3
  263. data/server/executionhandlers/ruby/ShiftingTestSimple.xml +0 -100
  264. data/server/server.pid +0 -1
@@ -169,7 +169,7 @@ function WfAdaptor(theme_base,doit) { // Controller {{{
169
169
  manifestation.elements[element].description = [ manifestation.elements[element].description ];
170
170
  }
171
171
  if ($.isArray(manifestation.elements[element].description)) {
172
- _.each(manifestation.elements[element].description,function(val,ind){
172
+ manifestation.elements[element].description.forEach(function(val,ind){
173
173
  deferreds.push(
174
174
  $.ajax({
175
175
  type: "GET",
@@ -213,7 +213,8 @@ function WfIllustrator(wf_adaptor) { // View {{{
213
213
  this.svg = {};
214
214
  this.draw = {};
215
215
  this.dim = {};
216
- this.dim.props = [];
216
+ this.dim.symbols = [];
217
+ this.dim.connections = [];
217
218
  this.compact = true;
218
219
  this.rotated_labels = true;
219
220
  this.striped = true;
@@ -262,8 +263,17 @@ function WfIllustrator(wf_adaptor) { // View {{{
262
263
  let bb = graph.svg[0].getBBox();
263
264
  self.svg.container.attr('height', bb.y + bb.height + self.height_shift); // small border on the bottom
264
265
  self.svg.container.attr('width', bb.x + bb.width + self.width_shift); // small border on the right
265
- self.svg.container.attr('data-pos-matrix', JSON.stringify(self.dim.props));
266
+ self.svg.container.attr('data-pos-matrix', JSON.stringify(self.dim.symbols));
267
+ self.svg.container.attr('data-con-list', JSON.stringify(self.dim.connections));
266
268
  } // }}}
269
+ this.set_duration = function(start) { //{{{
270
+ self.svg.container.append(
271
+ $X('<text class="duration" transform="translate(3,' + self.height_shift + ') rotate(90)" xmlns="http://www.w3.org/2000/svg">' +
272
+ Math.trunc(performance.now()-start) + ' ms' +
273
+ '</text>')
274
+ );
275
+ } //}}}
276
+
267
277
  this.get_node_by_svg_id = function(svg_id) { // {{{
268
278
  return $('[element-id = \'' + svg_id + '\'] g.activities', self.svg.container);
269
279
  } // }}}
@@ -281,22 +291,24 @@ function WfIllustrator(wf_adaptor) { // View {{{
281
291
  var clear = this.clear = function() { // {{{
282
292
  $('> :not(defs)', self.svg.container).each(function() {$(this).remove()});
283
293
  $('> defs > [belongs-to=element]', self.svg.container).each(function() {$(this).remove()});
284
- self.dim.props = [];
294
+ self.dim.symbols = [];
285
295
  } // }}}
286
296
  var get_symbol = this.get_symbol = function() { // {{{
287
297
  } // }}}
298
+ var get_properties = this.get_symbol = function() { // {{{
299
+ } // }}}
288
300
 
289
301
  // Helper Functions {{{
290
302
  var debug_dim = this.dim.debug = function() { //{{{
291
303
  line = '\n';
292
- for (let i=1; i < self.dim.props.length; i++) {
304
+ for (let i=1; i < self.dim.symbols.length; i++) {
293
305
  line += $.sprintf('%02d',i) + ': ';
294
- if (self.dim.props[i]) {
295
- for (let j=1; j < self.dim.props[i].length; j++) {
306
+ if (self.dim.symbols[i]) {
307
+ for (let j=1; j < self.dim.symbols[i].length; j++) {
296
308
  line += ' [ ';
297
- if (self.dim.props[i] && self.dim.props[i][j] && self.dim.props[i][j].x) { line += $.sprintf('%3d',self.dim.props[i][j].x); } else { line += ' '; }
309
+ if (self.dim.symbols[i] && self.dim.symbols[i][j] && self.dim.symbols[i][j].x) { line += $.sprintf('%3d',self.dim.symbols[i][j].x); } else { line += ' '; }
298
310
  line += ', ';
299
- if (self.dim.props[i] && self.dim.props[i][j] && self.dim.props[i][j].width) { line += $.sprintf('%3d',self.dim.props[i][j].width); } else { line += ' '; }
311
+ if (self.dim.symbols[i] && self.dim.symbols[i][j] && self.dim.symbols[i][j].width) { line += $.sprintf('%3d',self.dim.symbols[i][j].width); } else { line += ' '; }
300
312
  line += ' ] ';
301
313
  }
302
314
  }
@@ -305,55 +317,59 @@ function WfIllustrator(wf_adaptor) { // View {{{
305
317
  return line;
306
318
  } //}}}
307
319
 
308
- var set_x = this.dim.set_x = function(row,col,twidth) { //{{{
309
- if (!self.dim.props[row]) { self.dim.props[row] = []; }
310
- if (!self.dim.props[row][col]) { self.dim.props[row][col] = {}; }
320
+ var set_x = this.dim.set_x = function(row,col,twidth,sname) { //{{{
321
+ if (!self.dim.symbols[row]) { self.dim.symbols[row] = []; }
322
+ if (!self.dim.symbols[row][col]) { self.dim.symbols[row][col] = {}; }
311
323
 
312
- if (self.dim.props[row-1] && self.dim.props[row-1][col] && self.dim.props[row-1][col].x) { // row before
313
- self.dim.props[row][col].x = self.dim.props[row-1][col].x;
314
- } else if (self.dim.props[row] && self.dim.props[row][col-1] && self.dim.props[row][col-1].x) { // column before
324
+ if (self.dim.symbols[row-1] && self.dim.symbols[row-1][col] && self.dim.symbols[row-1][col].x) { // row before
325
+ self.dim.symbols[row][col].x = self.dim.symbols[row-1][col].x;
326
+ } else if (self.dim.symbols[row] && self.dim.symbols[row][col-1] && self.dim.symbols[row][col-1].x) { // column before
315
327
  let mx = 0;
316
- for (let i=row; i<self.dim.props.length; i++) {
317
- if (self.dim.props[i][col-1] && mx < self.dim.props[i][col-1].x + self.dim.props[i][col-1].width) {
318
- mx = self.dim.props[i][col-1].x + self.dim.props[i][col-1].width;
328
+ for (let i=row; i<self.dim.symbols.length; i++) {
329
+ if (self.dim.symbols[i][col-1] && mx < self.dim.symbols[i][col-1].x + self.dim.symbols[i][col-1].width) {
330
+ mx = self.dim.symbols[i][col-1].x + self.dim.symbols[i][col-1].width;
319
331
  }
320
332
  }
321
- self.dim.props[row][col].x = mx;
322
- } else if (self.dim.props[row-1] && self.dim.props[row-1][col-1] && self.dim.props[row-1][col-1].x) { // diagonal left above
323
- self.dim.props[row][col].x = self.dim.props[row-1][col-1].x + self.dim.props[row-1][col-1].width;
324
- } else if (self.dim.props.length > row + 1) { // same column below
333
+ self.dim.symbols[row][col].x = mx;
334
+ } else if (self.dim.symbols[row-1] && self.dim.symbols[row-1][col-1] && self.dim.symbols[row-1][col-1].x) { // diagonal left above
335
+ self.dim.symbols[row][col].x = self.dim.symbols[row-1][col-1].x + self.dim.symbols[row-1][col-1].width;
336
+ } else if (self.dim.symbols.length > row + 1) { // same column below
325
337
  let mx = 0;
326
- for (let i=row; i<self.dim.props.length; i++) {
327
- if (self.dim.props[i] && self.dim.props[i][col] && mx < self.dim.props[i][col].x) {
328
- mx = self.dim.props[i][col].x;
338
+ for (let i=row; i<self.dim.symbols.length; i++) {
339
+ if (self.dim.symbols[i] && self.dim.symbols[i][col] && mx < self.dim.symbols[i][col].x) {
340
+ mx = self.dim.symbols[i][col].x;
329
341
  }
330
342
  }
331
- self.dim.props[row][col].x = mx;
343
+ self.dim.symbols[row][col].x = mx;
332
344
  } else { // same column above
333
345
  let mx = 0;
334
346
  for (let i=row; i>0; i--) {
335
- if (self.dim.props[i] && self.dim.props[i][col] && mx < self.dim.props[i][col].x) {
336
- mx = self.dim.props[i][col].x;
347
+ if (self.dim.symbols[i] && self.dim.symbols[i][col] && mx < self.dim.symbols[i][col].x) {
348
+ mx = self.dim.symbols[i][col].x;
337
349
  }
338
350
  }
339
- self.dim.props[row][col].x = mx;
351
+ self.dim.symbols[row][col].x = mx;
340
352
  }
341
- if (self.dim.props[row][col].width) {
342
- if (twidth > self.dim.props[row][col].width) {
343
- self.dim.props[row][col].width = twidth;
353
+ if (self.dim.symbols[row][col].width) {
354
+ if (twidth > self.dim.symbols[row][col].width) {
355
+ self.dim.symbols[row][col].width = twidth;
344
356
  }
345
357
  } else {
346
- self.dim.props[row][col].width = twidth;
358
+ self.dim.symbols[row][col].width = twidth;
347
359
  }
360
+ self.dim.symbols[row][col].type = sname;
348
361
  // console.log('set_x ',row,col,debug_dim());
349
362
  } //}}}
350
- var set_x_cond = this.dim.set_x_cond = function(row,col,tx,twidth) { //{{{
351
- if (!self.dim.props[row]) { self.dim.props[row] = []; }
352
- if (!self.dim.props[row][col] || self.dim.props[row][col].width < twidth) {
353
- self.dim.props[row][col] = {};
354
- self.dim.props[row][col].x = tx;
355
- self.dim.props[row][col].width = twidth;
363
+ var set_x_cond = this.dim.set_x_cond = function(row,col,tx,twidth,sname,label,subtype) { //{{{
364
+ if (!self.dim.symbols[row]) { self.dim.symbols[row] = []; }
365
+ if (!self.dim.symbols[row][col] || self.dim.symbols[row][col].width < twidth) {
366
+ self.dim.symbols[row][col] = {};
367
+ self.dim.symbols[row][col].x = tx;
368
+ self.dim.symbols[row][col].width = twidth;
356
369
  }
370
+ self.dim.symbols[row][col].type = sname;
371
+ self.dim.symbols[row][col].label = label;
372
+ self.dim.symbols[row][col].subtype = subtype;
357
373
  // console.log('set_x_cond',row,col,debug_dim());
358
374
  } //}}}
359
375
 
@@ -361,26 +377,26 @@ function WfIllustrator(wf_adaptor) { // View {{{
361
377
  if (row<0) { row = 0 };
362
378
 
363
379
  let mlen = 0;
364
- if (self.dim.props[row] && self.dim.props[row][col] && self.dim.props[row][col].x) { // this column
365
- mlen = self.dim.props[row][col].x;
366
- } else if (self.dim.props[row] && !self.dim.props[row][col] && self.dim.props.length > row && self.dim.props[row+1] && self.dim.props[row+1][col] && self.dim.props[row+1][col].x ) { // row after
367
- mlen = self.dim.props[row+1][col].x;
368
- } else if (self.dim.props[row-1] && self.dim.props[row-1][col] && self.dim.props[row-1][col].x) { // row before
369
- mlen = self.dim.props[row-1][col].x;
370
- } else if (self.dim.props[row] && self.dim.props[row][col-1] && self.dim.props[row][col-1].x) { // column before
371
- for (let i=row; i<self.dim.props.length; i++) {
372
- if (self.dim.props[i][col-1] && mlen < self.dim.props[i][col-1].x + self.dim.props[i][col-1].width) {
373
- mlen = self.dim.props[i][col-1].x + self.dim.props[i][col-1].width;
380
+ if (self.dim.symbols[row] && self.dim.symbols[row][col] && self.dim.symbols[row][col].x) { // this column
381
+ mlen = self.dim.symbols[row][col].x;
382
+ } else if (self.dim.symbols[row] && !self.dim.symbols[row][col] && self.dim.symbols.length > row && self.dim.symbols[row+1] && self.dim.symbols[row+1][col] && self.dim.symbols[row+1][col].x ) { // row after
383
+ mlen = self.dim.symbols[row+1][col].x;
384
+ } else if (self.dim.symbols[row-1] && self.dim.symbols[row-1][col] && self.dim.symbols[row-1][col].x) { // row before
385
+ mlen = self.dim.symbols[row-1][col].x;
386
+ } else if (self.dim.symbols[row] && self.dim.symbols[row][col-1] && self.dim.symbols[row][col-1].x) { // column before
387
+ for (let i=row; i<self.dim.symbols.length; i++) {
388
+ if (self.dim.symbols[i][col-1] && mlen < self.dim.symbols[i][col-1].x + self.dim.symbols[i][col-1].width) {
389
+ mlen = self.dim.symbols[i][col-1].x + self.dim.symbols[i][col-1].width;
374
390
  }
375
391
  }
376
- } else if (self.dim.props[row+1] && self.dim.props[row+1][col] && self.dim.props[row+1][col].x) { // directly below
377
- mlen = self.dim.props[row+1][col].x;
378
- } else if (self.dim.props[row-1] && self.dim.props[row-1][col-1] && self.dim.props[row-1][col-1].x) { // diagonal left above
379
- mlen = self.dim.props[row-1][col-1].x + self.dim.props[row-1][col-1].width;
392
+ } else if (self.dim.symbols[row+1] && self.dim.symbols[row+1][col] && self.dim.symbols[row+1][col].x) { // directly below
393
+ mlen = self.dim.symbols[row+1][col].x;
394
+ } else if (self.dim.symbols[row-1] && self.dim.symbols[row-1][col-1] && self.dim.symbols[row-1][col-1].x) { // diagonal left above
395
+ mlen = self.dim.symbols[row-1][col-1].x + self.dim.symbols[row-1][col-1].width;
380
396
  } else { // same column below
381
- for (let i=row; i<self.dim.props.length; i++) {
382
- if (self.dim.props[i] && self.dim.props[i][col] && mlen < self.dim.props[i][col].x + self.dim.props[i][col].width) {
383
- mlen = self.dim.props[i][col].x;
397
+ for (let i=row; i<self.dim.symbols.length; i++) {
398
+ if (self.dim.symbols[i] && self.dim.symbols[i][col] && mlen < self.dim.symbols[i][col].x + self.dim.symbols[i][col].width) {
399
+ mlen = self.dim.symbols[i][col].x;
384
400
  }
385
401
  }
386
402
  // found nothing in the rows below
@@ -396,8 +412,8 @@ function WfIllustrator(wf_adaptor) { // View {{{
396
412
 
397
413
  mlen = 0;
398
414
  for (let i=rowf; i<=rowt; i++) {
399
- if (self.dim.props[i] && self.dim.props[i][col] && mlen < self.dim.props[i][col].x + self.dim.props[i][col].width) {
400
- mlen = self.dim.props[i][col].x + self.dim.props[i][col].width;
415
+ if (self.dim.symbols[i] && self.dim.symbols[i][col] && mlen < self.dim.symbols[i][col].x + self.dim.symbols[i][col].width) {
416
+ mlen = self.dim.symbols[i][col].x + self.dim.symbols[i][col].width;
401
417
  }
402
418
  }
403
419
  // console.log(deb,rowf,rowt,col,'--> ' + mlen,debug_dim());
@@ -405,19 +421,19 @@ function WfIllustrator(wf_adaptor) { // View {{{
405
421
  } //}}}
406
422
  var get_x_width = this.dim.get_x_width = function(maxcol) { //{{{
407
423
  let cwidth = 0;
408
- for (let i=0; i < self.dim.props.length; i++) {
424
+ for (let i=0; i < self.dim.symbols.length; i++) {
409
425
  let lwidth = 0;
410
426
  for (let j=0; j <= maxcol; j++) {
411
- if (typeof self.dim.props[i] !== 'undefined' && typeof self.dim.props[i][j] !== 'undefined') {
412
- lwidth += self.dim.props[i][j].width;
427
+ if (typeof self.dim.symbols[i] !== 'undefined' && typeof self.dim.symbols[i][j] !== 'undefined') {
428
+ lwidth += self.dim.symbols[i][j].width;
413
429
  } else {
414
430
  // go up the column and find the next valid value
415
431
  let x = i;
416
432
  let found = false;
417
433
  while (x > 0 && !found) {
418
434
  x -= 1;
419
- if (typeof self.dim.props[x] !== 'undefined' && typeof self.dim.props[x][j] !== 'undefined') {
420
- lwidth += self.dim.props[x][j].width;
435
+ if (typeof self.dim.symbols[x] !== 'undefined' && typeof self.dim.symbols[x][j] !== 'undefined') {
436
+ lwidth += self.dim.symbols[x][j].width;
421
437
  found = true;
422
438
  }
423
439
  }
@@ -535,11 +551,12 @@ function WfIllustrator(wf_adaptor) { // View {{{
535
551
  '</g>');
536
552
 
537
553
  // add the element-endpoint and other stuff to each symbol (from theme info function)
538
- _.each(info,function(val,key) {
539
- g.attr(key, val);
540
- });
554
+ for (const key in info) {
555
+ g.attr(key, info[key]);
556
+ }
541
557
 
542
558
  var sym = self.svg.defs[sname].clone();
559
+ var subtype = undefined;
543
560
 
544
561
  if (g.attr('element-endpoint')) {
545
562
  let tsym = self.get_symbol(g.attr('element-endpoint'));
@@ -572,6 +589,10 @@ function WfIllustrator(wf_adaptor) { // View {{{
572
589
  sym.prepend(ts);
573
590
  }
574
591
  }
592
+ let tprop = self.get_properties(g.attr('element-endpoint'));
593
+ if (tprop) {
594
+ subtype = tprop.subtype;
595
+ }
575
596
  }
576
597
 
577
598
  var tit = $X('<title xmlns="http://www.w3.org/2000/svg"></title>');
@@ -579,16 +600,21 @@ function WfIllustrator(wf_adaptor) { // View {{{
579
600
  sym.prepend(tit);
580
601
  let lab = $('.label',sym);
581
602
  if (lab.length > 0 && self.compact) {
603
+ let l_maxlen = 40; // max label size
604
+ let l_split = 18; // desired split position
605
+ let l_dev = 10; // if one split line is bigger than l_split + l_dev, split was not successfull and we have to display a more truncated string
606
+ let l_trunc = 18; // trucation size
607
+
582
608
  let sta = $('.part-start',sym);
583
609
  let mid = $('.part-middle',sym);
584
610
  let end = $('.part-end',sym);
585
611
  let xtr = $('.part-extra',sym);
586
612
  let nor = $('.part-normal',sym);
587
613
  if (title && title != '') {
588
- if (title.length < 22) {
614
+ if (title.length < l_split) {
589
615
  lab.text(title);
590
616
  } else {
591
- if (title.length > 60) { title = title.substr(0,60) + '\u2026'; }
617
+ if (title.length > l_maxlen) { title = title.substr(0,l_maxlen) + '\u2026'; }
592
618
  if (title.includes(' ')) {
593
619
  let len = title.length;
594
620
  let pos = -2;
@@ -605,11 +631,11 @@ function WfIllustrator(wf_adaptor) { // View {{{
605
631
  });
606
632
  let l1 = title.substr(0,it);
607
633
  let l2 = title.substr(it+1);
608
- if (l1.length > 30) {
609
- title = title.substr(0,30) + '\u2026';
634
+ if (l1.length > l_split+l_dev) {
635
+ title = title.substr(0,l_trunc) + '\u2026';
610
636
  lab.text(title);
611
637
  } else {
612
- if (l2.length > 30) { l2 = l2.substr(0,30) + '\u2026'; }
638
+ if (l2.length > l_split) { l2 = l2.substr(0,l_trunc) + '\u2026'; }
613
639
  let a1 = $X('<tspan x="0" dy="-8" xmlns="http://www.w3.org/2000/svg"></tspan>');
614
640
  a1.text(l1);
615
641
  let a2 = $X('<tspan x="0" dy="12" xmlns="http://www.w3.org/2000/svg"></tspan>');
@@ -618,7 +644,7 @@ function WfIllustrator(wf_adaptor) { // View {{{
618
644
  lab.append(a2);
619
645
  }
620
646
  } else {
621
- if (title.length > 30) { title = title.substr(0,30) + '\u2026'; }
647
+ if (title.length > l_split) { title = title.substr(0,l_trunc) + '\u2026'; }
622
648
  lab.text(title);
623
649
  }
624
650
  }
@@ -636,7 +662,7 @@ function WfIllustrator(wf_adaptor) { // View {{{
636
662
  if (xtr.length > 0) {
637
663
  xtr.attr('transform','translate(' + (pos.x + width - self.endclipshift - 4) + ',0)');
638
664
  }
639
- set_x_cond(row,col,dstart,pos.x + width - self.endclipshift - 4 + this.get_width(end) + 2 * self.width_shift_label);
665
+ set_x_cond(row,col,dstart,pos.x + width - self.endclipshift - 4 + this.get_width(end) + 2 * self.width_shift_label,sname,title,subtype);
640
666
  } else {
641
667
  let tdim = 0;
642
668
  if (self.rotated_labels && self.elements[sname].rotatelabels != false) {
@@ -645,14 +671,14 @@ function WfIllustrator(wf_adaptor) { // View {{{
645
671
  } else {
646
672
  tdim = self.width + width + self.width_shift_label;
647
673
  }
648
- set_x_cond(row,col,dstart,tdim);
674
+ set_x_cond(row,col,dstart,tdim,sname,title,subtype);
649
675
  }
650
676
  } else {
651
- set_x_cond(row,col,dstart,self.width);
677
+ set_x_cond(row,col,dstart,self.width,sname,title,subtype);
652
678
  }
653
679
  if (nor.length > 0) { nor.remove(); }
654
680
  } else {
655
- set_x_cond(row,col,dstart,self.width);
681
+ set_x_cond(row,col,dstart,self.width,sname,title,subtype);
656
682
  if (sta.length > 0) { sta.remove(); }
657
683
  if (mid.length > 0) { mid.remove(); }
658
684
  if (end.length > 0) { end.remove(); }
@@ -661,7 +687,7 @@ function WfIllustrator(wf_adaptor) { // View {{{
661
687
  $('.part-start',sym).remove();
662
688
  $('.part-middle',sym).remove();
663
689
  $('.part-end',sym).remove();
664
- set_x_cond(row,col,dstart,self.width);
690
+ set_x_cond(row,col,dstart,self.width,sname,title,subtype);
665
691
  }
666
692
 
667
693
  sym.attr('class','activities');
@@ -708,13 +734,14 @@ function WfIllustrator(wf_adaptor) { // View {{{
708
734
  group.prepend($X('<rect element-id="' + id + '" x="' + (bstart - 1.1 * self.width_shift - self.group_extend) + '" ' +
709
735
  'y="' + ((p1.row-1)*self.height+self.height_shift/2-self.group_extend) + '" ' +
710
736
  'width="' + (bend-bstart+2*self.group_extend) + '" ' +
711
- 'height="' + (((p2.row+1)-p1.row)*self.height+5*self.group_extend) + '" ' +
737
+ 'height="' + (((p2.row+1)-p1.row)*self.height+2*self.group_extend) + '" ' +
712
738
  'class="tile" rx="12" ry="12" xmlns="http://www.w3.org/2000/svg"/>'));
713
739
  } // }}}
714
740
  var draw_connection = this.draw.draw_connection = function(group, start, end, context_row, arrow) { // {{{
715
741
  let sr = Math.min(start.row,end.row);
716
742
  let cstart = get_x(sr,start.col,'conn from');
717
743
  let cend = get_x(sr,end.col,'conn to');
744
+ self.dim.connections.push({from: {row: start.row, col: start.col}, to: {row: end.row, col: end.col}});
718
745
 
719
746
  if(((end['row']-start['row']) == 0) && ((end['col']-start['col']) == 0)) return;
720
747
  var line;
@@ -749,8 +776,8 @@ function WfIllustrator(wf_adaptor) { // View {{{
749
776
  }
750
777
  } else if(end['row']-start['row'] < 0) { // upwards
751
778
  line.attr("d", "M " + String(cstart) + "," + String(start['row']*self.height-15) +" "+
752
- String(cstart) + "," + String((self.dim.props.length-1)*self.height+4) +" "+
753
- String(cend+15) + "," + String((self.dim.props.length-1)*self.height+4) +" "+
779
+ String(cstart) + "," + String((self.dim.symbols.length-1)*self.height+4) +" "+
780
+ String(cend+15) + "," + String((self.dim.symbols.length-1)*self.height+4) +" "+
754
781
  String(cend+15) + "," + String(end['row']*self.height+15)+" "+
755
782
  String(cend) + "," + String(end['row']*self.height-15)
756
783
  );
@@ -787,7 +814,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
787
814
  illustrator.draw.draw_stripe(i,graph.max.col);
788
815
  }
789
816
  }
790
- adaptor.draw_labels(graph.max,labels,{ 'height': illustrator.height, 'height_shift': illustrator.height_shift },illustrator.striped == true ? true : false);
817
+ adaptor.draw_labels(graph.max,labels,{ 'height': illustrator.height, 'stripe_height': illustrator.default_height, 'height_shift': illustrator.height_shift },illustrator.striped == true ? true : false);
791
818
  } //}}}
792
819
 
793
820
  // Generic Functions {{{
@@ -803,10 +830,12 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
803
830
  }
804
831
  id_counter = {};
805
832
  labels = [];
833
+ let start = performance.now();
806
834
  illustrator.clear();
807
835
  var graph = parse(description.children('description').get(0), {'row':0,'col':0,final:false,wide:false});
808
836
  illustrator.set_svg(graph);
809
837
  self.set_labels(graph);
838
+ illustrator.set_duration(start);
810
839
  } // }}}
811
840
  var gd = this.get_description = function() { // public {{{
812
841
  var serxml = $(description.get(0).documentElement).clone(true);
@@ -854,20 +883,24 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
854
883
  var refresh = this.refresh = function(doit) {
855
884
  id_counter = {};
856
885
  labels = [];
886
+ let start = performance.now();
857
887
  illustrator.clear();
858
888
  var graph = parse(description.children('description').get(0), {'row':0,'col':0});
859
889
  illustrator.set_svg(graph);
860
890
  self.set_labels(graph);
891
+ illustrator.set_duration(start);
861
892
  doit(self);
862
893
  }
863
894
  var update = this.update = function(svgid) { // {{{
864
895
  id_counter = {};
865
896
  if(update_illustrator){
897
+ let start = performance.now();
866
898
  labels = [];
867
899
  illustrator.clear();
868
900
  var graph = parse(description.children('description').get(0), {'row':0,'col':0});
869
901
  illustrator.set_svg(graph);
870
902
  self.set_labels(graph);
903
+ illustrator.set_duration(start);
871
904
  }
872
905
 
873
906
  var newn = $('*[new=true]',description);
@@ -966,7 +999,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
966
999
  labels.push({...{row: pos.row, element_id: 'start', tname: 'start', label: illustrator.elements[sname].label(root)},...illustrator.draw.get_y(pos.row)});
967
1000
  }
968
1001
  illustrator.global_style = (illustrator.elements[sname].style && root) ? illustrator.elements[sname].style(root) : {};
969
- illustrator.draw.draw_symbol(sname, 'description', 'START', pos.row, pos.row, pos.row, pos.col, block.svg, false, [], {})
1002
+ illustrator.draw.draw_symbol(sname, 'description', 'START', pos.row, pos.row, pos.row, pos.col, block.svg, false, {}, {})
970
1003
  } // }}}
971
1004
 
972
1005
  $(root).children().filter(function(){ return this.localName[0] != '_'; }).each(function() {
@@ -982,12 +1015,12 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
982
1015
  if(root_expansion == 'horizontal') {
983
1016
  // for noindent themes do not indent the first column
984
1017
  if (!pos.noindent || (pos.noindent && endnodes.length > 1)) {
985
- illustrator.dim.set_x(pos.row,pos.col,illustrator.width);
1018
+ illustrator.dim.set_x(pos.row,pos.col,illustrator.width,sname);
986
1019
  pos.col++;
987
1020
  }
988
1021
  if (!illustrator.compact) {
989
1022
  if (block.max.row) {
990
- illustrator.dim.set_x(pos.row,pos.col,illustrator.width);
1023
+ illustrator.dim.set_x(pos.row,pos.col,illustrator.width,sname);
991
1024
  pos.row = block.max.row + 1;
992
1025
  }
993
1026
  }
@@ -997,7 +1030,7 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
997
1030
  if(illustrator.elements[tname] != undefined && !illustrator.elements[tname].svg) pos.row--;
998
1031
  // TODO: Remaining problem is the order inside the svg. Thats why the connection is above the icon
999
1032
 
1000
- illustrator.dim.set_x(pos.row,pos.col,illustrator.width);
1033
+ illustrator.dim.set_x(pos.row,pos.col,illustrator.width,sname);
1001
1034
  // but fuuuuu, we calculate the gateways only later, so we couldnt even have them bigger for now
1002
1035
 
1003
1036
  // console.log('----> down', tname, parent_pos.row, pos.row, parent_pos.col, pos.col, illustrator.dim.debug());
@@ -1116,12 +1149,12 @@ function WfDescription(wf_adaptor, wf_illustrator) { // Model {{{
1116
1149
  }
1117
1150
  if (second) {
1118
1151
  // wide is only for the special case of variable parallel, only event_end has it, all others should reference the first row
1119
- illustrator.draw.draw_symbol(sname, $(context).attr('svg-id'), $(context).attr('svg-label'), illustrator.elements[sname].wide == true ? parent_pos.row+1 : parent_pos.row, block.max.row, pos.row, pos.col, second.svg, true, [], style).addClass(illustrator.elements[sname] ? illustrator.elements[sname].type : 'primitive unknown');
1152
+ illustrator.draw.draw_symbol(sname, $(context).attr('svg-id'), $(context).attr('svg-label'), illustrator.elements[sname].wide == true ? parent_pos.row+1 : parent_pos.row, block.max.row, pos.row, pos.col, second.svg, true, {}, style).addClass(illustrator.elements[sname] ? illustrator.elements[sname].type : 'primitive unknown');
1120
1153
  } else {
1121
1154
  $(context).attr('svg-type',tname);
1122
1155
  $(context).attr('svg-subtype',sname);
1123
1156
  if((illustrator.elements[sname] && illustrator.elements[sname].svg) || sname == 'unknown') {
1124
- let info = [];
1157
+ let info = {};
1125
1158
  if (illustrator.elements[sname].info && context) {
1126
1159
  info = illustrator.elements[sname].info(context);
1127
1160
  }
@@ -232,11 +232,9 @@
232
232
  </ui-area>
233
233
  <ui-resizehandle data-belongs-to-tab="details" data-label="drag to resize"></ui-resizehandle>
234
234
  <ui-area data-belongs-to-tab="details" id="detailcolumn">
235
- <div id="modelling">
236
- <div id='graphgrid'>
237
- <div class="resource-label" style="display: none"></div>
238
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:x="http://www.w3.org/1999/xlink" id='graphcanvas' width='1' height='1'></svg>
239
- </div>
235
+ <div id='graphgrid'>
236
+ <div class="resource-label" style="display: none"></div>
237
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:x="http://www.w3.org/1999/xlink" id='graphcanvas' width='1' height='1'></svg>
240
238
  </div>
241
239
  </ui-area>
242
240
  <ui-area data-belongs-to-tab="log" id="arealog" class="inactive"> <!--{{{-->