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 +0,0 @@
1
- ../../preset/rngs/alternative.rng
@@ -1,67 +0,0 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
- <data type="string" rngui:readonly="true"/>
4
- </attribute>
5
- <attribute name="endpoint" rngui:label="Type">
6
- <choice>
7
- <value id="machine">Machine Invocation</value>
8
- <value id="sensor">Read From Sensor</value>
9
- <value id="human">Human Task</value>
10
- <value id="subprocess">Subprocess</value>
11
- <value id="robot">Robot Task</value>
12
- <value id="robot_subprocess">Robot Subprocess</value>
13
- <value id="plc">PLC</value>
14
- <value id="send">Send Message</value>
15
- <value id="receive">Receive Message</value>
16
- </choice>
17
- </attribute>
18
- <element name="parameters" rngui:header="Properties">
19
- <element name="label" rngui:label="Label">
20
- <data type="string" rngui:label="Short description of the task"/>
21
- </element>
22
- <element name="arguments"/>
23
- <element name="input" rngui:header="Input Arguments">
24
- <zeroOrMore rngui:label="Create Argument">
25
- <element name="item" rngui:label="Description">
26
- <attribute name="label" rngui:label="Name">
27
- <data type="string"/>
28
- </attribute>
29
- <text rngui:wrap="true" rngui:label="What does it do?"/>
30
- </element>
31
- </zeroOrMore>
32
- </element>
33
- <element name="output" rngui:header="Output Elements">
34
- <zeroOrMore rngui:label="Create Element">
35
- <element name="item" rngui:label="Description">
36
- <attribute name="label" rngui:label="Name">
37
- <data type="string"/>
38
- </attribute>
39
- <text rngui:wrap="true" rngui:label="What does it do?"/>
40
- </element>
41
- </zeroOrMore>
42
- </element>
43
- </element>
44
- <element name="implementation" rngui:header="Implementation">
45
- <element name="description" rngui:label="Description">
46
- <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
47
- </element>
48
- </element>
49
- <element name="annotations" rngui:header="Annotations">
50
- <element name="_timing" rngui:header="Timing" rngui:fold="closed">
51
- <element name="_timing_min" rngui:label="Min in min">
52
- <data type="float" rngui:label="Minutes"/>
53
- </element>
54
- <element name="_timing_max" rngui:label="Max in min">
55
- <data type="float" rngui:label="Minutes"/>
56
- </element>
57
- <element name="_timing_avg" rngui:label="Avg in min">
58
- <data type="float" rngui:label="Minutes"/>
59
- </element>
60
- </element>
61
- <element name="_notes" rngui:header="Notes" rngui:fold="closed">
62
- <element name="_notes_general" rngui:label="General">
63
- <text rngui:wrap="true" rngui:label="Notes"/>
64
- </element>
65
- </element>
66
- </element>
67
- </element>
@@ -1,72 +0,0 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
- <data type="string" rngui:readonly="true"/>
4
- </attribute>
5
- <attribute name="endpoint" rngui:label="Type">
6
- <choice>
7
- <value id="machine">Machine Invocation</value>
8
- <value id="sensor">Read From Sensor</value>
9
- <value id="human">Human Task</value>
10
- <value id="subprocess">Subprocess</value>
11
- <value id="robot">Robot Task</value>
12
- <value id="robot_subprocess">Robot Subprocess</value>
13
- <value id="plc">PLC</value>
14
- <value id="send">Send Message</value>
15
- <value id="receive">Receive Message</value>
16
- </choice>
17
- </attribute>
18
- <element name="parameters" rngui:header="Properties">
19
- <element name="label" rngui:label="Label">
20
- <data type="string" rngui:label="Short description of the task"/>
21
- </element>
22
- <element name="arguments"/>
23
- <element name="input" rngui:header="Input Arguments">
24
- <zeroOrMore rngui:label="Create Argument">
25
- <element name="item" rngui:label="Description">
26
- <attribute name="label" rngui:label="Name">
27
- <data type="string"/>
28
- </attribute>
29
- <text rngui:wrap="true" rngui:label="What does it do?"/>
30
- </element>
31
- </zeroOrMore>
32
- </element>
33
- <element name="output" rngui:header="Output Elements">
34
- <zeroOrMore rngui:label="Create Element">
35
- <element name="item" rngui:label="Description">
36
- <attribute name="label" rngui:label="Name">
37
- <data type="string"/>
38
- </attribute>
39
- <text rngui:wrap="true" rngui:label="What does it do?"/>
40
- </element>
41
- </zeroOrMore>
42
- </element>
43
- </element>
44
- <element name="implementation" rngui:header="Implementation">
45
- <element name="description" rngui:label="Description">
46
- <text rngui:wrap="true" rngui:label="What is supposed to happen?"/>
47
- </element>
48
- </element>
49
- <element name="code" rngui:header="Output Transformation">
50
- <element name="description" rngui:label="Description">
51
- <text rngui:wrap="true" rngui:label="Which output elements are important? How to transform them?"/>
52
- </element>
53
- </element>
54
- <element name="annotations" rngui:header="Annotations">
55
- <element name="_timing" rngui:header="Timing" rngui:fold="closed">
56
- <element name="_timing_min" rngui:label="Min in min">
57
- <data type="float" rngui:label="Minutes"/>
58
- </element>
59
- <element name="_timing_max" rngui:label="Max in min">
60
- <data type="float" rngui:label="Minutes"/>
61
- </element>
62
- <element name="_timing_avg" rngui:label="Avg in min">
63
- <data type="float" rngui:label="Minutes"/>
64
- </element>
65
- </element>
66
- <element name="_notes" rngui:header="Notes" rngui:fold="closed">
67
- <element name="_notes_general" rngui:label="General">
68
- <text rngui:wrap="true" rngui:label="Notes"/>
69
- </element>
70
- </element>
71
- </element>
72
- </element>
@@ -1 +0,0 @@
1
- ../../preset/rngs/choose.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/critical.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/escape.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/group.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/loop.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/manipulate.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/otherwise.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/parallel.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/parallel_branch.rng
@@ -1,7 +0,0 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="code" rngui:header="Output Transformation" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <element name="code" rngui:header="Output Transformation">
3
- <element name="description" rngui:label="Description">
4
- <text rngui:wrap="true" rngui:label="Which output elements are important? How to transform them?"/>
5
- </element>
6
- </element>
7
- </element>
@@ -1 +0,0 @@
1
- ../../preset/rngs/stop.rng
@@ -1 +0,0 @@
1
- ../../preset/rngs/terminate.rng
@@ -1,1268 +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 = false;
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 Output Transformation',
175
- 'function_call': self.adaptor.description.remove,
176
- 'menu_icon': icon,
177
- 'type': undefined,
178
- 'params': ['> code', xml_node]
179
- });
180
- }
181
- new CustomMenu(e).contextmenu(menu);
182
- }
183
- return false;
184
- } // }}}
185
- this.events.suppress = function(svgid, e, child, sibling) { // {{{
186
- return false;
187
- } // }}}
188
- this.events.click = function(svgid, e) { // {{{
189
- if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
190
- return;
191
- }
192
-
193
- self.adaptor.illustrator.get_elements().removeClass('selected');
194
- self.adaptor.illustrator.get_labels().removeClass('selected');
195
-
196
- if (e && e.ctrlKey) {
197
- if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
198
- var tab = $('#dat_details');
199
- tab.empty();
200
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
201
- if (vtarget.length > 0) {
202
- vtarget.parents('g.element[element-id]').toggleClass('marked');
203
- }
204
- } else {
205
- self.adaptor.illustrator.get_elements().removeClass('marked');
206
-
207
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
208
- if (vtarget.length > 0) {
209
- vtarget.parents('g.element[element-id]').addClass('selected');
210
- }
211
- self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
212
-
213
- self.update_details(svgid);
214
- }
215
- } // }}}
216
- this.events.dblclick = function(svgid, e) { // {{{
217
- } // }}}
218
- this.events.mouseover = function(svgid, e) { // {{{
219
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
220
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
221
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
222
- return false;
223
- } // }}}
224
- this.events.mouseout = function(svgid, e) { // {{{
225
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
226
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
227
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
228
- return false;
229
- } // }}}
230
- this.events.dragstart = function (svgid, e) { //{{{
231
- } //}}}
232
-
233
- // other resources
234
- this.resources.arrow = self.adaptor.theme_dir + 'symbols/arrow.svg';
235
-
236
- // Primitive Elements
237
- this.elements.call = { /*{{{*/
238
- 'type': 'primitive',
239
- 'illustrator': {//{{{
240
- 'endnodes': 'this',
241
- 'label': function(node){
242
- var ret;
243
- if ($('> url',$(node).children('parameters').children('arguments')).length > 0) {
244
- ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' <a target="_blank" href="' + $('> url',$(node).children('parameters').children('arguments')).text() + '"></a>' } ];
245
- } else {
246
- ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') } ];
247
- }
248
- return ret;
249
- },
250
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
251
- 'resolve_symbol': function(node) {
252
- if($('code', node).length > 0) {
253
- return 'callmanipulate';
254
- } else {
255
- return 'call';
256
- }
257
- },
258
- 'svg': self.adaptor.theme_dir + 'symbols/call.svg'
259
- },//}}}
260
- 'description': self.adaptor.theme_dir + 'rngs/call.rng',
261
- 'permissible_children': function(node,mode) { //{{{
262
- if(node.children('code').length < 1)
263
- return [
264
- {'label': 'Output Transformation',
265
- 'function_call': self.adaptor.description.insert_last_into,
266
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
267
- 'type': undefined,
268
- 'params': [self.adaptor.description.elements.scripts, node]}
269
- ];
270
- return [];
271
- }, //}}}
272
- 'adaptor': {//{{{
273
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
274
- 'click': self.events.click,
275
- 'dragstart': self.events.dragstart,
276
- 'mouseover': self.events.mouseover,
277
- 'mouseout': self.events.mouseout
278
- }//}}}
279
- }; /*}}}*/
280
- this.elements.manipulate = { /*{{{*/
281
- 'type': 'primitive',
282
- 'illustrator': {//{{{
283
- 'endnodes': 'this',
284
- 'label': function(node){
285
- var lab = $(node).attr('label');
286
- if (lab) {
287
- return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') } ];
288
- } else {
289
- return [];
290
- }
291
- },
292
- 'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
293
- },//}}}
294
- 'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
295
- 'permissible_children': function(node,mode) { //{{{
296
- return [];
297
- }, //}}}
298
- 'adaptor': {//{{{
299
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
300
- 'click': self.events.click,
301
- 'mouseover': self.events.mouseover,
302
- 'mouseout': self.events.mouseout
303
- }//}}}
304
- }; /*}}}*/
305
- this.elements.escape = { /*{{{*/
306
- 'type': 'primitive',
307
- 'illustrator': {//{{{
308
- 'endnodes': 'this',
309
- 'svg': self.adaptor.theme_dir + 'symbols/escape.svg'
310
- },//}}}
311
- 'description': self.adaptor.theme_dir + 'rngs/escape.rng',
312
- 'permissible_children': function(node,mode) { //{{{
313
- return [];
314
- }, //}}}
315
- 'adaptor': {//{{{
316
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
317
- 'click': self.events.click,
318
- 'mouseover': self.events.mouseover,
319
- 'mouseout': self.events.mouseout
320
- }//}}}
321
- }; /*}}}*/
322
- this.elements.stop = { /*{{{*/
323
- 'type': 'primitive',
324
- 'illustrator': {//{{{
325
- 'endnodes': 'this',
326
- 'svg': self.adaptor.theme_dir + 'symbols/stop.svg'
327
- },//}}}
328
- 'description': self.adaptor.theme_dir + 'rngs/stop.rng',
329
- 'permissible_children': function(node,mode) { //{{{
330
- return [];
331
- }, //}}}
332
- 'adaptor': {//{{{
333
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
334
- 'click': self.events.click,
335
- 'mouseover': self.events.mouseover,
336
- 'mouseout': self.events.mouseout
337
- }//}}}
338
- }; /*}}}*/
339
- this.elements.terminate = { /*{{{*/
340
- 'type': 'primitive',
341
- 'illustrator': {//{{{
342
- 'endnodes': 'this',
343
- 'final': true,
344
- 'svg': self.adaptor.theme_dir + 'symbols/terminate.svg'
345
- },//}}}
346
- 'description': self.adaptor.theme_dir + 'rngs/terminate.rng',
347
- 'permissible_children': function(node,mode) { //{{{
348
- return [];
349
- }, //}}}
350
- 'adaptor': {//{{{
351
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
352
- 'mouseover': self.events.mouseover,
353
- 'mouseout': self.events.mouseout
354
- }//}}}
355
- }; /*}}}*/
356
- this.elements.end = { /*{{{*/
357
- 'type': 'primitive',
358
- 'illustrator': {//{{{
359
- 'endnodes': 'this',
360
- 'svg': self.adaptor.theme_dir + 'symbols/end.svg'
361
- }, //}}}
362
- 'adaptor': {//{{{
363
- 'mousedown': function (node,e) {
364
- self.events.suppress();
365
- }
366
- }//}}}
367
- }; /*}}}*/
368
- this.elements.event_end = { /*{{{*/
369
- 'type': 'primitive',
370
- 'illustrator': {//{{{
371
- 'endnodes': 'this',
372
- 'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
373
- }, //}}}
374
- 'adaptor': {//{{{
375
- 'mousedown': function (node,e) {
376
- self.events.suppress();
377
- },
378
- 'click': self.events.click,
379
- 'dblclick': self.events.dblclick,
380
- 'mouseover': self.events.mouseover,
381
- 'mouseout': self.events.mouseout
382
- }//}}}
383
- }; /*}}}*/
384
- this.elements.choose_finish = { /*{{{*/
385
- 'type': 'primitive',
386
- 'illustrator': {//{{{
387
- 'endnodes': 'this',
388
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg',
389
- 'resolve_symbol': function(node) {
390
- if($(node).attr('mode') == 'exclusive') {
391
- return 'choose_exclusive_finish';
392
- } else {
393
- return 'choose_inclusive_finish';
394
- }
395
- },
396
- }, //}}}
397
- 'adaptor': {//{{{
398
- 'mousedown': function (node,e) {
399
- self.events.mousedown(node,e,true,true);
400
- },
401
- 'click': self.events.click,
402
- 'dblclick': self.events.dblclick,
403
- 'mouseover': self.events.mouseover,
404
- 'mouseout': self.events.mouseout
405
- }//}}}
406
- }; /*}}}*/
407
- this.elements.loop_finish = { /*{{{*/
408
- 'type': 'primitive',
409
- 'illustrator': {//{{{
410
- 'endnodes': 'this',
411
- 'closeblock': true,
412
- 'label': function(node){
413
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
414
- return ret;
415
- },
416
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg',
417
- }, //}}}
418
- 'adaptor': {//{{{
419
- 'mousedown': function (node,e) {
420
- self.events.mousedown(node,e,true,true);
421
- },
422
- 'click': self.events.click,
423
- 'dblclick': self.events.dblclick,
424
- 'mouseover': self.events.mouseover,
425
- 'mouseout': self.events.mouseout
426
- }//}}}
427
- }; /*}}}*/
428
- this.elements.parallel_finish = { /*{{{*/
429
- 'type': 'primitive',
430
- 'illustrator': {//{{{
431
- 'endnodes': 'this',
432
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
433
- 'resolve_symbol': function(node) {
434
- if($(node).attr('wait') == '-1') {
435
- return 'parallel_simple';
436
- } else {
437
- return 'parallel_complex';
438
- }
439
- },
440
- }, //}}}
441
- 'adaptor': {//{{{
442
- 'mousedown': function (node,e) {
443
- self.events.mousedown(node,e,true,true);
444
- },
445
- 'click': self.events.click,
446
- 'dblclick': self.events.dblclick,
447
- 'mouseover': self.events.mouseover,
448
- 'mouseout': self.events.mouseout
449
- }//}}}
450
- }; /*}}}*/
451
-
452
- // Complex Elements
453
- this.elements.choose = { /*{{{*/
454
- 'type': 'complex',
455
- 'illustrator': {//{{{
456
- 'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
457
- 'endnodes': 'aggregate',
458
- 'closeblock': false,
459
- 'closing_symbol': 'choose_finish',
460
- 'expansion': function(node) {
461
- return 'horizontal';
462
- },
463
- 'resolve_symbol': function(node) {
464
- if($(node).attr('mode') == 'exclusive') {
465
- return 'choose_exclusive';
466
- } else {
467
- return 'choose_inclusive';
468
- }
469
- },
470
- 'col_shift': function(node) {
471
- return false;
472
- },
473
- 'svg': self.adaptor.theme_dir + 'symbols/choose.svg'
474
- },//}}}
475
- 'description': self.adaptor.theme_dir + 'rngs/choose.rng',
476
- 'permissible_children': function(node,mode) { //{{{
477
- var func = null;
478
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
479
- else { func = self.adaptor.description.insert_after }
480
- if(node.children('parallel_branch').length > 0) {
481
- return [{'label': 'Parallel Branch',
482
- 'function_call': func,
483
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
484
- 'type': 'parallel_branch',
485
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
486
- }
487
- var childs = [{'label': 'Alternative',
488
- 'function_call': func,
489
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
490
- 'type': 'alternative',
491
- 'params': [self.adaptor.description.elements.alternative, node]}];
492
- if((node.children('otherwise').length == 0) && node.parents('parallel').length == node.parents('parallel_branch').length && node.parent('choose').length == 0)
493
- childs.push({'label': 'Otherwise',
494
- 'function_call': self.adaptor.description.insert_last_into,
495
- 'menu_icon': self.elements.otherwise.illustrator.svg.clone(),
496
- 'type': 'otherwise',
497
- 'params': [self.adaptor.description.elements.otherwise, node]});
498
- if(node.parents('parallel').length > node.parents('parallel_branch').length)
499
- childs.push({'label': 'Parallel Branch',
500
- 'function_call': func,
501
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
502
- 'type': 'parallel_branch',
503
- 'params': [self.adaptor.description.elements.parallel_branch, node]});
504
- return childs;
505
- }, //}}}
506
- 'adaptor': {//{{{
507
- 'mousedown': function (node,e) {
508
- self.events.mousedown(node,e,true,true);
509
- },
510
- 'click': self.events.click,
511
- 'dblclick': self.events.dblclick,
512
- 'mouseover': self.events.mouseover,
513
- 'mouseout': self.events.mouseout
514
- }//}}}
515
- }; /*}}}*/
516
- this.elements.otherwise = { /*{{{*/
517
- 'type': 'complex',
518
- 'illustrator': {//{{{
519
- 'endnodes': 'passthrough',
520
- 'closeblock': false,
521
- 'noarrow': true,
522
- 'expansion': function(node) {
523
- return 'vertical';
524
- },
525
- 'col_shift': function(node) {
526
- return false;
527
- },
528
- 'svg': self.adaptor.theme_dir + 'symbols/otherwise.svg'
529
- },//}}}
530
- 'description': self.adaptor.theme_dir + 'rngs/otherwise.rng',
531
- 'neverdelete': true,
532
- 'permissible_children': function(node,mode) { //{{{
533
- var func = null;
534
- var childs = null;
535
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
536
- else { func = self.adaptor.description.insert_after }
537
- var childs = [
538
- {'label': 'Task with Output Transformation',
539
- 'function_call': func,
540
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
541
- 'type': 'callmanipulate',
542
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
543
- {'label': 'Task',
544
- 'function_call': func,
545
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
546
- 'type': 'call',
547
- 'params': [self.adaptor.description.elements.call, node]},
548
- {'label': 'Script',
549
- 'function_call': func,
550
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
551
- 'type': 'manipulate',
552
- 'params': [self.adaptor.description.elements.manipulate, node]},
553
- {'label': 'Parallel',
554
- 'function_call': func,
555
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
556
- 'type': 'parallel',
557
- 'params': [self.adaptor.description.elements.parallel, node]},
558
- {'label': 'Decision',
559
- 'function_call': func,
560
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
561
- 'type': 'choose',
562
- 'params': [self.adaptor.description.elements.choose, node]},
563
- {'label': 'Loop',
564
- 'function_call': func,
565
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
566
- 'type': 'loop',
567
- 'params': [self.adaptor.description.elements.loop, node]},
568
- {'label': 'Terminate',
569
- 'function_call': func,
570
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
571
- 'type': 'terminate',
572
- 'params': [self.adaptor.description.elements.terminate, node]},
573
- {'label': 'Stop',
574
- 'function_call': func,
575
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
576
- 'type': 'stop',
577
- 'params': [self.adaptor.description.elements.stop, node]}
578
- ];
579
- if(node.parent('parallel_branch').length > 0) {
580
- childs.push({
581
- 'label': 'Critical',
582
- 'function_call': func,
583
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
584
- 'type': 'critical',
585
- 'params': [self.adaptor.description.elements.critical, node]
586
- });
587
- }
588
- return childs;
589
- }, //}}}
590
- 'adaptor': {//{{{
591
- 'mousedown': function (node,e) {
592
- self.events.mousedown(node,e,true,false);
593
- },
594
- 'click': self.events.click,
595
- 'dblclick': self.events.dblclick,
596
- 'mouseover': self.events.mouseover,
597
- 'mouseout': self.events.mouseout,
598
- }//}}}
599
- }; /*}}}*/
600
- this.elements.alternative = { /*{{{*/
601
- 'type': 'complex',
602
- 'illustrator': {//{{{
603
- 'label': function(node){
604
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
605
- return ret;
606
- },
607
- 'endnodes': 'passthrough',
608
- 'noarrow': true,
609
- 'closeblock':false,
610
- 'expansion': function(node) {
611
- return 'vertical';
612
- },
613
- 'col_shift': function(node) {
614
- return false;
615
- },
616
- 'svg': self.adaptor.theme_dir + 'symbols/alternative.svg'
617
- },//}}}
618
- 'description': self.adaptor.theme_dir + 'rngs/alternative.rng',
619
- 'permissible_children': function(node,mode) { //{{{
620
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
621
- else { func = self.adaptor.description.insert_after }
622
- if(node.parents('parallel').length > node.parents('parallel_branch').length && node.get(0).tagName == 'alternative') {
623
- return [{'label': 'Parallel Branch',
624
- 'function_call': func,
625
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
626
- 'type': 'parallel_branch',
627
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
628
- }
629
- var childs = [
630
- {'label': 'Task with Output Transformation',
631
- 'function_call': func,
632
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
633
- 'type': 'callmanipulate',
634
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
635
- {'label': 'Task',
636
- 'function_call': func,
637
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
638
- 'type': 'call',
639
- 'params': [self.adaptor.description.elements.call, node]},
640
- {'label': 'Script',
641
- 'function_call': func,
642
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
643
- 'type': 'manipulate',
644
- 'params': [self.adaptor.description.elements.manipulate, node]},
645
- {'label': 'Parallel',
646
- 'function_call': func,
647
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
648
- 'type': 'parallel',
649
- 'params': [self.adaptor.description.elements.parallel, node]},
650
- {'label': 'Decision',
651
- 'function_call': func,
652
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
653
- 'type': 'choose',
654
- 'params': [self.adaptor.description.elements.choose, node]},
655
- {'label': 'Loop',
656
- 'function_call': func,
657
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
658
- 'type': 'loop',
659
- 'params': [self.adaptor.description.elements.loop, node]},
660
- {'label': 'Terminate',
661
- 'function_call': func,
662
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
663
- 'type': 'terminate',
664
- 'params': [self.adaptor.description.elements.terminate, node]},
665
- {'label': 'Stop',
666
- 'function_call': func,
667
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
668
- 'type': 'stop',
669
- 'params': [self.adaptor.description.elements.stop, node]}
670
- ];
671
- if(node.parent('parallel_branch').length > 0) {
672
- childs.push({
673
- 'label': 'Critical',
674
- 'function_call': func,
675
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
676
- 'type': 'critical',
677
- 'params': [self.adaptor.description.elements.critical, node]
678
- });
679
- }
680
- return childs;
681
- }, //}}}
682
- 'adaptor': {//{{{
683
- 'mousedown': function (node,e) {
684
- self.events.mousedown(node,e,true,true);
685
- },
686
- 'click': self.events.click,
687
- 'dblclick': self.events.dblclick,
688
- 'mouseover': self.events.mouseover,
689
- 'mouseout': self.events.mouseout,
690
- }//}}}
691
- }; /*}}}*/
692
- this.elements.loop = { /*{{{*/
693
- 'type': 'complex',
694
- 'illustrator': {//{{{
695
- 'resolve_symbol': function(node) {
696
- if($(node).attr('mode') == 'pre_test') {
697
- return 'loop_head';
698
- } else {
699
- return 'loop_tail';
700
- }
701
- },
702
- 'expansion': function(node) {
703
- return 'vertical';
704
- },
705
- 'col_shift': function(node) {
706
- return true;
707
- },
708
- 'svg': self.adaptor.theme_dir + 'symbols/loop.svg'
709
- },// }}}
710
- 'description': self.adaptor.theme_dir + 'rngs/loop.rng',
711
- 'permissible_children': function(node,mode) { //{{{
712
- var func = null;
713
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
714
- else { func = self.adaptor.description.insert_after }
715
- var childs = [
716
- {'label': 'Task with Output Transformation',
717
- 'function_call': func,
718
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
719
- 'type': 'callmanipulate',
720
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
721
- {'label': 'Task',
722
- 'function_call': func,
723
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
724
- 'type': 'call',
725
- 'params': [self.adaptor.description.elements.call, node]},
726
- {'label': 'Script',
727
- 'function_call': func,
728
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
729
- 'type': 'manipulate',
730
- 'params': [self.adaptor.description.elements.manipulate, node]},
731
- {'label': 'Decision',
732
- 'function_call': func,
733
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
734
- 'type': 'choose',
735
- 'params': [self.adaptor.description.elements.choose, node]},
736
- {'label': 'Loop',
737
- 'function_call': func,
738
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
739
- 'type': 'loop',
740
- 'params': [self.adaptor.description.elements.loop, node]},
741
- {'label': 'Terminate',
742
- 'function_call': func,
743
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
744
- 'type': 'terminate',
745
- 'params': [self.adaptor.description.elements.terminate, node]},
746
- {'label': 'Stop',
747
- 'function_call': func,
748
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
749
- 'type': 'stop',
750
- 'params': [self.adaptor.description.elements.stop, node]}
751
- ];
752
- if(node.parent('parallel_branch').length > 0) {
753
- childs.push({
754
- 'label': 'Critical',
755
- 'function_call': func,
756
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
757
- 'type': 'critical',
758
- 'params': [self.adaptor.description.elements.critical, node]
759
- });
760
- }
761
- if(node.parent('parallel').length > node.parent('parallel_branch').length) {
762
- childs.push({'label': 'Parallel Branch',
763
- 'function_call': func,
764
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
765
- 'type': 'parallel_branch',
766
- 'params': [self.adaptor.description.elements.parallel_branch, node]}
767
- );
768
- } else {
769
- childs.push({'label': 'Parallel',
770
- 'function_call': func,
771
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
772
- 'type': 'parallel',
773
- 'params': [self.adaptor.description.elements.parallel, node]}
774
- );
775
- }
776
- return childs;
777
- }, //}}}
778
- 'adaptor': {//{{{
779
- 'mousedown': function (node,e) {
780
- self.events.mousedown(node,e,true,true);
781
- },
782
- 'click': self.events.click,
783
- 'dblclick': self.events.dblclick,
784
- 'mouseover': self.events.mouseover,
785
- 'mouseout': self.events.mouseout,
786
- }//}}}
787
- }; /*}}}*/
788
- this.elements.parallel = { /*{{{*/
789
- 'type': 'complex',
790
- 'illustrator': {//{{{
791
- 'endnodes': 'aggregate',
792
- 'closeblock': false,
793
- 'closing_symbol': 'parallel_finish',
794
- 'expansion': function(node) {
795
- // check if any sibling other than 'parallel_branch' is present
796
- if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
797
- return 'horizontal';
798
- },
799
- 'col_shift': function(node) {
800
- return true;
801
- },
802
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
803
- },//}}}
804
- 'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
805
- 'permissible_children': function(node,mode) { //{{{
806
- var func = null;
807
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
808
- else { func = self.adaptor.description.insert_after }
809
- var childs = [
810
- {'label': 'Parallel Branch',
811
- 'function_call': func,
812
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
813
- 'type': 'parallel_branch',
814
- 'params': [self.adaptor.description.elements.parallel_branch, node]},
815
- ];
816
- return childs;
817
- }, //}}}
818
- 'permissible_children_expert': function(node,mode) { //{{{
819
- var func = null;
820
- if (mode.match(/into/)) { func = self.adaptor.description.insert_first_into }
821
- else { func = self.adaptor.description.insert_after }
822
- var childs = [
823
- {'label': 'Task with Output Transformation',
824
- 'function_call': func,
825
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
826
- 'type': 'callmanipulate',
827
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
828
- {'label': 'Task',
829
- 'function_call': func,
830
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
831
- 'type': 'call',
832
- 'params': [self.adaptor.description.elements.call, node]},
833
- {'label': 'Script',
834
- 'function_call': func,
835
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
836
- 'type': 'manipulate',
837
- 'params': [self.adaptor.description.elements.manipulate, node]},
838
- {'label': 'Decision',
839
- 'function_call': func,
840
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
841
- 'type': 'choose',
842
- 'params': [self.adaptor.description.elements.choose, node]},
843
- {'label': 'Loop',
844
- 'function_call': func,
845
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
846
- 'type': 'loop',
847
- 'params': [self.adaptor.description.elements.loop, node]},
848
- {'label': 'Stop',
849
- 'function_call': func,
850
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
851
- 'type': 'stop',
852
- 'params': [self.adaptor.description.elements.stop, node]}
853
- ];
854
- if(node.get(0).tagName != 'parallel')
855
- childs.push({'label': 'Parallel',
856
- 'function_call': self.adaptor.description.insert_last_into,
857
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
858
- 'type': 'parallel',
859
- 'params': [self.adaptor.description.elements.parallel, node]});
860
- return childs;
861
- }, //}}}
862
- 'adaptor': {//{{{
863
- 'mousedown': function (node,e) {
864
- self.events.mousedown(node,e,true,true);
865
- },
866
- 'click': self.events.click,
867
- 'dblclick': self.events.dblclick,
868
- 'mouseover': self.events.mouseover,
869
- 'mouseout': self.events.mouseout,
870
- }//}}}
871
- }; /*}}}*/
872
- this.elements.parallel_branch = { /*{{{*/
873
- 'type': 'complex',
874
- 'illustrator': {//{{{
875
- 'endnodes': 'passthrough',
876
- 'closeblock': false,
877
- 'noarrow': true,
878
- 'expansion': function(node) {
879
- return 'vertical';
880
- },
881
- 'resolve_symbol': function(node,shift) {
882
- if(shift == true) {
883
- return 'parallel_branch_event';
884
- } else {
885
- return 'parallel_branch_normal';
886
- }
887
- },
888
- 'col_shift': function(node) {
889
- if(node.parentNode.tagName == 'choose') return false;
890
- if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
891
- return false;
892
- },
893
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch.svg'
894
- },//}}}
895
- 'description': self.adaptor.theme_dir + 'rngs/parallel_branch.rng',
896
- 'permissible_children': function(node,mode) { //{{{
897
- var func = null;
898
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
899
- else { func = self.adaptor.description.insert_after }
900
- var childs = [
901
- {'label': 'Task with Output Transformation',
902
- 'function_call': func,
903
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
904
- 'type': 'callmanipulate',
905
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
906
- {'label': 'Task',
907
- 'function_call': func,
908
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
909
- 'type': 'call',
910
- 'params': [self.adaptor.description.elements.call, node]},
911
- {'label': 'Script',
912
- 'function_call': func,
913
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
914
- 'type': 'manipulate',
915
- 'params': [self.adaptor.description.elements.manipulate, node]},
916
- {'label': 'Parallel',
917
- 'function_call': func,
918
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
919
- 'type': 'parallel',
920
- 'params': [self.adaptor.description.elements.parallel, node]},
921
- {'label': 'Decision',
922
- 'function_call': func,
923
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
924
- 'type': 'choose',
925
- 'params': [self.adaptor.description.elements.choose, node]},
926
- {'label': 'Loop',
927
- 'function_call': func,
928
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
929
- 'type': 'loop',
930
- 'params': [self.adaptor.description.elements.loop, node]},
931
- {'label': 'Terminate',
932
- 'function_call': func,
933
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
934
- 'type': 'terminate',
935
- 'params': [self.adaptor.description.elements.terminate, node]},
936
- {'label': 'Stop',
937
- 'function_call': func,
938
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
939
- 'type': 'stop',
940
- 'params': [self.adaptor.description.elements.stop, node]},
941
- {'label': 'Critical',
942
- 'function_call': func,
943
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
944
- 'type': 'critical',
945
- 'params': [self.adaptor.description.elements.critical, node]}
946
- ];
947
- if(node.parents('choose').length > node.parents('alternative, otherwise').length && node.get(0).tagName == 'parallel_branch') {
948
- return [{'label': 'Alternative',
949
- 'function_call': func,
950
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
951
- 'type': 'alternative',
952
- 'params': [self.adaptor.description.elements.alternative, node]}];
953
- }
954
- return childs;
955
- }, //}}}
956
- 'adaptor': {//{{{
957
- 'mousedown': function (node,e) {
958
- self.events.mousedown(node,e,true,true);
959
- },
960
- 'click': self.events.click,
961
- 'dblclick': self.events.dblclick,
962
- 'mouseover': self.events.mouseover,
963
- 'mouseout': self.events.mouseout,
964
- }//}}}
965
- }; /*}}}*/
966
- this.elements.critical = { /*{{{*/
967
- 'type': 'complex',
968
- 'illustrator': {//{{{
969
- 'endnodes': 'aggregate',
970
- 'closeblock': false,
971
- 'border': true,
972
- 'expansion': function(node) {
973
- return 'vertical';
974
- },
975
- 'col_shift': function(node) {
976
- return true;
977
- },
978
- 'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
979
- },//}}}
980
- 'description': self.adaptor.theme_dir + 'rngs/critical.rng',
981
- 'permissible_children': function(node,mode) { //{{{
982
- var func = null;
983
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
984
- else { func = self.adaptor.description.insert_after }
985
- var childs = [
986
- {'label': 'Task with Output Transformation',
987
- 'function_call': func,
988
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
989
- 'type': 'callmanipulate',
990
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
991
- {'label': 'Task',
992
- 'function_call': func,
993
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
994
- 'type': 'call',
995
- 'params': [self.adaptor.description.elements.call, node]},
996
- {'label': 'Script',
997
- 'function_call': func,
998
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
999
- 'type': 'manipulate',
1000
- 'params': [self.adaptor.description.elements.manipulate, node]},
1001
- {'label': 'Parallel',
1002
- 'function_call': func,
1003
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1004
- 'type': 'parallel',
1005
- 'params': [self.adaptor.description.elements.parallel, node]},
1006
- {'label': 'Decision',
1007
- 'function_call': func,
1008
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1009
- 'type': 'choose',
1010
- 'params': [self.adaptor.description.elements.choose, node]},
1011
- {'label': 'Loop',
1012
- 'function_call': func,
1013
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1014
- 'type': 'loop',
1015
- 'params': [self.adaptor.description.elements.loop, node]},
1016
- {'label': 'Terminate',
1017
- 'function_call': func,
1018
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
1019
- 'type': 'terminate',
1020
- 'params': [self.adaptor.description.elements.terminate, node]},
1021
- {'label': 'Stop',
1022
- 'function_call': func,
1023
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1024
- 'type': 'stop',
1025
- 'params': [self.adaptor.description.elements.stop, node]}
1026
- ];
1027
- if(node.parent('parallel_branch').length > 0) {
1028
- childs.push({
1029
- 'label': 'Critical',
1030
- 'function_call': func,
1031
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
1032
- 'type': 'critical',
1033
- 'params': [self.adaptor.description.elements.critical, node]
1034
- });
1035
- }
1036
- return childs;
1037
- }, //}}}
1038
- 'adaptor': {//{{{
1039
- 'mousedown': function (node,e) {
1040
- self.events.mousedown(node,e,true,true);
1041
- },
1042
- 'click': self.events.click,
1043
- 'dblclick': self.events.dblclick,
1044
- 'mouseover': self.events.mouseover,
1045
- 'mouseout': self.events.mouseout,
1046
- }//}}}
1047
- }; /*}}}*/
1048
- this.elements.group = { /*{{{*/
1049
- 'type': 'complex',
1050
- 'illustrator': {//{{{
1051
- 'endnodes': 'aggregate',
1052
- 'closeblock': false,
1053
- 'border': 'injectiongroup', // other value than true,false inidcates the used class for the svg-object
1054
- 'expansion': function(node) {
1055
- return 'vertical';
1056
- },
1057
- 'col_shift': function(node) {
1058
- return true;
1059
- },
1060
- 'svg': null
1061
- },//}}}
1062
- 'description': self.adaptor.theme_dir + 'rngs/group.rng',
1063
- 'permissible_children': function(node,mode) { //{{{
1064
- var func = null;
1065
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1066
- else { func = self.adaptor.description.insert_after }
1067
- return [
1068
- ];
1069
- }, //}}}
1070
- 'adaptor': {//{{{
1071
- 'mousedown': function (node,e) {
1072
- self.events.mousedown(node,e,true,true);
1073
- },
1074
- 'click': self.events.click,
1075
- 'dblclick': self.events.dblclick,
1076
- 'mouseover': self.events.mouseover,
1077
- 'mouseout': self.events.mouseout,
1078
- }//}}}
1079
- }; /*}}}*/
1080
- this.elements.start = this.elements.description = { /*{{{*/
1081
- 'type': 'description',
1082
- 'illustrator': {//{{{
1083
- 'endnodes': 'passthrough',
1084
- 'closeblock': false,
1085
- 'balance': true,
1086
- 'expansion': function(node) {
1087
- return 'vertical';
1088
- },
1089
- 'closing_symbol': 'end',
1090
- 'col_shift': function(node) {
1091
- return true;
1092
- },
1093
- 'svg': self.adaptor.theme_dir + 'symbols/start.svg'
1094
- },//}}}
1095
- 'description': null,
1096
- 'permissible_children': function(node,mode) { //{{{
1097
- var func = null;
1098
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
1099
- else { func = self.adaptor.description.insert_after }
1100
- var childs = [
1101
- {'label': 'Task with Output Transformation',
1102
- 'function_call': func,
1103
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
1104
- 'type': 'callmanipulate',
1105
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
1106
- {'label': 'Task',
1107
- 'function_call': func,
1108
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
1109
- 'type': 'call',
1110
- 'params': [self.adaptor.description.elements.call, node]},
1111
- {'label': 'Script',
1112
- 'function_call': func,
1113
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
1114
- 'type': 'manipulate',
1115
- 'params': [self.adaptor.description.elements.manipulate, node]},
1116
- {'label': 'Parallel',
1117
- 'function_call': func,
1118
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
1119
- 'type': 'parallel',
1120
- 'params': [self.adaptor.description.elements.parallel, node]},
1121
- {'label': 'Decision',
1122
- 'function_call': func,
1123
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
1124
- 'type': 'choose',
1125
- 'params': [self.adaptor.description.elements.choose, node]},
1126
- {'label': 'Loop',
1127
- 'function_call': func,
1128
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
1129
- 'type': 'loop',
1130
- 'params': [self.adaptor.description.elements.loop, node]},
1131
- {'label': 'Stop',
1132
- 'function_call': func,
1133
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
1134
- 'type': 'stop',
1135
- 'params': [self.adaptor.description.elements.stop, node]}
1136
- ];
1137
- if(node.parent('parallel_branch').length > 0) {
1138
- childs.push({
1139
- 'label': 'Critical',
1140
- 'function_call': func,
1141
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
1142
- 'type': 'critical',
1143
- 'params': [self.adaptor.description.elements.critical, node]
1144
- });
1145
- }
1146
- return childs;
1147
- }, //}}}
1148
- 'adaptor': {//{{{
1149
- 'mousedown': function (node,e) {
1150
- self.events.mousedown(node,e,true,false);
1151
- },
1152
- 'click': self.events.click,
1153
- 'dblclick': self.events.dblclick,
1154
- 'mouseover': self.events.mouseover,
1155
- 'mouseout': self.events.mouseout,
1156
- }//}}}
1157
- }; /*}}}*/
1158
-
1159
- // Abstract Elements
1160
- // * they may only have an illustrator (or other parts)
1161
- // * they HAVE TO have a parent
1162
- this.elements.callmanipulate = { /*{{{*/
1163
- 'parent': 'call',
1164
- 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
1165
- 'illustrator': {//{{{
1166
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
1167
- 'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
1168
- },//}}}
1169
- }; /*}}}*/
1170
- this.elements.loop_head = { /*{{{*/
1171
- 'parent': 'loop',
1172
- 'illustrator': {//{{{
1173
- 'endnodes': 'this',
1174
- 'closeblock': true,
1175
- 'label': function(node){
1176
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
1177
- return ret;
1178
- },
1179
- }//}}}
1180
- }; /*}}}*/
1181
- this.elements.loop_tail = { /*{{{*/
1182
- 'parent': 'loop',
1183
- 'illustrator': {//{{{
1184
- 'endnodes': 'aggregate',
1185
- 'closeblock': false,
1186
- 'closing_symbol': 'loop_finish'
1187
- },//}}}
1188
- }; /*}}}*/
1189
- this.elements.choose_inclusive = { /*{{{*/
1190
- 'parent': 'choose',
1191
- 'illustrator': {//{{{
1192
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1193
- }//}}}
1194
- }; /*}}}*/
1195
- this.elements.choose_exclusive = { /*{{{*/
1196
- 'parent': 'choose',
1197
- 'illustrator': {//{{{
1198
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1199
- },//}}}
1200
- }; /*}}}*/
1201
- this.elements.choose_inclusive_finish = { /*{{{*/
1202
- 'parent': 'choose_finish',
1203
- 'illustrator': {//{{{
1204
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1205
- }//}}}
1206
- }; /*}}}*/
1207
- this.elements.choose_exclusive_finish = { /*{{{*/
1208
- 'parent': 'choose_finish',
1209
- 'illustrator': {//{{{
1210
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1211
- },//}}}
1212
- }; /*}}}*/
1213
- this.elements.loop_head_finish = { /*{{{*/
1214
- 'parent': 'loop_finish',
1215
- 'illustrator': {//{{{
1216
- 'endnodes': 'this',
1217
- 'closeblock': true,
1218
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1219
- }//}}}
1220
- }; /*}}}*/
1221
- this.elements.loop_tail_finish = { /*{{{*/
1222
- 'parent': 'loop_finish',
1223
- 'illustrator': {//{{{
1224
- 'endnodes': 'this',
1225
- 'closeblock': false,
1226
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1227
- },//}}}
1228
- }; /*}}}*/
1229
- this.elements.parallel_simple = { /*{{{*/
1230
- 'parent': 'parallel_finish',
1231
- 'illustrator': {//{{{
1232
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
1233
- }//}}}
1234
- }; /*}}}*/
1235
- this.elements.parallel_complex = { /*{{{*/
1236
- 'parent': 'parallel_finish',
1237
- 'illustrator': {//{{{
1238
- 'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
1239
- },//}}}
1240
- }; /*}}}*/
1241
- this.elements.parallel_branch_normal = { /*{{{*/
1242
- 'parent': 'parallel_branch',
1243
- 'illustrator': {//{{{
1244
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_normal.svg'
1245
- }//}}}
1246
- }; /*}}}*/
1247
- this.elements.parallel_branch_event = { /*{{{*/
1248
- 'parent': 'parallel_branch',
1249
- 'illustrator': {//{{{
1250
- 'endnodes': 'this',
1251
- 'noarrow': false,
1252
- 'border': true,
1253
- 'wide': true,
1254
- 'closing_symbol': 'event_end',
1255
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
1256
- }//}}}
1257
- }; /*}}}*/
1258
- this.elements.parallel_branch_compact = { /*{{{*/
1259
- 'parent': 'parallel_branch',
1260
- 'illustrator': {//{{{
1261
- 'endnodes': 'this',
1262
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
1263
- }//}}}
1264
- }; /*}}}*/
1265
- this.elements.scripts = { /*{{{*/
1266
- 'description': [self.adaptor.theme_dir + 'rngs/scripts.rng']
1267
- }; /*}}}*/
1268
- }