cpee 2.0.30 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/js/instance.js +3 -3
  3. data/cockpit/js/wfadaptor.js +2 -0
  4. data/cockpit/templates.legacy/Async.xml +12 -12
  5. data/cockpit/templates.legacy/BCO.xml +9 -11
  6. data/cockpit/templates.legacy/BCS.xml +9 -11
  7. data/cockpit/templates.legacy/Centurio.xml +7 -7
  8. data/cockpit/templates.legacy/Concurrent.xml +7 -7
  9. data/cockpit/templates.legacy/Coopis Testset.xml +7 -7
  10. data/cockpit/templates.legacy/Endpoints and Data Manipulation.xml +6 -7
  11. data/cockpit/templates.legacy/ICSOC Testset.xml +7 -7
  12. data/cockpit/templates.legacy/Infinity.xml +7 -7
  13. data/cockpit/templates.legacy/Lego Boxer.xml +13 -13
  14. data/cockpit/templates.legacy/Lego Conveyor.xml +13 -13
  15. data/cockpit/templates.legacy/Lego Crane.xml +16 -16
  16. data/cockpit/templates.legacy/Lego Ejector.xml +16 -16
  17. data/cockpit/templates.legacy/Lego Full.xml +12 -12
  18. data/cockpit/templates.legacy/Lego Liddy.xml +13 -13
  19. data/cockpit/templates.legacy/Lego Plate.xml +13 -13
  20. data/cockpit/templates.legacy/Lego Transporter.xml +14 -14
  21. data/cockpit/templates.legacy/Lego_Part_1.xml +12 -12
  22. data/cockpit/templates.legacy/LgLinear.xml +7 -10
  23. data/cockpit/templates.legacy/Linear.xml +11 -14
  24. data/cockpit/templates.legacy/Log.xml +11 -12
  25. data/cockpit/templates.legacy/Mangler 1.xml +7 -7
  26. data/cockpit/templates.legacy/Mangler 2.xml +7 -7
  27. data/cockpit/templates.legacy/Manuel Labels.xml +11 -11
  28. data/cockpit/templates.legacy/Promise.xml +30 -30
  29. data/cockpit/templates.legacy/SOPROMO Test Sonification.xml +7 -7
  30. data/cockpit/templates.legacy/Subprocess.xml +15 -15
  31. data/cockpit/templates.legacy/Syncing P34 1.xml +8 -11
  32. data/cockpit/templates.legacy/Syncing P34 2.xml +8 -11
  33. data/cockpit/templates.legacy/Syncing P34 3.xml +8 -11
  34. data/cockpit/templates.legacy/Syncing P34.xml +8 -11
  35. data/cockpit/templates.legacy/TEST - Bad Loop.xml +7 -7
  36. data/cockpit/templates.legacy/TEST - Wrong Positions.xml +7 -7
  37. data/cockpit/templates.legacy/Take_5.xml +14 -14
  38. data/cockpit/templates.legacy/Update.xml +11 -11
  39. data/cockpit/templates.legacy/Worklist Parallel.xml +17 -17
  40. data/cockpit/templates.legacy/Worklist Test CPEE.xml +14 -14
  41. data/cockpit/templates.legacy/Worklist Test.xml +14 -14
  42. data/cockpit/templates.legacy/Worklist Test2.xml +14 -14
  43. data/cockpit/templates/Coopis 2010.xml +8 -8
  44. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +8 -11
  45. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +8 -11
  46. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +8 -11
  47. data/cockpit/templates/Track Test Local.xml +2 -2
  48. data/cockpit/templates/Track Test.xml +1 -1
  49. data/cockpit/templates/UR-VUE 2020 Manual Adjust.xml +1 -1
  50. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml +1 -1
  51. data/cockpit/templates/UR-VUE 2020 Solution NN.xml +1 -1
  52. data/cockpit/templates/UR-VUE 2020 Solution View.xml +1 -1
  53. data/cockpit/templates/UR-VUE 2020.xml +1 -1
  54. data/cockpit/templates/Worklist.xml +14 -14
  55. data/cockpit/templates/instantiate.local/Take_Sub.xml +2 -2
  56. data/cockpit/templates/instantiate/Take_Perf.xml +1 -1
  57. data/cockpit/templates/instantiate/Take_Sub.xml +2 -2
  58. data/cockpit/templates/instantiate/Take_X.xml +2 -2
  59. data/cockpit/themes/compact/rngs/start.rng +83 -0
  60. data/cockpit/themes/compact/symbols/start.svg +1 -1
  61. data/cockpit/themes/control/rngs/start.rng +83 -0
  62. data/cockpit/themes/control/symbols/start.svg +1 -1
  63. data/cockpit/themes/default/rngs/start.rng +83 -0
  64. data/cockpit/themes/default/symbols/start.svg +1 -1
  65. data/cockpit/themes/default/theme.js +1 -1
  66. data/cockpit/themes/extended/rngs/start.rng +83 -0
  67. data/cockpit/themes/extended/symbols/start.svg +1 -1
  68. data/cockpit/themes/model/symbols/start.svg +1 -1
  69. data/cockpit/themes/packed/rngs/start.rng +83 -0
  70. data/cockpit/themes/packed/symbols/start.svg +1 -1
  71. data/cockpit/themes/preset/rngs/start.rng +83 -0
  72. data/cockpit/themes/preset/symbols/start.svg +1 -1
  73. data/cockpit/themes/preset/theme.js +1 -1
  74. data/cpee.gemspec +2 -2
  75. data/lib/cpee/attributes_helper.rb +14 -0
  76. data/lib/cpee/implementation.rb +10 -8
  77. data/lib/cpee/implementation_callbacks.rb +14 -0
  78. data/lib/cpee/implementation_notifications.rb +14 -0
  79. data/lib/cpee/implementation_properties.rb +128 -24
  80. data/lib/cpee/persistence.rb +0 -27
  81. data/lib/cpee/statemachine.rb +14 -0
  82. data/lib/cpee/value_helper.rb +14 -0
  83. data/lib/properties.xml +4 -4
  84. data/lib/properties/{handlerwrapper.rng → executionhandler.rng} +2 -2
  85. data/lib/properties/properties.rng +2 -2
  86. data/lib/properties/set-properties.rng +2 -2
  87. data/lib/properties/set-some-properties.rng +2 -2
  88. data/server/{resources → executionhandlers/ruby}/backend/README.md +0 -0
  89. data/server/{resources → executionhandlers/ruby}/backend/instance.template +2 -4
  90. data/server/{resources → executionhandlers/ruby}/backend/opts.yaml +2 -2
  91. data/server/executionhandlers/ruby/backend/run +37 -0
  92. data/server/{handlerwrappers/default.rb → executionhandlers/ruby/connection.rb} +3 -3
  93. data/server/executionhandlers/ruby/controller.rb +195 -0
  94. data/server/{resources/transformation_dslx.xsl → executionhandlers/ruby/dsl_to_dslx.xsl} +53 -8
  95. data/server/executionhandlers/ruby/execution.rb +81 -0
  96. data/server/resources/properties.empty +1 -1
  97. data/server/resources/properties.init +1 -1
  98. data/server/resources/topics.xml +2 -2
  99. data/server/routing/persist.rb +3 -3
  100. data/tools/cpee +9 -3
  101. data/tools/server/cpee +1 -1
  102. data/tools/server/resources/properties.init +1 -1
  103. metadata +19 -237
  104. data/cockpit/templates.legacy/convert_cpee2.rb +0 -15
  105. data/lib/cpee/controller.rb +0 -199
  106. data/lib/cpee/transform.rb +0 -95
  107. data/server/resources/backend/instance.rb +0 -23
  108. data/server/resources/backend/run +0 -33
  109. data/server/routing/end.pid +0 -1
  110. data/server/routing/forward-events.pid +0 -1
  111. data/server/routing/forward-votes.pid +0 -1
  112. data/server/routing/persist.pid +0 -1
  113. data/server/server.pid +0 -1
  114. data/tools/test/README +0 -4
  115. data/tools/test/config.json +0 -3
  116. data/tools/test/contrib/graph_example.svg +0 -1166
  117. data/tools/test/contrib/legend.svg +0 -817
  118. data/tools/test/contrib/symbols.svg +0 -224
  119. data/tools/test/contrib/transformation1.xsl +0 -264
  120. data/tools/test/contrib/transformation2.xsl +0 -10
  121. data/tools/test/contrib/tree_example.svg +0 -788
  122. data/tools/test/css/model.css +0 -24
  123. data/tools/test/css/track.css +0 -60
  124. data/tools/test/css/ui.css +0 -214
  125. data/tools/test/css/wfadaptor.css +0 -422
  126. data/tools/test/edit.html +0 -258
  127. data/tools/test/graph.html +0 -69
  128. data/tools/test/index.html +0 -258
  129. data/tools/test/js/details.js +0 -109
  130. data/tools/test/js/instance.js +0 -1344
  131. data/tools/test/js/model.js +0 -41
  132. data/tools/test/js/parameters.js +0 -82
  133. data/tools/test/js/track.js +0 -18
  134. data/tools/test/js/ui.js +0 -104
  135. data/tools/test/js/wfadaptor.js +0 -763
  136. data/tools/test/js_libs.zip +0 -0
  137. data/tools/test/js_libs/Makefile +0 -2
  138. data/tools/test/js_libs/ansi_up.js +0 -333
  139. data/tools/test/js_libs/console.js +0 -80
  140. data/tools/test/js_libs/custommenu.css +0 -84
  141. data/tools/test/js_libs/custommenu.js +0 -104
  142. data/tools/test/js_libs/experiments1/relaxngui.css +0 -185
  143. data/tools/test/js_libs/experiments1/relaxngui.js +0 -488
  144. data/tools/test/js_libs/experiments1/rngtest9.html +0 -60
  145. data/tools/test/js_libs/experiments1/rngtest9.rng +0 -35
  146. data/tools/test/js_libs/experiments1/rngtest9.xml +0 -8
  147. data/tools/test/js_libs/jquery-2.2.4.min.js +0 -4
  148. data/tools/test/js_libs/jquery-3.2.1.min.js +0 -4
  149. data/tools/test/js_libs/jquery-3.3.1.min.js +0 -2
  150. data/tools/test/js_libs/jquery.browser.js +0 -40
  151. data/tools/test/js_libs/jquery.caret.min.js +0 -10
  152. data/tools/test/js_libs/jquery.cookie.js +0 -117
  153. data/tools/test/js_libs/jquery.min.js +0 -1
  154. data/tools/test/js_libs/jquery.svg.min.js +0 -6
  155. data/tools/test/js_libs/jquery.svgdom.min.js +0 -6
  156. data/tools/test/js_libs/markdown.min.js +0 -1
  157. data/tools/test/js_libs/parsequery.js +0 -21
  158. data/tools/test/js_libs/printf.js +0 -368
  159. data/tools/test/js_libs/relaxngui.css +0 -213
  160. data/tools/test/js_libs/relaxngui.js +0 -543
  161. data/tools/test/js_libs/strftime.min.js +0 -1
  162. data/tools/test/js_libs/tests/dataelements.html +0 -59
  163. data/tools/test/js_libs/tests/dataelements.rng +0 -8
  164. data/tools/test/js_libs/tests/dataelements.xml +0 -3
  165. data/tools/test/js_libs/tests/relaxngui.css +0 -203
  166. data/tools/test/js_libs/tests/relaxngui.js +0 -502
  167. data/tools/test/js_libs/tests/rngtest1.html +0 -66
  168. data/tools/test/js_libs/tests/rngtest1.rng +0 -147
  169. data/tools/test/js_libs/tests/rngtest1.xml +0 -13
  170. data/tools/test/js_libs/tests/rngtest2.html +0 -60
  171. data/tools/test/js_libs/tests/rngtest2.rng +0 -6
  172. data/tools/test/js_libs/tests/rngtest2.xml +0 -3
  173. data/tools/test/js_libs/tests/rngtest3.html +0 -60
  174. data/tools/test/js_libs/tests/rngtest3.rng +0 -23
  175. data/tools/test/js_libs/tests/rngtest3.xml +0 -9
  176. data/tools/test/js_libs/tests/rngtest4.html +0 -60
  177. data/tools/test/js_libs/tests/rngtest4.rng +0 -19
  178. data/tools/test/js_libs/tests/rngtest4.xml +0 -12
  179. data/tools/test/js_libs/tests/rngtest5.html +0 -60
  180. data/tools/test/js_libs/tests/rngtest5.rng +0 -75
  181. data/tools/test/js_libs/tests/rngtest5.xml +0 -40
  182. data/tools/test/js_libs/tests/rngtest6.html +0 -60
  183. data/tools/test/js_libs/tests/rngtest6.rng +0 -24
  184. data/tools/test/js_libs/tests/rngtest6.xml +0 -6
  185. data/tools/test/js_libs/tests/rngtest8.html +0 -60
  186. data/tools/test/js_libs/tests/rngtest8.rng +0 -13
  187. data/tools/test/js_libs/tests/rngtest8.xml +0 -2
  188. data/tools/test/js_libs/tests/rngtest9.html +0 -60
  189. data/tools/test/js_libs/tests/rngtest9.rng +0 -31
  190. data/tools/test/js_libs/tests/rngtest9.xml +0 -8
  191. data/tools/test/js_libs/ui.css +0 -333
  192. data/tools/test/js_libs/ui.html +0 -168
  193. data/tools/test/js_libs/ui.js +0 -177
  194. data/tools/test/js_libs/underscore.min.js +0 -27
  195. data/tools/test/js_libs/util.js +0 -81
  196. data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +0 -358
  197. data/tools/test/js_libs/vkbeautify.js +0 -1
  198. data/tools/test/js_libs/webcomponents.min.js +0 -196
  199. data/tools/test/model.html +0 -192
  200. data/tools/test/rngs/attributes.rng +0 -8
  201. data/tools/test/rngs/dataelements.rng +0 -8
  202. data/tools/test/rngs/endpoints.rng +0 -8
  203. data/tools/test/templates.legacy/Async.xml +0 -46
  204. data/tools/test/templates.legacy/BCO.xml +0 -70
  205. data/tools/test/templates.legacy/BCS.xml +0 -70
  206. data/tools/test/templates.legacy/Centurio.xml +0 -75
  207. data/tools/test/templates.legacy/Concurrent.xml +0 -40
  208. data/tools/test/templates.legacy/Coopis Testset.xml +0 -76
  209. data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +0 -30
  210. data/tools/test/templates.legacy/ICSOC Testset.xml +0 -95
  211. data/tools/test/templates.legacy/Infinity.xml +0 -28
  212. data/tools/test/templates.legacy/Lego Boxer.xml +0 -31
  213. data/tools/test/templates.legacy/Lego Conveyor.xml +0 -31
  214. data/tools/test/templates.legacy/Lego Crane.xml +0 -87
  215. data/tools/test/templates.legacy/Lego Ejector.xml +0 -55
  216. data/tools/test/templates.legacy/Lego Full.xml +0 -142
  217. data/tools/test/templates.legacy/Lego Liddy.xml +0 -40
  218. data/tools/test/templates.legacy/Lego Plate.xml +0 -31
  219. data/tools/test/templates.legacy/Lego Transporter.xml +0 -43
  220. data/tools/test/templates.legacy/Lego_Part_1.xml +0 -85
  221. data/tools/test/templates.legacy/LgLinear.xml +0 -65
  222. data/tools/test/templates.legacy/Linear.xml +0 -77
  223. data/tools/test/templates.legacy/Log.xml +0 -117
  224. data/tools/test/templates.legacy/Mangler 1.xml +0 -87
  225. data/tools/test/templates.legacy/Mangler 2.xml +0 -103
  226. data/tools/test/templates.legacy/Manuel Labels.xml +0 -55
  227. data/tools/test/templates.legacy/Promise.xml +0 -275
  228. data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +0 -83
  229. data/tools/test/templates.legacy/Subprocess.xml +0 -56
  230. data/tools/test/templates.legacy/Syncing P34 1.xml +0 -77
  231. data/tools/test/templates.legacy/Syncing P34 2.xml +0 -77
  232. data/tools/test/templates.legacy/Syncing P34 3.xml +0 -77
  233. data/tools/test/templates.legacy/Syncing P34.xml +0 -77
  234. data/tools/test/templates.legacy/TEST - Bad Loop.xml +0 -173
  235. data/tools/test/templates.legacy/TEST - Wrong Positions.xml +0 -174
  236. data/tools/test/templates.legacy/Take_5.xml +0 -48
  237. data/tools/test/templates.legacy/Update.xml +0 -32
  238. data/tools/test/templates.legacy/Worklist Parallel.xml +0 -104
  239. data/tools/test/templates.legacy/Worklist Test CPEE.xml +0 -40
  240. data/tools/test/templates.legacy/Worklist Test.xml +0 -42
  241. data/tools/test/templates.legacy/Worklist Test2.xml +0 -43
  242. data/tools/test/templates.legacy/convert_cpee2.rb +0 -15
  243. data/tools/test/templates.legacy/convert_preset.rb +0 -32
  244. data/tools/test/templates.legacy/testsets.xml +0 -37
  245. data/tools/test/templates.legacy/transformations.xml +0 -4
  246. data/tools/test/templates/Coopis 2010.xml +0 -76
  247. data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +0 -77
  248. data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +0 -77
  249. data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +0 -77
  250. data/tools/test/templates/Track Test Local.xml +0 -82
  251. data/tools/test/templates/Track Test.xml +0 -82
  252. data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +0 -182
  253. data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +0 -203
  254. data/tools/test/templates/UR-VUE 2020 Solution NN.xml +0 -197
  255. data/tools/test/templates/UR-VUE 2020 Solution View.xml +0 -151
  256. data/tools/test/templates/UR-VUE 2020.xml +0 -26
  257. data/tools/test/templates/Worklist.xml +0 -42
  258. data/tools/test/templates/instantiate.local/Take_Sub.xml +0 -59
  259. data/tools/test/templates/instantiate/Take_Perf.xml +0 -46
  260. data/tools/test/templates/instantiate/Take_Sub.xml +0 -58
  261. data/tools/test/templates/instantiate/Take_X.xml +0 -48
  262. data/tools/test/themes/compact/theme.js +0 -1285
  263. data/tools/test/themes/diana/theme.js +0 -1650
  264. data/tools/test/themes/extended/theme.js +0 -1325
  265. data/tools/test/themes/model/rngs/alternative.rng +0 -1
  266. data/tools/test/themes/model/rngs/call.rng +0 -67
  267. data/tools/test/themes/model/rngs/callmanipulate.rng +0 -72
  268. data/tools/test/themes/model/rngs/choose.rng +0 -1
  269. data/tools/test/themes/model/rngs/critical.rng +0 -1
  270. data/tools/test/themes/model/rngs/escape.rng +0 -1
  271. data/tools/test/themes/model/rngs/group.rng +0 -1
  272. data/tools/test/themes/model/rngs/loop.rng +0 -1
  273. data/tools/test/themes/model/rngs/manipulate.rng +0 -1
  274. data/tools/test/themes/model/rngs/otherwise.rng +0 -1
  275. data/tools/test/themes/model/rngs/parallel.rng +0 -1
  276. data/tools/test/themes/model/rngs/parallel_branch.rng +0 -1
  277. data/tools/test/themes/model/rngs/scripts.rng +0 -7
  278. data/tools/test/themes/model/rngs/stop.rng +0 -1
  279. data/tools/test/themes/model/rngs/terminate.rng +0 -1
  280. data/tools/test/themes/model/theme.js +0 -1268
  281. data/tools/test/themes/packed/theme.js +0 -1286
  282. data/tools/test/themes/preset/rngs/alternative.rng +0 -25
  283. data/tools/test/themes/preset/rngs/call.rng +0 -122
  284. data/tools/test/themes/preset/rngs/callmanipulate.rng +0 -145
  285. data/tools/test/themes/preset/rngs/choose.rng +0 -14
  286. data/tools/test/themes/preset/rngs/closed_loop.rng +0 -62
  287. data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +0 -5
  288. data/tools/test/themes/preset/rngs/closed_loop_control.rng +0 -31
  289. data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +0 -12
  290. data/tools/test/themes/preset/rngs/critical.rng +0 -5
  291. data/tools/test/themes/preset/rngs/escape.rng +0 -1
  292. data/tools/test/themes/preset/rngs/group.rng +0 -3
  293. data/tools/test/themes/preset/rngs/loop.rng +0 -22
  294. data/tools/test/themes/preset/rngs/manipulate.rng +0 -9
  295. data/tools/test/themes/preset/rngs/otherwise.rng +0 -22
  296. data/tools/test/themes/preset/rngs/parallel.rng +0 -21
  297. data/tools/test/themes/preset/rngs/parallel_branch.rng +0 -8
  298. data/tools/test/themes/preset/rngs/scripts.rng +0 -23
  299. data/tools/test/themes/preset/rngs/stop.rng +0 -5
  300. data/tools/test/themes/preset/rngs/terminate.rng +0 -1
  301. data/tools/test/themes/preset/symbols/alternative.svg +0 -5
  302. data/tools/test/themes/preset/symbols/arrow.svg +0 -3
  303. data/tools/test/themes/preset/symbols/call.svg +0 -6
  304. data/tools/test/themes/preset/symbols/callmanipulate.svg +0 -8
  305. data/tools/test/themes/preset/symbols/choose.svg +0 -5
  306. data/tools/test/themes/preset/symbols/choose_exclusive.svg +0 -5
  307. data/tools/test/themes/preset/symbols/choose_inclusive.svg +0 -4
  308. data/tools/test/themes/preset/symbols/closed_loop.svg +0 -5
  309. data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +0 -5
  310. data/tools/test/themes/preset/symbols/closed_loop_control.svg +0 -5
  311. data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +0 -6
  312. data/tools/test/themes/preset/symbols/complex.svg +0 -8
  313. data/tools/test/themes/preset/symbols/critical.svg +0 -4
  314. data/tools/test/themes/preset/symbols/end.svg +0 -3
  315. data/tools/test/themes/preset/symbols/escape.svg +0 -5
  316. data/tools/test/themes/preset/symbols/event_end.svg +0 -3
  317. data/tools/test/themes/preset/symbols/loop.svg +0 -5
  318. data/tools/test/themes/preset/symbols/manipulate.svg +0 -4
  319. data/tools/test/themes/preset/symbols/otherwise.svg +0 -5
  320. data/tools/test/themes/preset/symbols/parallel.svg +0 -5
  321. data/tools/test/themes/preset/symbols/parallel_branch.svg +0 -5
  322. data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +0 -4
  323. data/tools/test/themes/preset/symbols/parallel_branch_event.svg +0 -14
  324. data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +0 -5
  325. data/tools/test/themes/preset/symbols/scripts.svg +0 -4
  326. data/tools/test/themes/preset/symbols/start.svg +0 -3
  327. data/tools/test/themes/preset/symbols/stop.svg +0 -5
  328. data/tools/test/themes/preset/symbols/terminate.svg +0 -4
  329. data/tools/test/themes/preset/theme.js +0 -1287
  330. data/tools/test/track.html +0 -142
@@ -1,1650 +0,0 @@
1
- function WFAdaptorManifestation(adaptor) {
2
- var self = this;
3
-
4
- this.adaptor = adaptor;
5
- this.resources = {};
6
- this.elements = {};
7
- this.events = {};
8
- this.compact = false;
9
- this.striped = true;
10
- this.endpoints = {};
11
-
12
- //{{{ transform the details data to description parts based on rng
13
- this.source = function(base,opts) {
14
- if (base[0].namespaceURI == "http://relaxng.org/ns/structure/1.0") {
15
- $('#relaxngworker').empty();
16
- var rngw = new RelaxNGui(base,$('#relaxngworker'),self.adaptor.description.context_eval);
17
- var nnew = $(rngw.save().documentElement);
18
- return(nnew);
19
- } else {
20
- if (opts && opts == 'clone') {
21
- base = base.clone();
22
- if (base.attr('id')) {
23
- base.attr('id',self.adaptor.description.get_free_id());
24
- }
25
- base.find('*[id]').each(function(k,v){
26
- $(v).attr('id',self.adaptor.description.get_free_id(base));
27
- });
28
- }
29
- return base;
30
- }
31
- }; //}}}
32
- //{{{ Return the svgid for the selected task
33
- this.selected = function(){
34
- var svgid = 'unknown';
35
- _.each(self.adaptor.illustrator.get_elements(),function(value,key) {
36
- if ($(value).hasClass('selected')) {
37
- svgid = $(value).attr('element-id');
38
- }
39
- });
40
- return svgid;
41
- }; //}}}
42
- //{{{ Return the svgids for all marked tasks
43
- this.marked = function(){
44
- var svgid = [];
45
- _.each(self.adaptor.illustrator.get_elements(),function(value,key) {
46
- if ($(value).hasClass('marked')) {
47
- svgid.push($(value).attr('element-id'));
48
- }
49
- });
50
- return svgid;
51
- }; //}}}
52
- //{{{ Render the details from rng (right hand side of graph tab)
53
- this.update_details = function(svgid){
54
- var tab = $('#dat_details');
55
- var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
56
- tab.empty();
57
- if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
58
- save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
59
- var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
60
- if (save['endpoints_cache'][$(node).attr('endpoint')] && save['endpoints_cache'][$(node).attr('endpoint')].schema) {
61
- var schema = save['endpoints_cache'][$(node).attr('endpoint')].schema.documentElement;
62
- $(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
63
- }
64
- if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
65
- $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
66
- }
67
- save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
68
- var nn = $X($(node).serializeXML());
69
- nn.removeAttr('svg-id');
70
- nn.removeAttr('svg-type');
71
- nn.removeAttr('svg-subtype');
72
- nn.removeAttr('svg-label');
73
- save['details'].content(nn);
74
- format_visual_forms();
75
- }
76
- }; //}}}
77
-
78
- function copyOrMove(menu,group,xml_node,mode) { //{{{
79
- var markymark = _.uniq(self.marked());
80
- var check1 = [];
81
- var check2 = [];
82
- $(markymark).each(function(key,svgid){
83
- var node = self.adaptor.description.get_node_by_svg_id(svgid);
84
- check1.push($(node).attr('svg-type'));
85
- });
86
- $(group).each(function(key,value){
87
- check2.push(value.type);
88
- });
89
-
90
- if (markymark.length > 0 && _.uniq(check1).length == _.intersection(check1,check2).length) {
91
- var nodes = [];
92
- $(markymark).each(function(key,svgid){
93
- var node = self.adaptor.description.get_node_by_svg_id(svgid);
94
- nodes.unshift(node);
95
- });
96
-
97
- var iconm = self.resources['arrow'].clone();
98
- var iconc = self.resources['arrow'].clone();
99
- iconm.children('.rfill').addClass('menu');
100
- menu.push(
101
- {
102
- 'label': '<em>Move Marked Elements</em>',
103
- 'function_call': mode,
104
- 'menu_icon': iconm,
105
- 'type': undefined,
106
- 'params': [nodes, xml_node]
107
- },
108
- {
109
- 'label': '<em>Copy Marked Elements</em>',
110
- 'function_call': mode,
111
- 'menu_icon': iconc,
112
- 'type': undefined,
113
- 'params': [nodes, xml_node, 'clone']
114
- }
115
- );
116
- }
117
- } //}}}
118
-
119
- // Events
120
- this.events.mousedown = function(svgid, e, child, sibling) { // {{{
121
- if(e.button == 0) { // left-click
122
- } else if(e.button == 1) { // middle-click
123
- } else if(e.button == 2) { // right-click
124
- if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
125
-
126
- var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
127
- var group = null;
128
- var menu = {};
129
-
130
- if (child) {
131
- group = self.elements[xml_node.get(0).tagName].permissible_children(xml_node,'into');
132
- if(group.length > 0) {
133
- menu['Insert into'] = group;
134
- copyOrMove(menu['Insert into'],group,xml_node,self.adaptor.description.insert_first_into);
135
- }
136
- if (self.elements[xml_node.get(0).tagName].permissible_children_expert) {
137
- group = self.elements[xml_node.get(0).tagName].permissible_children_expert(xml_node,'into');
138
- if(group.length > 0) {
139
- menu['Insert into (Experts Only!)'] = group;
140
- copyOrMove(menu['Insert into (Experts Only!)'],group,xml_node,self.adaptor.description.insert_first_into);
141
- }
142
- }
143
- }
144
- if (sibling) {
145
- group = self.elements[xml_node.parent().get(0).tagName].permissible_children(xml_node,'after');
146
- if(group.length > 0) {
147
- menu['Insert after'] = group;
148
- copyOrMove(menu['Insert after'],group,xml_node,self.adaptor.description.insert_after);
149
- }
150
- if (self.elements[xml_node.parent().get(0).tagName].permissible_children_expert) {
151
- group = self.elements[xml_node.parent().get(0).tagName].permissible_children_expert(xml_node,'after');
152
- if(group.length > 0) {
153
- menu['Insert after (Experts Only!)'] = group;
154
- copyOrMove(menu['Insert after (Experts Only!)'],group,xml_node,self.adaptor.description.insert_after);
155
- }
156
- }
157
- }
158
-
159
- if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
160
- var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
161
- icon.children('.rfill').addClass('menu');
162
- menu['Delete'] = [{
163
- 'label': 'Remove Element',
164
- 'function_call': function(selector,target,selected){ self.adaptor.description.remove(selector,target); self.adaptor.illustrator.get_label_by_svg_id(selected).addClass('selected'); },
165
- 'menu_icon': icon,
166
- 'type': undefined,
167
- 'params': [null, xml_node, self.selected()]
168
- }];
169
- }
170
- if($('> code', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
171
- var icon = self.elements.callmanipulate.illustrator.svg.clone();
172
- icon.children('.rfill:last').addClass('menu');
173
- menu['Delete'].push({
174
- 'label': 'Remove Scripts',
175
- 'function_call': self.adaptor.description.remove,
176
- 'menu_icon': icon,
177
- 'type': undefined,
178
- 'params': ['> code', xml_node]
179
- });
180
- }
181
- if (xml_node.get(0).tagName == "call" || xml_node.get(0).tagName == "manipulate" || xml_node.get(0).tagName == "stop") {
182
- var icon = self.elements.call.illustrator.svg.clone();
183
- icon.children('g.replace').addClass('active');
184
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
185
- if (vtarget.length > 0) {
186
- if (vtarget.parents('g.activities.passive, g.activities.active').length > 0) {
187
- menu['Position'] = [{
188
- 'label': 'No Execution from here',
189
- 'function_call': del_ui_pos,
190
- 'menu_icon': icon,
191
- 'type': undefined,
192
- 'params': xml_node
193
- }];
194
- } else {
195
- menu['Position'] = [{
196
- 'label': 'Execute from here',
197
- 'function_call': add_ui_pos,
198
- 'menu_icon': icon,
199
- 'type': undefined,
200
- 'params': xml_node
201
- }];
202
- }
203
- }
204
- }
205
- new CustomMenu(e).contextmenu(menu);
206
- }
207
- return false;
208
- } // }}}
209
- this.events.suppress = function(svgid, e, child, sibling) { // {{{
210
- return false;
211
- } // }}}
212
- this.events.click = function(svgid, e) { // {{{
213
- if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
214
- return;
215
- }
216
-
217
- self.adaptor.illustrator.get_elements().removeClass('selected');
218
- self.adaptor.illustrator.get_labels().removeClass('selected');
219
-
220
- if (e && e.ctrlKey) {
221
- if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
222
- var tab = $('#dat_details');
223
- tab.empty();
224
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
225
- if (vtarget.length > 0) {
226
- vtarget.parents('g.element[element-id]').toggleClass('marked');
227
- }
228
- } else {
229
- self.adaptor.illustrator.get_elements().removeClass('marked');
230
-
231
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
232
- if (vtarget.length > 0) {
233
- vtarget.parents('g.element[element-id]').addClass('selected');
234
- }
235
- self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
236
-
237
- self.update_details(svgid);
238
- }
239
- } // }}}
240
- this.events.dblclick = function(svgid, e) { // {{{
241
- } // }}}
242
- this.events.mouseover = function(svgid, e) { // {{{
243
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
244
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
245
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
246
- return false;
247
- } // }}}
248
- this.events.mouseout = function(svgid, e) { // {{{
249
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
250
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
251
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
252
- return false;
253
- } // }}}
254
- this.events.dragstart = function (svgid, e) { //{{{
255
- } //}}}
256
-
257
- // other resources
258
- this.resources.arrow = self.adaptor.theme_dir + 'symbols/arrow.svg';
259
-
260
- // Primitive Elements
261
- this.elements.call = { /*{{{*/
262
- 'type': 'primitive',
263
- 'illustrator': {//{{{
264
- 'endnodes': 'this',
265
- 'label': function(node){
266
- var rep = $('body').attr('current-resources');
267
- var ep = self.endpoints[$(node).attr('endpoint')];
268
- var wait = $('_timing_wait',$(node).children('annotations')).text();
269
- var threshold = $('_timing_threshold',$(node).children('annotations')).text();
270
- var adur = $('_timing_avg',$(node).children('annotations')).text();
271
- var lab = $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'');
272
- var ret = [ { column: 'ID', value: $(node).attr('id') } ];
273
- if (lab != '') {
274
- ret.unshift( { column: 'Label', value: lab } );
275
- }
276
- if (wait != '') {
277
- ret.push({ column: 'Wait', value: 'ω = ' + wait });
278
- }
279
- if (threshold != '') {
280
- ret.push({ column: 'Threshold', value: 'κ = ' + threshold });
281
- }
282
- if (adur != '') {
283
- ret.push({ column: 'Duration', value: '~T = ' + adur + 'm' });
284
- }
285
- return ret;
286
- },
287
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
288
- 'resolve_symbol': function(node) {
289
- if($('code', node).length > 0) {
290
- return 'callmanipulate';
291
- } else {
292
- return 'call';
293
- }
294
- },
295
- 'svg': self.adaptor.theme_dir + 'symbols/call.svg'
296
- },//}}}
297
- 'description': self.adaptor.theme_dir + 'rngs/call.rng',
298
- 'permissible_children': function(node,mode) { //{{{
299
- if(node.children('code').length < 1)
300
- return [
301
- {'label': 'Scripts',
302
- 'function_call': self.adaptor.description.insert_last_into,
303
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
304
- 'type': undefined,
305
- 'params': [self.adaptor.description.elements.scripts, node]}
306
- ];
307
- return [];
308
- }, //}}}
309
- 'adaptor': {//{{{
310
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
311
- 'click': self.events.click,
312
- 'dragstart': self.events.dragstart,
313
- 'mouseover': self.events.mouseover,
314
- 'mouseout': self.events.mouseout
315
- }//}}}
316
- }; /*}}}*/
317
- this.elements.manipulate = { /*{{{*/
318
- 'type': 'primitive',
319
- 'illustrator': {//{{{
320
- 'endnodes': 'this',
321
- 'label': function(node){
322
- var lab = $(node).attr('label');
323
- if (lab) {
324
- return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') }, { column: 'ID', value: $(node).attr('id') } ];
325
- } else {
326
- return [ { column: 'ID', value: $(node).attr('id') } ];
327
- }
328
- },
329
- 'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
330
- },//}}}
331
- 'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
332
- 'permissible_children': function(node,mode) { //{{{
333
- return [];
334
- }, //}}}
335
- 'adaptor': {//{{{
336
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
337
- 'click': self.events.click,
338
- 'mouseover': self.events.mouseover,
339
- 'mouseout': self.events.mouseout
340
- }//}}}
341
- }; /*}}}*/
342
- this.elements.escape = { /*{{{*/
343
- 'type': 'primitive',
344
- 'illustrator': {//{{{
345
- 'endnodes': 'this',
346
- 'svg': self.adaptor.theme_dir + 'symbols/escape.svg'
347
- },//}}}
348
- 'description': self.adaptor.theme_dir + 'rngs/escape.rng',
349
- 'permissible_children': function(node,mode) { //{{{
350
- return [];
351
- }, //}}}
352
- 'adaptor': {//{{{
353
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
354
- 'click': self.events.click,
355
- 'mouseover': self.events.mouseover,
356
- 'mouseout': self.events.mouseout
357
- }//}}}
358
- }; /*}}}*/
359
- this.elements.stop = { /*{{{*/
360
- 'type': 'primitive',
361
- 'illustrator': {//{{{
362
- 'endnodes': 'this',
363
- 'label': function(node){
364
- return [ { column: 'ID', value: $(node).attr('id') } ];
365
- },
366
- 'svg': self.adaptor.theme_dir + 'symbols/stop.svg'
367
- },//}}}
368
- 'description': self.adaptor.theme_dir + 'rngs/stop.rng',
369
- 'permissible_children': function(node,mode) { //{{{
370
- return [];
371
- }, //}}}
372
- 'adaptor': {//{{{
373
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
374
- 'click': self.events.click,
375
- 'mouseover': self.events.mouseover,
376
- 'mouseout': self.events.mouseout
377
- }//}}}
378
- }; /*}}}*/
379
- this.elements.terminate = { /*{{{*/
380
- 'type': 'primitive',
381
- 'illustrator': {//{{{
382
- 'endnodes': 'this',
383
- 'final': true,
384
- 'svg': self.adaptor.theme_dir + 'symbols/terminate.svg'
385
- },//}}}
386
- 'description': self.adaptor.theme_dir + 'rngs/terminate.rng',
387
- 'permissible_children': function(node,mode) { //{{{
388
- return [];
389
- }, //}}}
390
- 'adaptor': {//{{{
391
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
392
- 'mouseover': self.events.mouseover,
393
- 'mouseout': self.events.mouseout
394
- }//}}}
395
- }; /*}}}*/
396
- this.elements.end = { /*{{{*/
397
- 'type': 'primitive',
398
- 'illustrator': {//{{{
399
- 'endnodes': 'this',
400
- 'svg': self.adaptor.theme_dir + 'symbols/end.svg'
401
- }, //}}}
402
- 'adaptor': {//{{{
403
- 'mousedown': function (node,e) {
404
- self.events.suppress();
405
- }
406
- }//}}}
407
- }; /*}}}*/
408
- this.elements.event_end = { /*{{{*/
409
- 'type': 'primitive',
410
- 'illustrator': {//{{{
411
- 'endnodes': 'this',
412
- 'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
413
- }, //}}}
414
- 'adaptor': {//{{{
415
- 'mousedown': function (node,e) {
416
- self.events.suppress();
417
- },
418
- 'click': self.events.click,
419
- 'dblclick': self.events.dblclick,
420
- 'mouseover': self.events.mouseover,
421
- 'mouseout': self.events.mouseout
422
- }//}}}
423
- }; /*}}}*/
424
- this.elements.choose_finish = { /*{{{*/
425
- 'type': 'primitive',
426
- 'illustrator': {//{{{
427
- 'endnodes': 'this',
428
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg',
429
- 'resolve_symbol': function(node) {
430
- if($(node).attr('mode') == 'exclusive') {
431
- return 'choose_exclusive_finish';
432
- } else {
433
- return 'choose_inclusive_finish';
434
- }
435
- },
436
- }, //}}}
437
- 'adaptor': {//{{{
438
- 'mousedown': function (node,e) {
439
- self.events.mousedown(node,e,true,true);
440
- },
441
- 'click': self.events.click,
442
- 'dblclick': self.events.dblclick,
443
- 'mouseover': self.events.mouseover,
444
- 'mouseout': self.events.mouseout
445
- }//}}}
446
- }; /*}}}*/
447
- this.elements.loop_finish = { /*{{{*/
448
- 'type': 'primitive',
449
- 'illustrator': {//{{{
450
- 'endnodes': 'this',
451
- 'closeblock': true,
452
- 'label': function(node){
453
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
454
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
455
- if (avg != '') {
456
- ret.push({ column: 'Average', value: avg + 'x' });
457
- }
458
- return ret;
459
- },
460
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg',
461
- }, //}}}
462
- 'adaptor': {//{{{
463
- 'mousedown': function (node,e) {
464
- self.events.mousedown(node,e,true,true);
465
- },
466
- 'click': self.events.click,
467
- 'dblclick': self.events.dblclick,
468
- 'mouseover': self.events.mouseover,
469
- 'mouseout': self.events.mouseout
470
- }//}}}
471
- }; /*}}}*/
472
- this.elements.parallel_finish = { /*{{{*/
473
- 'type': 'primitive',
474
- 'illustrator': {//{{{
475
- 'endnodes': 'this',
476
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
477
- 'resolve_symbol': function(node) {
478
- if($(node).attr('wait') == '-1') {
479
- return 'parallel_simple';
480
- } else {
481
- return 'parallel_complex';
482
- }
483
- },
484
- }, //}}}
485
- 'adaptor': {//{{{
486
- 'mousedown': function (node,e) {
487
- self.events.mousedown(node,e,true,true);
488
- },
489
- 'click': self.events.click,
490
- 'dblclick': self.events.dblclick,
491
- 'mouseover': self.events.mouseover,
492
- 'mouseout': self.events.mouseout
493
- }//}}}
494
- }; /*}}}*/
495
-
496
- // Complex Elements
497
- this.elements.choose = { /*{{{*/
498
- 'type': 'complex',
499
- 'illustrator': {//{{{
500
- 'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
501
- 'endnodes': 'aggregate',
502
- 'closeblock': false,
503
- 'closing_symbol': 'choose_finish',
504
- 'expansion': function(node) {
505
- return 'horizontal';
506
- },
507
- 'resolve_symbol': function(node) {
508
- if($(node).attr('mode') == 'exclusive') {
509
- return 'choose_exclusive';
510
- } else {
511
- return 'choose_inclusive';
512
- }
513
- },
514
- 'col_shift': function(node) {
515
- return false;
516
- },
517
- 'svg': self.adaptor.theme_dir + 'symbols/choose.svg'
518
- },//}}}
519
- 'description': self.adaptor.theme_dir + 'rngs/choose.rng',
520
- 'permissible_children': function(node,mode) { //{{{
521
- var func = null;
522
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
523
- else { func = self.adaptor.description.insert_after }
524
- if(node.children('parallel_branch').length > 0) {
525
- return [{'label': 'Parallel Branch',
526
- 'function_call': func,
527
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
528
- 'type': 'parallel_branch',
529
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
530
- }
531
- var childs = [{'label': 'Alternative',
532
- 'function_call': func,
533
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
534
- 'type': 'alternative',
535
- 'params': [self.adaptor.description.elements.alternative, node]}];
536
- if((node.children('otherwise').length == 0) && node.parents('parallel').length == node.parents('parallel_branch').length && node.parent('choose').length == 0)
537
- childs.push({'label': 'Otherwise',
538
- 'function_call': self.adaptor.description.insert_last_into,
539
- 'menu_icon': self.elements.otherwise.illustrator.svg.clone(),
540
- 'type': 'otherwise',
541
- 'params': [self.adaptor.description.elements.otherwise, node]});
542
- if(node.parents('parallel').length > node.parents('parallel_branch').length)
543
- childs.push({'label': 'Parallel Branch',
544
- 'function_call': func,
545
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
546
- 'type': 'parallel_branch',
547
- 'params': [self.adaptor.description.elements.parallel_branch, node]});
548
- return childs;
549
- }, //}}}
550
- 'adaptor': {//{{{
551
- 'mousedown': function (node,e) {
552
- self.events.mousedown(node,e,true,true);
553
- },
554
- 'click': self.events.click,
555
- 'dblclick': self.events.dblclick,
556
- 'mouseover': self.events.mouseover,
557
- 'mouseout': self.events.mouseout
558
- }//}}}
559
- }; /*}}}*/
560
- this.elements.otherwise = { /*{{{*/
561
- 'type': 'complex',
562
- 'illustrator': {//{{{
563
- 'label': function(node){
564
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
565
- return (avg == '' ? [] : [ { column: 'Average', value: avg + '%' } ]);
566
- },
567
- 'endnodes': 'passthrough',
568
- 'closeblock': false,
569
- 'noarrow': true,
570
- 'expansion': function(node) {
571
- return 'vertical';
572
- },
573
- 'col_shift': function(node) {
574
- return false;
575
- },
576
- 'svg': self.adaptor.theme_dir + 'symbols/otherwise.svg'
577
- },//}}}
578
- 'description': self.adaptor.theme_dir + 'rngs/otherwise.rng',
579
- 'neverdelete': true,
580
- 'permissible_children': function(node,mode) { //{{{
581
- var func = null;
582
- var childs = null;
583
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
584
- else { func = self.adaptor.description.insert_after }
585
- var childs = [
586
- {'label': 'Service Call with Scripts',
587
- 'function_call': func,
588
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
589
- 'type': 'callmanipulate',
590
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
591
- {'label': 'Service Call',
592
- 'function_call': func,
593
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
594
- 'type': 'call',
595
- 'params': [self.adaptor.description.elements.call, node]},
596
- {'label': 'Script',
597
- 'function_call': func,
598
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
599
- 'type': 'manipulate',
600
- 'params': [self.adaptor.description.elements.manipulate, node]},
601
- {'label': 'Parallel',
602
- 'function_call': func,
603
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
604
- 'type': 'parallel',
605
- 'params': [self.adaptor.description.elements.parallel, node]},
606
- {'label': 'Decision',
607
- 'function_call': func,
608
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
609
- 'type': 'choose',
610
- 'params': [self.adaptor.description.elements.choose, node]},
611
- {'label': 'Loop',
612
- 'function_call': func,
613
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
614
- 'type': 'loop',
615
- 'params': [self.adaptor.description.elements.loop, node]},
616
- {'label': 'Closed Loop',
617
- 'function_call': func,
618
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
619
- 'type': 'closed_loop',
620
- 'params': [self.adaptor.description.elements.closed_loop, node]},
621
- {'label': 'Terminate',
622
- 'function_call': func,
623
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
624
- 'type': 'terminate',
625
- 'params': [self.adaptor.description.elements.terminate, node]},
626
- {'label': 'Stop',
627
- 'function_call': func,
628
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
629
- 'type': 'stop',
630
- 'params': [self.adaptor.description.elements.stop, node]}
631
- ];
632
- if(node.parent('parallel_branch').length > 0) {
633
- childs.push({
634
- 'label': 'Critical',
635
- 'function_call': func,
636
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
637
- 'type': 'critical',
638
- 'params': [self.adaptor.description.elements.critical, node]
639
- });
640
- }
641
- return childs;
642
- }, //}}}
643
- 'adaptor': {//{{{
644
- 'mousedown': function (node,e) {
645
- self.events.mousedown(node,e,true,false);
646
- },
647
- 'click': self.events.click,
648
- 'dblclick': self.events.dblclick,
649
- 'mouseover': self.events.mouseover,
650
- 'mouseout': self.events.mouseout,
651
- }//}}}
652
- }; /*}}}*/
653
- this.elements.alternative = { /*{{{*/
654
- 'type': 'complex',
655
- 'illustrator': {//{{{
656
- 'label': function(node){
657
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
658
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
659
- if (avg != '') {
660
- ret.push({ column: 'Average', value: avg + '%' });
661
- }
662
- return ret;
663
- },
664
- 'endnodes': 'passthrough',
665
- 'noarrow': true,
666
- 'closeblock':false,
667
- 'expansion': function(node) {
668
- return 'vertical';
669
- },
670
- 'col_shift': function(node) {
671
- return false;
672
- },
673
- 'svg': self.adaptor.theme_dir + 'symbols/alternative.svg'
674
- },//}}}
675
- 'description': self.adaptor.theme_dir + 'rngs/alternative.rng',
676
- 'permissible_children': function(node,mode) { //{{{
677
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
678
- else { func = self.adaptor.description.insert_after }
679
- if(node.parents('parallel').length > node.parents('parallel_branch').length && node.get(0).tagName == 'alternative') {
680
- return [{'label': 'Parallel Branch',
681
- 'function_call': func,
682
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
683
- 'type': 'parallel_branch',
684
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
685
- }
686
- var childs = [
687
- {'label': 'Service Call with Scripts',
688
- 'function_call': func,
689
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
690
- 'type': 'callmanipulate',
691
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
692
- {'label': 'Service Call',
693
- 'function_call': func,
694
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
695
- 'type': 'call',
696
- 'params': [self.adaptor.description.elements.call, node]},
697
- {'label': 'Script',
698
- 'function_call': func,
699
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
700
- 'type': 'manipulate',
701
- 'params': [self.adaptor.description.elements.manipulate, node]},
702
- {'label': 'Parallel',
703
- 'function_call': func,
704
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
705
- 'type': 'parallel',
706
- 'params': [self.adaptor.description.elements.parallel, node]},
707
- {'label': 'Decision',
708
- 'function_call': func,
709
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
710
- 'type': 'choose',
711
- 'params': [self.adaptor.description.elements.choose, node]},
712
- {'label': 'Loop',
713
- 'function_call': func,
714
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
715
- 'type': 'loop',
716
- 'params': [self.adaptor.description.elements.loop, node]},
717
- {'label': 'Closed Loop',
718
- 'function_call': func,
719
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
720
- 'type': 'closed_loop',
721
- 'params': [self.adaptor.description.elements.closed_loop, node]},
722
- {'label': 'Terminate',
723
- 'function_call': func,
724
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
725
- 'type': 'terminate',
726
- 'params': [self.adaptor.description.elements.terminate, node]},
727
- {'label': 'Stop',
728
- 'function_call': func,
729
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
730
- 'type': 'stop',
731
- 'params': [self.adaptor.description.elements.stop, node]}
732
- ];
733
- if(node.parent('parallel_branch').length > 0) {
734
- childs.push({
735
- 'label': 'Critical',
736
- 'function_call': func,
737
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
738
- 'type': 'critical',
739
- 'params': [self.adaptor.description.elements.critical, node]
740
- });
741
- }
742
- return childs;
743
- }, //}}}
744
- 'adaptor': {//{{{
745
- 'mousedown': function (node,e) {
746
- self.events.mousedown(node,e,true,true);
747
- },
748
- 'click': self.events.click,
749
- 'dblclick': self.events.dblclick,
750
- 'mouseover': self.events.mouseover,
751
- 'mouseout': self.events.mouseout,
752
- }//}}}
753
- }; /*}}}*/
754
- this.elements.loop = { /*{{{*/
755
- 'type': 'complex',
756
- 'illustrator': {//{{{
757
- 'resolve_symbol': function(node) {
758
- if($(node).attr('mode') == 'pre_test') {
759
- return 'loop_head';
760
- } else {
761
- return 'loop_tail';
762
- }
763
- },
764
- 'expansion': function(node) {
765
- return 'vertical';
766
- },
767
- 'col_shift': function(node) {
768
- return true;
769
- },
770
- 'svg': self.adaptor.theme_dir + 'symbols/loop.svg'
771
- },// }}}
772
- 'description': self.adaptor.theme_dir + 'rngs/loop.rng',
773
- 'permissible_children': function(node,mode) { //{{{
774
- var func = null;
775
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
776
- else { func = self.adaptor.description.insert_after }
777
- var childs = [
778
- {'label': 'Service Call with Scripts',
779
- 'function_call': func,
780
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
781
- 'type': 'callmanipulate',
782
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
783
- {'label': 'Service Call',
784
- 'function_call': func,
785
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
786
- 'type': 'call',
787
- 'params': [self.adaptor.description.elements.call, node]},
788
- {'label': 'Script',
789
- 'function_call': func,
790
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
791
- 'type': 'manipulate',
792
- 'params': [self.adaptor.description.elements.manipulate, node]},
793
- {'label': 'Decision',
794
- 'function_call': func,
795
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
796
- 'type': 'choose',
797
- 'params': [self.adaptor.description.elements.choose, node]},
798
- {'label': 'Loop',
799
- 'function_call': func,
800
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
801
- 'type': 'loop',
802
- 'params': [self.adaptor.description.elements.loop, node]},
803
- {'label': 'Closed Loop',
804
- 'function_call': func,
805
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
806
- 'type': 'closed_loop',
807
- 'params': [self.adaptor.description.elements.closed_loop, node]},
808
- {'label': 'Terminate',
809
- 'function_call': func,
810
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
811
- 'type': 'terminate',
812
- 'params': [self.adaptor.description.elements.terminate, node]},
813
- {'label': 'Stop',
814
- 'function_call': func,
815
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
816
- 'type': 'stop',
817
- 'params': [self.adaptor.description.elements.stop, node]}
818
- ];
819
- if(node.parent('parallel_branch').length > 0) {
820
- childs.push({
821
- 'label': 'Critical',
822
- 'function_call': func,
823
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
824
- 'type': 'critical',
825
- 'params': [self.adaptor.description.elements.critical, node]
826
- });
827
- }
828
- if(node.parent('parallel').length > node.parent('parallel_branch').length) {
829
- childs.push({'label': 'Parallel Branch',
830
- 'function_call': func,
831
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
832
- 'type': 'parallel_branch',
833
- 'params': [self.adaptor.description.elements.parallel_branch, node]}
834
- );
835
- } else {
836
- childs.push({'label': 'Parallel',
837
- 'function_call': func,
838
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
839
- 'type': 'parallel',
840
- 'params': [self.adaptor.description.elements.parallel, node]}
841
- );
842
- }
843
- return childs;
844
- }, //}}}
845
- 'adaptor': {//{{{
846
- 'mousedown': function (node,e) {
847
- self.events.mousedown(node,e,true,true);
848
- },
849
- 'click': self.events.click,
850
- 'dblclick': self.events.dblclick,
851
- 'mouseover': self.events.mouseover,
852
- 'mouseout': self.events.mouseout,
853
- }//}}}
854
- }; /*}}}*/
855
- this.elements.closed_loop = { /*{{{*/
856
- 'type': 'complex',
857
- 'illustrator': {//{{{
858
- 'endnodes': 'aggregate',
859
- 'closeblock': false,
860
- 'col_shift': function(node) {
861
- return true;
862
- },
863
- 'closing_symbol': 'closed_loop_finish',
864
- 'expansion': function(node) {
865
- return 'horizontal';
866
- },
867
- 'label': function(node){
868
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
869
- var ret = [ { column: 'Label', value: 'f = ' + $(node).attr('frequency') + ' Hz (' + $(node).attr('overrun') + ')' } ];
870
- if (avg != '') {
871
- ret.push({ column: 'Average', value: avg + '%' });
872
- }
873
- return ret;
874
- },
875
- 'svg': self.adaptor.theme_dir + 'symbols/closed_loop.svg'
876
- },//}}}
877
- 'description': self.adaptor.theme_dir + 'rngs/closed_loop.rng',
878
- 'permissible_children': function(node,mode) { //{{{
879
- var func = null;
880
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
881
- else { func = self.adaptor.description.insert_after }
882
- var childs = [
883
- {'label': 'Measuring',
884
- 'function_call': func,
885
- 'menu_icon': self.elements.closed_loop_measuring.illustrator.svg.clone(),
886
- 'type': 'closed_loop_measuring',
887
- 'params': [self.adaptor.description.elements.closed_loop_measuring, node]} ,
888
- {'label': 'Control',
889
- 'function_call': func,
890
- 'menu_icon': self.elements.closed_loop_control.illustrator.svg.clone(),
891
- 'type': 'closed_loop_control',
892
- 'params': [self.adaptor.description.elements.closed_loop_control, node]},
893
- {'label': 'Cancel',
894
- 'function_call': func,
895
- 'menu_icon': self.elements.closed_loop_cancel.illustrator.svg.clone(),
896
- 'type': 'closed_loop_cancel',
897
- 'params': [self.adaptor.description.elements.closed_loop_cancel, node]}
898
- ];
899
- return childs;
900
- }, //}}}
901
- 'adaptor': {//{{{
902
- 'mousedown': function (node,e) {
903
- self.events.mousedown(node,e,true,true);
904
- },
905
- 'click': self.events.click,
906
- 'dblclick': self.events.dblclick,
907
- 'mouseover': self.events.mouseover,
908
- 'mouseout': self.events.mouseout,
909
- }//}}}
910
- }; /*}}}*/
911
- this.elements.closed_loop_measuring = { /*{{{*/
912
- 'type': 'complex',
913
- 'illustrator': {//{{{
914
- 'endnodes': 'passthrough',
915
- 'closeblock': false,
916
- 'noarrow': true,
917
- 'expansion': function(node) {
918
- return 'vertical';
919
- },
920
- 'col_shift': function(node) {
921
- return false;
922
- },
923
- 'label': function(node){
924
- var vals = $('> value',$(node).children('_expected')).text();
925
- var ret = [ { column: 'Label', value: 'measure ' + vals } ];
926
- return ret;
927
- },
928
- 'svg': self.adaptor.theme_dir + 'symbols/closed_loop_measuring.svg'
929
- },//}}}
930
- 'description': self.adaptor.theme_dir + 'rngs/closed_loop_measuring.rng',
931
- 'permissible_children': function(node,mode) { //{{{
932
- var func = null;
933
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
934
- else { func = self.adaptor.description.insert_after }
935
- var childs = [
936
- {'label': 'Service Call with Scripts',
937
- 'function_call': func,
938
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
939
- 'type': 'callmanipulate',
940
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
941
- {'label': 'Service Call',
942
- 'function_call': func,
943
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
944
- 'type': 'call',
945
- 'params': [self.adaptor.description.elements.call, node]},
946
- {'label': 'Script',
947
- 'function_call': func,
948
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
949
- 'type': 'manipulate',
950
- 'params': [self.adaptor.description.elements.manipulate, node]},
951
- {'label': 'Parallel',
952
- 'function_call': func,
953
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
954
- 'type': 'parallel',
955
- 'params': [self.adaptor.description.elements.parallel, node]},
956
- {'label': 'Decision',
957
- 'function_call': func,
958
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
959
- 'type': 'choose',
960
- 'params': [self.adaptor.description.elements.choose, node]},
961
- {'label': 'Loop',
962
- 'function_call': func,
963
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
964
- 'type': 'loop',
965
- 'params': [self.adaptor.description.elements.loop, node]},
966
- {'label': 'Stop',
967
- 'function_call': func,
968
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
969
- 'type': 'stop',
970
- 'params': [self.adaptor.description.elements.stop, node]}
971
- ];
972
- return childs;
973
- }, //}}}
974
- 'adaptor': {//{{{
975
- 'mousedown': function (node,e) {
976
- self.events.mousedown(node,e,true,true);
977
- },
978
- 'click': self.events.click,
979
- 'dblclick': self.events.dblclick,
980
- 'mouseover': self.events.mouseover,
981
- 'mouseout': self.events.mouseout,
982
- }//}}}
983
- }; /*}}}*/
984
- this.elements.closed_loop_control = { /*{{{*/
985
- 'type': 'complex',
986
- 'illustrator': {//{{{
987
- 'endnodes': 'passthrough',
988
- 'closeblock': false,
989
- 'noarrow': true,
990
- 'expansion': function(node) {
991
- return 'vertical';
992
- },
993
- 'col_shift': function(node) {
994
- return false;
995
- },
996
- 'label': function(node){
997
- var vals = [];
998
- $('> change > value',$(node).children('_expected')).each((k,v) => {
999
- vals.push($(v).text());
1000
- });
1001
- var ret = [ { column: 'Label', value: 'control ' + vals.join(', ') } ];
1002
- return ret;
1003
- },
1004
- 'svg': self.adaptor.theme_dir + 'symbols/closed_loop_control.svg'
1005
- },//}}}
1006
- 'description': self.adaptor.theme_dir + 'rngs/closed_loop_control.rng',
1007
- 'permissible_children': function(node,mode) { //{{{
1008
- var func = null;
1009
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1010
- else { func = self.adaptor.description.insert_after }
1011
- var childs = [
1012
- {'label': 'Service Call with Scripts',
1013
- 'function_call': func,
1014
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1015
- 'type': 'callmanipulate',
1016
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1017
- {'label': 'Service Call',
1018
- 'function_call': func,
1019
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1020
- 'type': 'call',
1021
- 'params': [self.adaptor.description.elements.call, node]},
1022
- {'label': 'Script',
1023
- 'function_call': func,
1024
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1025
- 'type': 'manipulate',
1026
- 'params': [self.adaptor.description.elements.manipulate, node]},
1027
- {'label': 'Parallel',
1028
- 'function_call': func,
1029
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1030
- 'type': 'parallel',
1031
- 'params': [self.adaptor.description.elements.parallel, node]},
1032
- {'label': 'Decision',
1033
- 'function_call': func,
1034
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1035
- 'type': 'choose',
1036
- 'params': [self.adaptor.description.elements.choose, node]},
1037
- {'label': 'Loop',
1038
- 'function_call': func,
1039
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1040
- 'type': 'loop',
1041
- 'params': [self.adaptor.description.elements.loop, node]},
1042
- {'label': 'Closed Loop',
1043
- 'function_call': func,
1044
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
1045
- 'type': 'closed_loop',
1046
- 'params': [self.adaptor.description.elements.closed_loop, node]},
1047
- {'label': 'Stop',
1048
- 'function_call': func,
1049
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1050
- 'type': 'stop',
1051
- 'params': [self.adaptor.description.elements.stop, node]}
1052
- ];
1053
- return childs;
1054
- }, //}}}
1055
- 'adaptor': {//{{{
1056
- 'mousedown': function (node,e) {
1057
- self.events.mousedown(node,e,true,true);
1058
- },
1059
- 'click': self.events.click,
1060
- 'dblclick': self.events.dblclick,
1061
- 'mouseover': self.events.mouseover,
1062
- 'mouseout': self.events.mouseout,
1063
- }//}}}
1064
- }; /*}}}*/
1065
- this.elements.closed_loop_cancel = { /*{{{*/
1066
- 'type': 'complex',
1067
- 'illustrator': {//{{{
1068
- 'endnodes': 'passthrough',
1069
- 'closeblock': false,
1070
- 'noarrow': true,
1071
- 'expansion': function(node) {
1072
- return 'vertical';
1073
- },
1074
- 'col_shift': function(node) {
1075
- return false;
1076
- },
1077
- 'label': function(node){
1078
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
1079
- return ret;
1080
- },
1081
- 'svg': self.adaptor.theme_dir + 'symbols/closed_loop_cancel.svg'
1082
- },//}}}
1083
- 'description': self.adaptor.theme_dir + 'rngs/closed_loop_cancel.rng',
1084
- 'permissible_children': function(node,mode) { //{{{
1085
- var func = null;
1086
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1087
- else { func = self.adaptor.description.insert_after }
1088
- var childs = [
1089
- {'label': 'Service Call with Scripts',
1090
- 'function_call': func,
1091
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1092
- 'type': 'callmanipulate',
1093
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1094
- {'label': 'Service Call',
1095
- 'function_call': func,
1096
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1097
- 'type': 'call',
1098
- 'params': [self.adaptor.description.elements.call, node]},
1099
- {'label': 'Script',
1100
- 'function_call': func,
1101
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1102
- 'type': 'manipulate',
1103
- 'params': [self.adaptor.description.elements.manipulate, node]},
1104
- {'label': 'Parallel',
1105
- 'function_call': func,
1106
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1107
- 'type': 'parallel',
1108
- 'params': [self.adaptor.description.elements.parallel, node]},
1109
- {'label': 'Decision',
1110
- 'function_call': func,
1111
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1112
- 'type': 'choose',
1113
- 'params': [self.adaptor.description.elements.choose, node]},
1114
- {'label': 'Loop',
1115
- 'function_call': func,
1116
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1117
- 'type': 'loop',
1118
- 'params': [self.adaptor.description.elements.loop, node]},
1119
- {'label': 'Stop',
1120
- 'function_call': func,
1121
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1122
- 'type': 'stop',
1123
- 'params': [self.adaptor.description.elements.stop, node]}
1124
- ];
1125
- return childs;
1126
- }, //}}}
1127
- 'adaptor': {//{{{
1128
- 'mousedown': function (node,e) {
1129
- self.events.mousedown(node,e,true,true);
1130
- },
1131
- 'click': self.events.click,
1132
- 'dblclick': self.events.dblclick,
1133
- 'mouseover': self.events.mouseover,
1134
- 'mouseout': self.events.mouseout,
1135
- }//}}}
1136
- }; /*}}}*/
1137
- this.elements.parallel = { /*{{{*/
1138
- 'type': 'complex',
1139
- 'illustrator': {//{{{
1140
- 'endnodes': 'aggregate',
1141
- 'closeblock': false,
1142
- 'closing_symbol': 'parallel_finish',
1143
- 'expansion': function(node) {
1144
- // check if any sibling other than 'parallel_branch' is present
1145
- if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
1146
- return 'horizontal';
1147
- },
1148
- 'col_shift': function(node) {
1149
- return true;
1150
- },
1151
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
1152
- },//}}}
1153
- 'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
1154
- 'permissible_children': function(node,mode) { //{{{
1155
- var func = null;
1156
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1157
- else { func = self.adaptor.description.insert_after }
1158
- var childs = [
1159
- {'label': 'Parallel Branch',
1160
- 'function_call': func,
1161
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
1162
- 'type': 'parallel_branch',
1163
- 'params': [self.adaptor.description.elements.parallel_branch, node]},
1164
- ];
1165
- return childs;
1166
- }, //}}}
1167
- 'permissible_children_expert': function(node,mode) { //{{{
1168
- var func = null;
1169
- if (mode.match(/into/)) { func = self.adaptor.description.insert_first_into }
1170
- else { func = self.adaptor.description.insert_after }
1171
- var childs = [
1172
- {'label': 'Service Call with Scripts',
1173
- 'function_call': func,
1174
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1175
- 'type': 'callmanipulate',
1176
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1177
- {'label': 'Service Call',
1178
- 'function_call': func,
1179
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1180
- 'type': 'call',
1181
- 'params': [self.adaptor.description.elements.call, node]},
1182
- {'label': 'Script',
1183
- 'function_call': func,
1184
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1185
- 'type': 'manipulate',
1186
- 'params': [self.adaptor.description.elements.manipulate, node]},
1187
- {'label': 'Decision',
1188
- 'function_call': func,
1189
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1190
- 'type': 'choose',
1191
- 'params': [self.adaptor.description.elements.choose, node]},
1192
- {'label': 'Loop',
1193
- 'function_call': func,
1194
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1195
- 'type': 'loop',
1196
- 'params': [self.adaptor.description.elements.loop, node]},
1197
- {'label': 'Closed Loop',
1198
- 'function_call': func,
1199
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
1200
- 'type': 'closed_loop',
1201
- 'params': [self.adaptor.description.elements.closed_loop, node]},
1202
- {'label': 'Stop',
1203
- 'function_call': func,
1204
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1205
- 'type': 'stop',
1206
- 'params': [self.adaptor.description.elements.stop, node]}
1207
- ];
1208
- if(node.get(0).tagName != 'parallel')
1209
- childs.push({'label': 'Parallel',
1210
- 'function_call': self.adaptor.description.insert_last_into,
1211
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1212
- 'type': 'parallel',
1213
- 'params': [self.adaptor.description.elements.parallel, node]});
1214
- return childs;
1215
- }, //}}}
1216
- 'adaptor': {//{{{
1217
- 'mousedown': function (node,e) {
1218
- self.events.mousedown(node,e,true,true);
1219
- },
1220
- 'click': self.events.click,
1221
- 'dblclick': self.events.dblclick,
1222
- 'mouseover': self.events.mouseover,
1223
- 'mouseout': self.events.mouseout,
1224
- }//}}}
1225
- }; /*}}}*/
1226
- this.elements.parallel_branch = { /*{{{*/
1227
- 'type': 'complex',
1228
- 'illustrator': {//{{{
1229
- 'endnodes': 'passthrough',
1230
- 'closeblock': false,
1231
- 'noarrow': true,
1232
- 'expansion': function(node) {
1233
- return 'vertical';
1234
- },
1235
- 'resolve_symbol': function(node,shift) {
1236
- if(shift == true) {
1237
- return 'parallel_branch_event';
1238
- } else {
1239
- return 'parallel_branch_normal';
1240
- }
1241
- },
1242
- 'col_shift': function(node) {
1243
- if(node.parentNode.tagName == 'choose') return false;
1244
- if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
1245
- return false;
1246
- },
1247
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch.svg'
1248
- },//}}}
1249
- 'description': self.adaptor.theme_dir + 'rngs/parallel_branch.rng',
1250
- 'permissible_children': function(node,mode) { //{{{
1251
- var func = null;
1252
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1253
- else { func = self.adaptor.description.insert_after }
1254
- var childs = [
1255
- {'label': 'Service Call with Scripts',
1256
- 'function_call': func,
1257
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1258
- 'type': 'callmanipulate',
1259
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1260
- {'label': 'Service Call',
1261
- 'function_call': func,
1262
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1263
- 'type': 'call',
1264
- 'params': [self.adaptor.description.elements.call, node]},
1265
- {'label': 'Script',
1266
- 'function_call': func,
1267
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1268
- 'type': 'manipulate',
1269
- 'params': [self.adaptor.description.elements.manipulate, node]},
1270
- {'label': 'Parallel',
1271
- 'function_call': func,
1272
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1273
- 'type': 'parallel',
1274
- 'params': [self.adaptor.description.elements.parallel, node]},
1275
- {'label': 'Decision',
1276
- 'function_call': func,
1277
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1278
- 'type': 'choose',
1279
- 'params': [self.adaptor.description.elements.choose, node]},
1280
- {'label': 'Loop',
1281
- 'function_call': func,
1282
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1283
- 'type': 'loop',
1284
- 'params': [self.adaptor.description.elements.loop, node]},
1285
- {'label': 'Closed Loop',
1286
- 'function_call': func,
1287
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
1288
- 'type': 'closed_loop',
1289
- 'params': [self.adaptor.description.elements.closed_loop, node]},
1290
- {'label': 'Terminate',
1291
- 'function_call': func,
1292
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
1293
- 'type': 'terminate',
1294
- 'params': [self.adaptor.description.elements.terminate, node]},
1295
- {'label': 'Stop',
1296
- 'function_call': func,
1297
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1298
- 'type': 'stop',
1299
- 'params': [self.adaptor.description.elements.stop, node]},
1300
- {'label': 'Critical',
1301
- 'function_call': func,
1302
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
1303
- 'type': 'critical',
1304
- 'params': [self.adaptor.description.elements.critical, node]}
1305
- ];
1306
- if(node.parents('choose').length > node.parents('alternative, otherwise').length && node.get(0).tagName == 'parallel_branch') {
1307
- return [{'label': 'Alternative',
1308
- 'function_call': func,
1309
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
1310
- 'type': 'alternative',
1311
- 'params': [self.adaptor.description.elements.alternative, node]}];
1312
- }
1313
- return childs;
1314
- }, //}}}
1315
- 'adaptor': {//{{{
1316
- 'mousedown': function (node,e) {
1317
- self.events.mousedown(node,e,true,true);
1318
- },
1319
- 'click': self.events.click,
1320
- 'dblclick': self.events.dblclick,
1321
- 'mouseover': self.events.mouseover,
1322
- 'mouseout': self.events.mouseout,
1323
- }//}}}
1324
- }; /*}}}*/
1325
- this.elements.critical = { /*{{{*/
1326
- 'type': 'complex',
1327
- 'illustrator': {//{{{
1328
- 'endnodes': 'aggregate',
1329
- 'closeblock': false,
1330
- 'border': true,
1331
- 'expansion': function(node) {
1332
- return 'vertical';
1333
- },
1334
- 'col_shift': function(node) {
1335
- return true;
1336
- },
1337
- 'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
1338
- },//}}}
1339
- 'description': self.adaptor.theme_dir + 'rngs/critical.rng',
1340
- 'permissible_children': function(node,mode) { //{{{
1341
- var func = null;
1342
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1343
- else { func = self.adaptor.description.insert_after }
1344
- var childs = [
1345
- {'label': 'Service Call with Scripts',
1346
- 'function_call': func,
1347
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1348
- 'type': 'callmanipulate',
1349
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1350
- {'label': 'Service Call',
1351
- 'function_call': func,
1352
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1353
- 'type': 'call',
1354
- 'params': [self.adaptor.description.elements.call, node]},
1355
- {'label': 'Script',
1356
- 'function_call': func,
1357
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1358
- 'type': 'manipulate',
1359
- 'params': [self.adaptor.description.elements.manipulate, node]},
1360
- {'label': 'Parallel',
1361
- 'function_call': func,
1362
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1363
- 'type': 'parallel',
1364
- 'params': [self.adaptor.description.elements.parallel, node]},
1365
- {'label': 'Decision',
1366
- 'function_call': func,
1367
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1368
- 'type': 'choose',
1369
- 'params': [self.adaptor.description.elements.choose, node]},
1370
- {'label': 'Loop',
1371
- 'function_call': func,
1372
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1373
- 'type': 'loop',
1374
- 'params': [self.adaptor.description.elements.loop, node]},
1375
- {'label': 'Closed Loop',
1376
- 'function_call': func,
1377
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
1378
- 'type': 'closed_loop',
1379
- 'params': [self.adaptor.description.elements.closed_loop, node]},
1380
- {'label': 'Terminate',
1381
- 'function_call': func,
1382
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
1383
- 'type': 'terminate',
1384
- 'params': [self.adaptor.description.elements.terminate, node]},
1385
- {'label': 'Stop',
1386
- 'function_call': func,
1387
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1388
- 'type': 'stop',
1389
- 'params': [self.adaptor.description.elements.stop, node]}
1390
- ];
1391
- if(node.parent('parallel_branch').length > 0) {
1392
- childs.push({
1393
- 'label': 'Critical',
1394
- 'function_call': func,
1395
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
1396
- 'type': 'critical',
1397
- 'params': [self.adaptor.description.elements.critical, node]
1398
- });
1399
- }
1400
- return childs;
1401
- }, //}}}
1402
- 'adaptor': {//{{{
1403
- 'mousedown': function (node,e) {
1404
- self.events.mousedown(node,e,true,true);
1405
- },
1406
- 'click': self.events.click,
1407
- 'dblclick': self.events.dblclick,
1408
- 'mouseover': self.events.mouseover,
1409
- 'mouseout': self.events.mouseout,
1410
- }//}}}
1411
- }; /*}}}*/
1412
- this.elements.group = { /*{{{*/
1413
- 'type': 'complex',
1414
- 'illustrator': {//{{{
1415
- 'endnodes': 'aggregate',
1416
- 'closeblock': false,
1417
- 'border': 'injectiongroup', // other value than true,false inidcates the used class for the svg-object
1418
- 'expansion': function(node) {
1419
- return 'vertical';
1420
- },
1421
- 'col_shift': function(node) {
1422
- return true;
1423
- },
1424
- 'svg': null
1425
- },//}}}
1426
- 'description': self.adaptor.theme_dir + 'rngs/group.rng',
1427
- 'permissible_children': function(node,mode) { //{{{
1428
- var func = null;
1429
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1430
- else { func = self.adaptor.description.insert_after }
1431
- return [
1432
- ];
1433
- }, //}}}
1434
- 'adaptor': {//{{{
1435
- 'mousedown': function (node,e) {
1436
- self.events.mousedown(node,e,true,true);
1437
- },
1438
- 'click': self.events.click,
1439
- 'dblclick': self.events.dblclick,
1440
- 'mouseover': self.events.mouseover,
1441
- 'mouseout': self.events.mouseout,
1442
- }//}}}
1443
- }; /*}}}*/
1444
- this.elements.start = this.elements.description = { /*{{{*/
1445
- 'type': 'description',
1446
- 'illustrator': {//{{{
1447
- 'endnodes': 'passthrough',
1448
- 'label': function(node){ return [ { column: 'Label'}, { column: 'ID' }, { column: 'Resource' }, { column: 'RP' }, { column: 'R#' } ]; },
1449
- 'closeblock': false,
1450
- 'balance': true,
1451
- 'expansion': function(node) {
1452
- return 'vertical';
1453
- },
1454
- 'closing_symbol': 'end',
1455
- 'col_shift': function(node) {
1456
- return true;
1457
- },
1458
- 'svg': self.adaptor.theme_dir + 'symbols/start.svg'
1459
- },//}}}
1460
- 'description': null,
1461
- 'permissible_children': function(node,mode) { //{{{
1462
- var func = null;
1463
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1464
- else { func = self.adaptor.description.insert_after }
1465
- var childs = [
1466
- {'label': 'Service Call with Scripts',
1467
- 'function_call': func,
1468
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1469
- 'type': 'callmanipulate',
1470
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1471
- {'label': 'Service Call',
1472
- 'function_call': func,
1473
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1474
- 'type': 'call',
1475
- 'params': [self.adaptor.description.elements.call, node]},
1476
- {'label': 'Script',
1477
- 'function_call': func,
1478
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1479
- 'type': 'manipulate',
1480
- 'params': [self.adaptor.description.elements.manipulate, node]},
1481
- {'label': 'Parallel',
1482
- 'function_call': func,
1483
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1484
- 'type': 'parallel',
1485
- 'params': [self.adaptor.description.elements.parallel, node]},
1486
- {'label': 'Decision',
1487
- 'function_call': func,
1488
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1489
- 'type': 'choose',
1490
- 'params': [self.adaptor.description.elements.choose, node]},
1491
- {'label': 'Loop',
1492
- 'function_call': func,
1493
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1494
- 'type': 'loop',
1495
- 'params': [self.adaptor.description.elements.loop, node]},
1496
- {'label': 'Closed Loop',
1497
- 'function_call': func,
1498
- 'menu_icon': self.elements.closed_loop.illustrator.svg.clone(),
1499
- 'type': 'closed_loop',
1500
- 'params': [self.adaptor.description.elements.closed_loop, node]},
1501
- {'label': 'Stop',
1502
- 'function_call': func,
1503
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1504
- 'type': 'stop',
1505
- 'params': [self.adaptor.description.elements.stop, node]}
1506
- ];
1507
- if(node.parent('parallel_branch').length > 0) {
1508
- childs.push({
1509
- 'label': 'Critical',
1510
- 'function_call': func,
1511
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
1512
- 'type': 'critical',
1513
- 'params': [self.adaptor.description.elements.critical, node]
1514
- });
1515
- }
1516
- return childs;
1517
- }, //}}}
1518
- 'adaptor': {//{{{
1519
- 'mousedown': function (node,e) {
1520
- self.events.mousedown(node,e,true,false);
1521
- },
1522
- 'click': self.events.click,
1523
- 'dblclick': self.events.dblclick,
1524
- 'mouseover': self.events.mouseover,
1525
- 'mouseout': self.events.mouseout,
1526
- }//}}}
1527
- }; /*}}}*/
1528
-
1529
- // Abstract Elements
1530
- // * they may only have an illustrator (or other parts)
1531
- // * they HAVE TO have a parent
1532
- this.elements.callmanipulate = { /*{{{*/
1533
- 'parent': 'call',
1534
- 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
1535
- 'illustrator': {//{{{
1536
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
1537
- 'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
1538
- },//}}}
1539
- }; /*}}}*/
1540
- this.elements.loop_head = { /*{{{*/
1541
- 'parent': 'loop',
1542
- 'illustrator': {//{{{
1543
- 'endnodes': 'this',
1544
- 'closeblock': true,
1545
- 'label': function(node){
1546
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
1547
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
1548
- if (avg != '') {
1549
- ret.push({ column: 'Average', value: avg + 'x' });
1550
- }
1551
- return ret;
1552
- },
1553
- }//}}}
1554
- }; /*}}}*/
1555
- this.elements.loop_tail = { /*{{{*/
1556
- 'parent': 'loop',
1557
- 'illustrator': {//{{{
1558
- 'endnodes': 'aggregate',
1559
- 'closeblock': false,
1560
- 'closing_symbol': 'loop_finish'
1561
- },//}}}
1562
- }; /*}}}*/
1563
- this.elements.choose_inclusive = { /*{{{*/
1564
- 'parent': 'choose',
1565
- 'illustrator': {//{{{
1566
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1567
- }//}}}
1568
- }; /*}}}*/
1569
- this.elements.choose_exclusive = { /*{{{*/
1570
- 'parent': 'choose',
1571
- 'illustrator': {//{{{
1572
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1573
- },//}}}
1574
- }; /*}}}*/
1575
- this.elements.choose_inclusive_finish = { /*{{{*/
1576
- 'parent': 'choose_finish',
1577
- 'illustrator': {//{{{
1578
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1579
- }//}}}
1580
- }; /*}}}*/
1581
- this.elements.choose_exclusive_finish = { /*{{{*/
1582
- 'parent': 'choose_finish',
1583
- 'illustrator': {//{{{
1584
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1585
- },//}}}
1586
- }; /*}}}*/
1587
- this.elements.loop_head_finish = { /*{{{*/
1588
- 'parent': 'loop_finish',
1589
- 'illustrator': {//{{{
1590
- 'endnodes': 'this',
1591
- 'closeblock': true,
1592
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1593
- }//}}}
1594
- }; /*}}}*/
1595
- this.elements.loop_tail_finish = { /*{{{*/
1596
- 'parent': 'loop_finish',
1597
- 'illustrator': {//{{{
1598
- 'endnodes': 'this',
1599
- 'closeblock': false,
1600
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1601
- },//}}}
1602
- }; /*}}}*/
1603
- this.elements.closed_loop_finish = { /*{{{*/
1604
- 'parent': 'closed_loop_finish',
1605
- 'illustrator': {//{{{
1606
- 'endnodes': 'this',
1607
- 'closeblock': true,
1608
- 'svg': self.adaptor.theme_dir + 'symbols/closed_loop.svg'
1609
- }//}}}
1610
- }; /*}}}*/
1611
- this.elements.parallel_simple = { /*{{{*/
1612
- 'parent': 'parallel_finish',
1613
- 'illustrator': {//{{{
1614
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
1615
- }//}}}
1616
- }; /*}}}*/
1617
- this.elements.parallel_complex = { /*{{{*/
1618
- 'parent': 'parallel_finish',
1619
- 'illustrator': {//{{{
1620
- 'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
1621
- },//}}}
1622
- }; /*}}}*/
1623
- this.elements.parallel_branch_normal = { /*{{{*/
1624
- 'parent': 'parallel_branch',
1625
- 'illustrator': {//{{{
1626
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_normal.svg'
1627
- }//}}}
1628
- }; /*}}}*/
1629
- this.elements.parallel_branch_event = { /*{{{*/
1630
- 'parent': 'parallel_branch',
1631
- 'illustrator': {//{{{
1632
- 'endnodes': 'this',
1633
- 'noarrow': false,
1634
- 'border': true,
1635
- 'wide': true,
1636
- 'closing_symbol': 'event_end',
1637
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
1638
- }//}}}
1639
- }; /*}}}*/
1640
- this.elements.parallel_branch_compact = { /*{{{*/
1641
- 'parent': 'parallel_branch',
1642
- 'illustrator': {//{{{
1643
- 'endnodes': 'this',
1644
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
1645
- }//}}}
1646
- }; /*}}}*/
1647
- this.elements.scripts = { /*{{{*/
1648
- 'description': [self.adaptor.theme_dir + 'rngs/scripts.rng']
1649
- }; /*}}}*/
1650
- }