cpee 1.4.31 → 1.4.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/ui.css +25 -6
  3. data/cockpit/css/wfadaptor.css +20 -10
  4. data/cockpit/graph.html +7 -2
  5. data/cockpit/index.html +2 -3
  6. data/cockpit/js/details.js +3 -0
  7. data/cockpit/js/instance.js +70 -20
  8. data/cockpit/js/ui.js +32 -5
  9. data/cockpit/js/wfadaptor.js +70 -42
  10. data/cockpit/themes/compact/theme.js +55 -46
  11. data/cockpit/themes/default/symbols/otherwise.svg +2 -1
  12. data/cockpit/themes/{promise/symbols/choose.svg → default/symbols/parallel_branch_compact.svg} +2 -2
  13. data/cockpit/themes/default/theme.js +39 -44
  14. data/cockpit/themes/extended/theme.js +252 -60
  15. data/cockpit/themes/{lego → packed}/theme.js +492 -105
  16. data/cockpit/track.html +39 -32
  17. data/cpee.gemspec +1 -1
  18. data/lib/cpee/controller.rb +2 -0
  19. data/lib/cpee/instantiation.rb +22 -5
  20. data/lib/cpee/value_helper.rb +1 -1
  21. data/lib/instantiation.xml +3 -0
  22. data/log/elasticsearch_logging.rb +189 -50
  23. data/server/handlerwrappers/default.rb +3 -3
  24. data/server/server.pid +1 -0
  25. metadata +5 -53
  26. data/cockpit/themes/lego/rngs/alternative.rng +0 -5
  27. data/cockpit/themes/lego/rngs/call.rng +0 -41
  28. data/cockpit/themes/lego/rngs/choose.rng +0 -8
  29. data/cockpit/themes/lego/rngs/critical.rng +0 -5
  30. data/cockpit/themes/lego/rngs/loop.rng +0 -11
  31. data/cockpit/themes/lego/rngs/manipulate.rng +0 -6
  32. data/cockpit/themes/lego/rngs/parallel.rng +0 -5
  33. data/cockpit/themes/lego/rngs/parallel_branch.rng +0 -8
  34. data/cockpit/themes/lego/symbols/alternative.svg +0 -4
  35. data/cockpit/themes/lego/symbols/call.svg +0 -4
  36. data/cockpit/themes/lego/symbols/callmanipulate.svg +0 -6
  37. data/cockpit/themes/lego/symbols/callori.svg +0 -4
  38. data/cockpit/themes/lego/symbols/choose.svg +0 -4
  39. data/cockpit/themes/lego/symbols/choose_exclusive.svg +0 -5
  40. data/cockpit/themes/lego/symbols/choose_inclusive.svg +0 -4
  41. data/cockpit/themes/lego/symbols/critical.svg +0 -4
  42. data/cockpit/themes/lego/symbols/escape.svg +0 -5
  43. data/cockpit/themes/lego/symbols/lego.svg +0 -72
  44. data/cockpit/themes/lego/symbols/loop.svg +0 -5
  45. data/cockpit/themes/lego/symbols/manipulate.svg +0 -4
  46. data/cockpit/themes/lego/symbols/otherwise.svg +0 -4
  47. data/cockpit/themes/lego/symbols/parallel.svg +0 -6
  48. data/cockpit/themes/lego/symbols/parallel_branch.svg +0 -4
  49. data/cockpit/themes/lego/symbols/scripts.svg +0 -4
  50. data/cockpit/themes/lego/symbols/start.svg +0 -3
  51. data/cockpit/themes/promise/rngs/alternative.rng +0 -5
  52. data/cockpit/themes/promise/rngs/call.rng +0 -41
  53. data/cockpit/themes/promise/rngs/choose.rng +0 -8
  54. data/cockpit/themes/promise/rngs/critical.rng +0 -5
  55. data/cockpit/themes/promise/rngs/loop.rng +0 -11
  56. data/cockpit/themes/promise/rngs/manipulate.rng +0 -6
  57. data/cockpit/themes/promise/rngs/parallel.rng +0 -5
  58. data/cockpit/themes/promise/rngs/parallel_branch.rng +0 -8
  59. data/cockpit/themes/promise/symbols/alternative.svg +0 -4
  60. data/cockpit/themes/promise/symbols/call.svg +0 -4
  61. data/cockpit/themes/promise/symbols/callmanipulate.svg +0 -6
  62. data/cockpit/themes/promise/symbols/choose_exclusive.svg +0 -5
  63. data/cockpit/themes/promise/symbols/choose_inclusive.svg +0 -4
  64. data/cockpit/themes/promise/symbols/critical.svg +0 -4
  65. data/cockpit/themes/promise/symbols/escape.svg +0 -5
  66. data/cockpit/themes/promise/symbols/loop.svg +0 -5
  67. data/cockpit/themes/promise/symbols/manipulate.svg +0 -4
  68. data/cockpit/themes/promise/symbols/otherwise.svg +0 -4
  69. data/cockpit/themes/promise/symbols/parallel.svg +0 -6
  70. data/cockpit/themes/promise/symbols/parallel_branch.svg +0 -4
  71. data/cockpit/themes/promise/symbols/preminder.svg +0 -6
  72. data/cockpit/themes/promise/symbols/scripts.svg +0 -4
  73. data/cockpit/themes/promise/symbols/start.svg +0 -3
  74. data/cockpit/themes/promise/theme.js +0 -801
@@ -1,4 +1,5 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <circle cx="15" cy="15" r="9" class="standtrans"/>
2
+ <circle cx="15" cy="15" r="11" class="hfill standtrans"/>
3
3
  <line x1="9" y1="21" x2="21" y2="9" class="stand cline hline"/>
4
+ <line x1="15.6" y1="4" x2="15.6" y2="27" class="ourline"/>
4
5
  </svg>
@@ -1,4 +1,4 @@
1
1
  <svg class="clickable" xmlns="http://www.w3.org/2000/svg">
2
- <rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="stand"/>
3
- <circle cx="15.5" cy="15.5" r="7" class="stand"/>
2
+ <rect transform="rotate(45,14,12)" x="7" y="3" width="21" height="21" class="cline hfill stand"/>
3
+ <text transform="translate(15,20)" class="small">|||</text>
4
4
  </svg>
@@ -6,6 +6,7 @@ function WFAdaptorManifestation(adaptor) {
6
6
  this.elements = {};
7
7
  this.events = {};
8
8
  this.compact = false;
9
+ this.striped = false;
9
10
  this.endpoints = {};
10
11
 
11
12
  //{{{ transform the details data to description parts based on rng
@@ -64,6 +65,9 @@ function WFAdaptorManifestation(adaptor) {
64
65
  var schema = save['endpoints_cache'][$(node).attr('endpoint')].schema.documentElement;
65
66
  $(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
66
67
  }
68
+ if (save['endpoints_list'][$(node).attr('endpoint')] && !save['endpoints_list'][$(node).attr('endpoint')].startsWith('http')) {
69
+ $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
70
+ }
67
71
  save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
68
72
  save['details'].content(node);
69
73
  format_visual_forms();
@@ -196,6 +200,7 @@ function WFAdaptorManifestation(adaptor) {
196
200
  }
197
201
 
198
202
  self.adaptor.illustrator.get_elements().removeClass('selected');
203
+ self.adaptor.illustrator.get_labels().removeClass('selected');
199
204
 
200
205
  if (e && e.ctrlKey) {
201
206
  if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
@@ -212,6 +217,7 @@ function WFAdaptorManifestation(adaptor) {
212
217
  if (vtarget.length > 0) {
213
218
  vtarget.parents('g.element[element-id]').addClass('selected');
214
219
  }
220
+ self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
215
221
 
216
222
  self.update_details(svgid);
217
223
  }
@@ -219,11 +225,15 @@ function WFAdaptorManifestation(adaptor) {
219
225
  this.events.dblclick = function(svgid, e) { // {{{
220
226
  } // }}}
221
227
  this.events.mouseover = function(svgid, e) { // {{{
222
- $('.tile[element-id = "' + svgid + '"]').css('display','block');
228
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
229
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
230
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
223
231
  return false;
224
232
  } // }}}
225
233
  this.events.mouseout = function(svgid, e) { // {{{
226
- $('.tile[element-id = "' + svgid + '"]').css('display','none');
234
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
235
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
236
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
227
237
  return false;
228
238
  } // }}}
229
239
  this.events.dragstart = function (svgid, e) { //{{{
@@ -238,27 +248,7 @@ function WFAdaptorManifestation(adaptor) {
238
248
  'illustrator': {//{{{
239
249
  'endnodes': 'this',
240
250
  'label': function(node){
241
- var ep = self.endpoints[$(node).attr('endpoint')];
242
- var eplen = 1;
243
- if (ep != undefined && ep[0] == '[') {
244
- try {
245
- eplen = JSON.parse(ep).length;
246
- } catch(e) {
247
- eplen = 1;
248
- }
249
- } else {
250
- eplen = 1;
251
- }
252
- var avg = $('> _timing_avg',$(node).children('_timing')).text();
253
- var lnd = $(node).attr('endpoint');
254
251
  var ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') } ];
255
- if (lnd != '') {
256
- ret.push({ column: 'Resource', value: lnd });
257
- ret.push({ column: 'R#', value: eplen });
258
- }
259
- if (avg != '') {
260
- ret.push({ column: 'Average', value: avg + 'min' });
261
- }
262
252
  return ret;
263
253
  },
264
254
  'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
@@ -283,11 +273,13 @@ function WFAdaptorManifestation(adaptor) {
283
273
  ];
284
274
  return [];
285
275
  }, //}}}
286
- 'adaptor': {//{{{
287
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
288
- 'click': self.events.click,
289
- 'dragstart': self.events.dragstart,
290
- }//}}}
276
+ 'adaptor': {//{{{
277
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
278
+ 'click': self.events.click,
279
+ 'dragstart': self.events.dragstart,
280
+ 'mouseover': self.events.mouseover,
281
+ 'mouseout': self.events.mouseout
282
+ }//}}}
291
283
  }; /*}}}*/
292
284
  this.elements.manipulate = { /*{{{*/
293
285
  'type': 'primitive',
@@ -307,10 +299,12 @@ function WFAdaptorManifestation(adaptor) {
307
299
  'permissible_children': function(node,mode) { //{{{
308
300
  return [];
309
301
  }, //}}}
310
- 'adaptor': {//{{{
311
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
312
- 'click': self.events.click,
313
- }//}}}
302
+ 'adaptor': {//{{{
303
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
304
+ 'click': self.events.click,
305
+ 'mouseover': self.events.mouseover,
306
+ 'mouseout': self.events.mouseout
307
+ }//}}}
314
308
  }; /*}}}*/
315
309
  this.elements.escape = { /*{{{*/
316
310
  'type': 'primitive',
@@ -325,6 +319,8 @@ function WFAdaptorManifestation(adaptor) {
325
319
  'adaptor': {//{{{
326
320
  'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
327
321
  'click': self.events.click,
322
+ 'mouseover': self.events.mouseover,
323
+ 'mouseout': self.events.mouseout
328
324
  }//}}}
329
325
  }; /*}}}*/
330
326
  this.elements.stop = { /*{{{*/
@@ -340,6 +336,8 @@ function WFAdaptorManifestation(adaptor) {
340
336
  'adaptor': {//{{{
341
337
  'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
342
338
  'click': self.events.click,
339
+ 'mouseover': self.events.mouseover,
340
+ 'mouseout': self.events.mouseout
343
341
  }//}}}
344
342
  }; /*}}}*/
345
343
  this.elements.terminate = { /*{{{*/
@@ -355,6 +353,8 @@ function WFAdaptorManifestation(adaptor) {
355
353
  }, //}}}
356
354
  'adaptor': {//{{{
357
355
  'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
356
+ 'mouseover': self.events.mouseover,
357
+ 'mouseout': self.events.mouseout
358
358
  }//}}}
359
359
  }; /*}}}*/
360
360
  this.elements.end = { /*{{{*/
@@ -493,16 +493,12 @@ function WFAdaptorManifestation(adaptor) {
493
493
  'click': self.events.click,
494
494
  'dblclick': self.events.dblclick,
495
495
  'mouseover': self.events.mouseover,
496
- 'mouseout': self.events.mouseout,
496
+ 'mouseout': self.events.mouseout
497
497
  }//}}}
498
498
  }; /*}}}*/
499
499
  this.elements.otherwise = { /*{{{*/
500
500
  'type': 'complex',
501
501
  'illustrator': {//{{{
502
- 'label': function(node){
503
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
504
- return (avg == '' ? [] : [ {}, {}, {}, {}, { column: 'Average', value: avg + '%' } ]);
505
- },
506
502
  'endnodes': 'passthrough',
507
503
  'closeblock': false,
508
504
  'noarrow': true,
@@ -583,11 +579,7 @@ function WFAdaptorManifestation(adaptor) {
583
579
  'type': 'complex',
584
580
  'illustrator': {//{{{
585
581
  'label': function(node){
586
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
587
582
  var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
588
- if (avg != '') {
589
- ret.push({}, {}, {}, {},{ column: 'Average', value: avg + '%' });
590
- }
591
583
  return ret;
592
584
  },
593
585
  'endnodes': 'passthrough',
@@ -674,11 +666,7 @@ function WFAdaptorManifestation(adaptor) {
674
666
  'type': 'complex',
675
667
  'illustrator': {//{{{
676
668
  'label': function(node){
677
- var avg = $('> _probability_avg',$(node).children('_probability')).text();
678
669
  var ret = [ { column: 'Label', value: $(node).attr('condition') + ($(node).attr('mode') == 'pre_test' ? ' (⭱)' : ' (⭳)') } ];
679
- if (avg != '') {
680
- ret.push({ column: 'Average', value: avg + '⨉' });
681
- }
682
670
  return ret;
683
671
  },
684
672
  'endnodes': 'this',
@@ -1188,6 +1176,13 @@ function WFAdaptorManifestation(adaptor) {
1188
1176
  'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
1189
1177
  }//}}}
1190
1178
  }; /*}}}*/
1179
+ this.elements.parallel_branch_compact = { /*{{{*/
1180
+ 'parent': 'parallel_branch',
1181
+ 'illustrator': {//{{{
1182
+ 'endnodes': 'this',
1183
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
1184
+ }//}}}
1185
+ }; /*}}}*/
1191
1186
  this.elements.scripts = { /*{{{*/
1192
1187
  'description': [self.adaptor.theme_dir + 'rngs/update.rng',self.adaptor.theme_dir + 'rngs/finalize.rng']
1193
1188
  }; /*}}}*/
@@ -6,10 +6,9 @@ function WFAdaptorManifestation(adaptor) {
6
6
  this.elements = {};
7
7
  this.events = {};
8
8
  this.compact = false;
9
+ this.striped = true;
9
10
  this.endpoints = {};
10
11
 
11
- this.noarrow = ['alternative', 'otherwise'];
12
-
13
12
  //{{{ transform the details data to description parts based on rng
14
13
  this.source = function(base,opts) {
15
14
  if (base[0].namespaceURI == "http://relaxng.org/ns/structure/1.0") {
@@ -34,11 +33,11 @@ function WFAdaptorManifestation(adaptor) {
34
33
  return base;
35
34
  }
36
35
  }; //}}}
37
- //{{{ Return the svgid for the clicked task
38
- this.clicked = function(){
36
+ //{{{ Return the svgid for the selected task
37
+ this.selected = function(){
39
38
  var svgid = 'unknown';
40
39
  _.each(self.adaptor.illustrator.get_elements(),function(value,key) {
41
- if ($(value).hasClass('clicked')) {
40
+ if ($(value).hasClass('selected')) {
42
41
  svgid = $(value).attr('element-id');
43
42
  }
44
43
  });
@@ -66,6 +65,9 @@ function WFAdaptorManifestation(adaptor) {
66
65
  var schema = save['endpoints_cache'][$(node).attr('endpoint')].schema.documentElement;
67
66
  $(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
68
67
  }
68
+ if (save['endpoints_list'][$(node).attr('endpoint')] && !save['endpoints_list'][$(node).attr('endpoint')].startsWith('http')) {
69
+ $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
70
+ }
69
71
  save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
70
72
  save['details'].content(node);
71
73
  format_visual_forms();
@@ -189,12 +191,16 @@ function WFAdaptorManifestation(adaptor) {
189
191
  }
190
192
  return false;
191
193
  } // }}}
194
+ this.events.suppress = function(svgid, e, child, sibling) { // {{{
195
+ return false;
196
+ } // }}}
192
197
  this.events.click = function(svgid, e) { // {{{
193
198
  if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
194
199
  return;
195
200
  }
196
201
 
197
- self.adaptor.illustrator.get_elements().removeClass('clicked');
202
+ self.adaptor.illustrator.get_elements().removeClass('selected');
203
+ self.adaptor.illustrator.get_labels().removeClass('selected');
198
204
 
199
205
  if (e && e.ctrlKey) {
200
206
  if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
@@ -209,8 +215,9 @@ function WFAdaptorManifestation(adaptor) {
209
215
 
210
216
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
211
217
  if (vtarget.length > 0) {
212
- vtarget.parents('g.element[element-id]').addClass('clicked');
218
+ vtarget.parents('g.element[element-id]').addClass('selected');
213
219
  }
220
+ self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
214
221
 
215
222
  self.update_details(svgid);
216
223
  }
@@ -218,11 +225,15 @@ function WFAdaptorManifestation(adaptor) {
218
225
  this.events.dblclick = function(svgid, e) { // {{{
219
226
  } // }}}
220
227
  this.events.mouseover = function(svgid, e) { // {{{
221
- $('.tile[element-id = "' + svgid + '"]').css('display','block');
228
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
229
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
230
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
222
231
  return false;
223
232
  } // }}}
224
233
  this.events.mouseout = function(svgid, e) { // {{{
225
- $('.tile[element-id = "' + svgid + '"]').css('display','none');
234
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
235
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
236
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
226
237
  return false;
227
238
  } // }}}
228
239
  this.events.dragstart = function (svgid, e) { //{{{
@@ -237,9 +248,37 @@ function WFAdaptorManifestation(adaptor) {
237
248
  'illustrator': {//{{{
238
249
  'endnodes': 'this',
239
250
  'label': function(node){
240
- var lid = $(node).attr('id');
241
- var lnd = $(node).attr('endpoint');
242
- return lid + ': ' + lnd + '\n' + $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'');
251
+ var rep = $('body').attr('current-resources');
252
+ var ep = self.endpoints[$(node).attr('endpoint')];
253
+ var avg = $('> _timing_avg',$(node).children('_timing')).text();
254
+ var lab = $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'');
255
+ var ret = [ { column: 'ID', value: $(node).attr('id') } ];
256
+ if (lab != '') {
257
+ ret.unshift( { column: 'Label', value: lab } );
258
+ }
259
+ if (ep != undefined) {
260
+ var lnd = $(node).attr('endpoint');
261
+ ret.push({ column: 'Resource', value: lnd });
262
+ if (save['endpoints_cache'][lnd] && save['endpoints_cache'][lnd].properties) {
263
+ var prop = save['endpoints_cache'][lnd].properties;
264
+ if (prop.resource) {
265
+ if (prop.resource == 'exclusive' && prop.lock) {
266
+ ret.push({ column: 'RP', value: prop.resource + ' (' + prop.lock + ')' });
267
+ } else {
268
+ ret.push({ column: 'RP', value: prop.resource });
269
+ }
270
+ }
271
+ if (prop.alternatives) {
272
+ ret.push({ column: 'R#', value: prop.alternatives.length + 1});
273
+ } else {
274
+ ret.push({ column: 'R#', value: '1' });
275
+ }
276
+ }
277
+ }
278
+ if (avg != '') {
279
+ ret.push({ column: 'Average', value: avg + 'min' });
280
+ }
281
+ return ret;
243
282
  },
244
283
  'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
245
284
  'resolve_symbol': function(node) {
@@ -263,23 +302,24 @@ function WFAdaptorManifestation(adaptor) {
263
302
  ];
264
303
  return [];
265
304
  }, //}}}
266
- 'adaptor': {//{{{
267
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
268
- 'click': self.events.click,
269
- 'dragstart': self.events.dragstart,
270
- }//}}}
305
+ 'adaptor': {//{{{
306
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
307
+ 'click': self.events.click,
308
+ 'dragstart': self.events.dragstart,
309
+ 'mouseover': self.events.mouseover,
310
+ 'mouseout': self.events.mouseout
311
+ }//}}}
271
312
  }; /*}}}*/
272
313
  this.elements.manipulate = { /*{{{*/
273
314
  'type': 'primitive',
274
315
  'illustrator': {//{{{
275
316
  'endnodes': 'this',
276
317
  'label': function(node){
277
- var lid = $(node).attr('id');
278
318
  var lab = $(node).attr('label');
279
319
  if (lab) {
280
- return lid + '\n' + lab.replace(/^['"]/,'').replace(/['"]$/,'');
320
+ return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') }, { column: 'ID', value: $(node).attr('id') } ];
281
321
  } else {
282
- return "";
322
+ return [ { column: 'ID', value: $(node).attr('id') } ];
283
323
  }
284
324
  },
285
325
  'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
@@ -288,10 +328,12 @@ function WFAdaptorManifestation(adaptor) {
288
328
  'permissible_children': function(node,mode) { //{{{
289
329
  return [];
290
330
  }, //}}}
291
- 'adaptor': {//{{{
292
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
293
- 'click': self.events.click,
294
- }//}}}
331
+ 'adaptor': {//{{{
332
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
333
+ 'click': self.events.click,
334
+ 'mouseover': self.events.mouseover,
335
+ 'mouseout': self.events.mouseout
336
+ }//}}}
295
337
  }; /*}}}*/
296
338
  this.elements.escape = { /*{{{*/
297
339
  'type': 'primitive',
@@ -306,12 +348,17 @@ function WFAdaptorManifestation(adaptor) {
306
348
  'adaptor': {//{{{
307
349
  'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
308
350
  'click': self.events.click,
351
+ 'mouseover': self.events.mouseover,
352
+ 'mouseout': self.events.mouseout
309
353
  }//}}}
310
354
  }; /*}}}*/
311
355
  this.elements.stop = { /*{{{*/
312
356
  'type': 'primitive',
313
357
  'illustrator': {//{{{
314
358
  'endnodes': 'this',
359
+ 'label': function(node){
360
+ return [ { column: 'ID', value: $(node).attr('id') } ];
361
+ },
315
362
  'svg': self.adaptor.theme_dir + 'symbols/stop.svg'
316
363
  },//}}}
317
364
  'description': self.adaptor.theme_dir + 'rngs/stop.rng',
@@ -321,6 +368,8 @@ function WFAdaptorManifestation(adaptor) {
321
368
  'adaptor': {//{{{
322
369
  'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
323
370
  'click': self.events.click,
371
+ 'mouseover': self.events.mouseover,
372
+ 'mouseout': self.events.mouseout
324
373
  }//}}}
325
374
  }; /*}}}*/
326
375
  this.elements.terminate = { /*{{{*/
@@ -335,8 +384,83 @@ function WFAdaptorManifestation(adaptor) {
335
384
  return [];
336
385
  }, //}}}
337
386
  'adaptor': {//{{{
338
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
387
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
388
+ 'mouseover': self.events.mouseover,
389
+ 'mouseout': self.events.mouseout
390
+ }//}}}
391
+ }; /*}}}*/
392
+ this.elements.end = { /*{{{*/
393
+ 'type': 'primitive',
394
+ 'illustrator': {//{{{
395
+ 'endnodes': 'this',
396
+ 'svg': self.adaptor.theme_dir + 'symbols/end.svg'
397
+ }, //}}}
398
+ 'adaptor': {//{{{
399
+ 'mousedown': function (node,e) {
400
+ self.events.suppress();
401
+ }
402
+ }//}}}
403
+ }; /*}}}*/
404
+ this.elements.event_end = { /*{{{*/
405
+ 'type': 'primitive',
406
+ 'illustrator': {//{{{
407
+ 'endnodes': 'this',
408
+ 'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
409
+ }, //}}}
410
+ 'adaptor': {//{{{
411
+ 'mousedown': function (node,e) {
412
+ self.events.suppress();
413
+ },
339
414
  'click': self.events.click,
415
+ 'dblclick': self.events.dblclick,
416
+ 'mouseover': self.events.mouseover,
417
+ 'mouseout': self.events.mouseout
418
+ }//}}}
419
+ }; /*}}}*/
420
+ this.elements.choose_finish = { /*{{{*/
421
+ 'type': 'primitive',
422
+ 'illustrator': {//{{{
423
+ 'endnodes': 'this',
424
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg',
425
+ 'resolve_symbol': function(node) {
426
+ if($(node).attr('mode') == 'exclusive') {
427
+ return 'choose_exclusive_finish';
428
+ } else {
429
+ return 'choose_inclusive_finish';
430
+ }
431
+ },
432
+ }, //}}}
433
+ 'adaptor': {//{{{
434
+ 'mousedown': function (node,e) {
435
+ self.events.mousedown(node,e,true,true);
436
+ },
437
+ 'click': self.events.click,
438
+ 'dblclick': self.events.dblclick,
439
+ 'mouseover': self.events.mouseover,
440
+ 'mouseout': self.events.mouseout
441
+ }//}}}
442
+ }; /*}}}*/
443
+ this.elements.parallel_finish = { /*{{{*/
444
+ 'type': 'primitive',
445
+ 'illustrator': {//{{{
446
+ 'endnodes': 'this',
447
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
448
+ 'resolve_symbol': function(node) {
449
+ if($(node).attr('wait') == '-1') {
450
+ return 'parallel_simple';
451
+ } else {
452
+ return 'parallel_complex';
453
+ }
454
+ },
455
+ }, //}}}
456
+ 'adaptor': {//{{{
457
+ 'mousedown': function (node,e) {
458
+ self.events.mousedown(node,e,true,true);
459
+ },
460
+ 'click': self.events.click,
461
+ 'dblclick': self.events.dblclick,
462
+ 'mouseover': self.events.mouseover,
463
+ 'mouseout': self.events.mouseout
340
464
  }//}}}
341
465
  }; /*}}}*/
342
466
 
@@ -344,9 +468,10 @@ function WFAdaptorManifestation(adaptor) {
344
468
  this.elements.choose = { /*{{{*/
345
469
  'type': 'complex',
346
470
  'illustrator': {//{{{
347
- 'label': function(node){return $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' },
471
+ 'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
348
472
  'endnodes': 'aggregate',
349
473
  'closeblock': false,
474
+ 'closing_symbol': 'choose_finish',
350
475
  'expansion': function(node) {
351
476
  return 'horizontal';
352
477
  },
@@ -400,14 +525,19 @@ function WFAdaptorManifestation(adaptor) {
400
525
  'click': self.events.click,
401
526
  'dblclick': self.events.dblclick,
402
527
  'mouseover': self.events.mouseover,
403
- 'mouseout': self.events.mouseout,
528
+ 'mouseout': self.events.mouseout
404
529
  }//}}}
405
530
  }; /*}}}*/
406
531
  this.elements.otherwise = { /*{{{*/
407
532
  'type': 'complex',
408
533
  'illustrator': {//{{{
534
+ 'label': function(node){
535
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
536
+ return (avg == '' ? [] : [ { column: 'Average', value: avg + '%' } ]);
537
+ },
409
538
  'endnodes': 'passthrough',
410
539
  'closeblock': false,
540
+ 'noarrow': true,
411
541
  'expansion': function(node) {
412
542
  return 'vertical';
413
543
  },
@@ -484,8 +614,16 @@ function WFAdaptorManifestation(adaptor) {
484
614
  this.elements.alternative = { /*{{{*/
485
615
  'type': 'complex',
486
616
  'illustrator': {//{{{
487
- 'label': function(node){return $(node).attr('condition')},
617
+ 'label': function(node){
618
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
619
+ var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
620
+ if (avg != '') {
621
+ ret.push({ column: 'Average', value: avg + '%' });
622
+ }
623
+ return ret;
624
+ },
488
625
  'endnodes': 'passthrough',
626
+ 'noarrow': true,
489
627
  'closeblock':false,
490
628
  'expansion': function(node) {
491
629
  return 'vertical';
@@ -567,7 +705,14 @@ function WFAdaptorManifestation(adaptor) {
567
705
  this.elements.loop = { /*{{{*/
568
706
  'type': 'complex',
569
707
  'illustrator': {//{{{
570
- 'label': function(node){return $(node).attr('condition') + ($(node).attr('mode') == 'pre_test' ? ' (⭱)' : ' (⭳)') },
708
+ 'label': function(node){
709
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
710
+ var ret = [ { column: 'Label', value: $(node).attr('condition') + ($(node).attr('mode') == 'pre_test' ? ' (⭱)' : ' (⭳)') } ];
711
+ if (avg != '') {
712
+ ret.push({ column: 'Average', value: avg + 'x' });
713
+ }
714
+ return ret;
715
+ },
571
716
  'endnodes': 'this',
572
717
  'closeblock': true,
573
718
  'expansion': function(node) {
@@ -655,9 +800,9 @@ function WFAdaptorManifestation(adaptor) {
655
800
  this.elements.parallel = { /*{{{*/
656
801
  'type': 'complex',
657
802
  'illustrator': {//{{{
658
- 'endnodes': 'this',
803
+ 'endnodes': 'aggregate',
659
804
  'closeblock': false,
660
- 'border': true,
805
+ 'closing_symbol': 'parallel_finish',
661
806
  'expansion': function(node) {
662
807
  // check if any sibling other than 'parallel_branch' is present
663
808
  if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
@@ -670,49 +815,37 @@ function WFAdaptorManifestation(adaptor) {
670
815
  },//}}}
671
816
  'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
672
817
  'permissible_children': function(node,mode) { //{{{
818
+ var func = null;
819
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
820
+ else { func = self.adaptor.description.insert_after }
673
821
  var childs = [
674
822
  {'label': 'Service Call with Scripts',
675
- 'function_call': self.adaptor.description.insert_last_into,
823
+ 'function_call': func,
676
824
  'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
677
825
  'type': 'callmanipulate',
678
826
  'params': [self.adaptor.description.elements.callmanipulate, node]},
679
827
  {'label': 'Service Call',
680
- 'function_call': self.adaptor.description.insert_last_into,
828
+ 'function_call': func,
681
829
  'menu_icon': self.elements.call.illustrator.svg.clone(),
682
830
  'type': 'call',
683
831
  'params': [self.adaptor.description.elements.call, node]},
684
832
  {'label': 'Manipulate',
685
- 'function_call': self.adaptor.description.insert_last_into,
833
+ 'function_call': func,
686
834
  'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
687
835
  'type': 'manipulate',
688
836
  'params': [self.adaptor.description.elements.manipulate, node]},
689
837
  {'label': 'Decision',
690
- 'function_call': self.adaptor.description.insert_last_into,
838
+ 'function_call': func,
691
839
  'menu_icon': self.elements.choose.illustrator.svg.clone(),
692
840
  'type': 'choose',
693
841
  'params': [self.adaptor.description.elements.choose, node]},
694
842
  {'label': 'Loop',
695
- 'function_call': self.adaptor.description.insert_last_into,
843
+ 'function_call': func,
696
844
  'menu_icon': self.elements.loop.illustrator.svg.clone(),
697
845
  'type': 'loop',
698
846
  'params': [self.adaptor.description.elements.loop, node]},
699
- {'label': 'Terminate',
700
- 'function_call': self.adaptor.description.insert_last_into,
701
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
702
- 'type': 'terminate',
703
- 'params': [self.adaptor.description.elements.terminate, node]},
704
- {'label': 'Stop',
705
- 'function_call': self.adaptor.description.insert_last_into,
706
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
707
- 'type': 'stop',
708
- 'params': [self.adaptor.description.elements.stop, node]},
709
- {'label': 'Critical',
710
- 'function_call': self.adaptor.description.insert_last_into,
711
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
712
- 'type': 'critical',
713
- 'params': [self.adaptor.description.elements.critical, node]},
714
847
  {'label': 'Parallel Branch',
715
- 'function_call': self.adaptor.description.insert_last_into,
848
+ 'function_call': func,
716
849
  'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
717
850
  'type': 'parallel_branch',
718
851
  'params': [self.adaptor.description.elements.parallel_branch, node]}
@@ -738,11 +871,19 @@ function WFAdaptorManifestation(adaptor) {
738
871
  this.elements.parallel_branch = { /*{{{*/
739
872
  'type': 'complex',
740
873
  'illustrator': {//{{{
741
- 'endnodes': 'this',
874
+ 'endnodes': 'passthrough',
742
875
  'closeblock': false,
876
+ 'noarrow': true,
743
877
  'expansion': function(node) {
744
878
  return 'vertical';
745
879
  },
880
+ 'resolve_symbol': function(node,shift) {
881
+ if(shift == true) {
882
+ return 'parallel_branch_event';
883
+ } else {
884
+ return 'parallel_branch_normal';
885
+ }
886
+ },
746
887
  'col_shift': function(node) {
747
888
  if(node.parentNode.tagName == 'choose') return false;
748
889
  if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
@@ -814,7 +955,12 @@ function WFAdaptorManifestation(adaptor) {
814
955
  }, //}}}
815
956
  'adaptor': {//{{{
816
957
  'mousedown': function (node,e) {
817
- self.events.mousedown(node,e,true,false);
958
+ var xml_node = self.adaptor.description.get_node_by_svg_id(node);
959
+ if(xml_node.get(0).parentNode.tagName == 'parallel') {
960
+ self.events.mousedown(node,e,true,false);
961
+ } else {
962
+ self.events.mousedown(node,e,true,true);
963
+ }
818
964
  },
819
965
  'click': self.events.click,
820
966
  'dblclick': self.events.dblclick,
@@ -935,10 +1081,13 @@ function WFAdaptorManifestation(adaptor) {
935
1081
  'type': 'description',
936
1082
  'illustrator': {//{{{
937
1083
  'endnodes': 'passthrough',
1084
+ 'label': function(node){ return [ { column: 'Label'}, { column: 'ID' }, { column: 'Resource' }, { column: 'RP' }, { column: 'R#' } ]; },
938
1085
  'closeblock': false,
1086
+ 'balance': true,
939
1087
  'expansion': function(node) {
940
1088
  return 'vertical';
941
1089
  },
1090
+ 'closing_symbol': 'end',
942
1091
  'col_shift': function(node) {
943
1092
  return true;
944
1093
  },
@@ -1012,31 +1161,74 @@ function WFAdaptorManifestation(adaptor) {
1012
1161
  // * they may only have an illustrator (or other parts)
1013
1162
  // * they HAVE TO have a parent
1014
1163
  this.elements.callmanipulate = { /*{{{*/
1015
- 'type': 'abstract',
1016
1164
  'parent': 'call',
1017
1165
  'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
1018
1166
  'illustrator': {//{{{
1019
- 'label': function(node){return $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'')},
1020
1167
  'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
1021
1168
  'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
1022
1169
  },//}}}
1023
1170
  }; /*}}}*/
1024
1171
  this.elements.choose_inclusive = { /*{{{*/
1025
- 'type': 'abstract',
1026
1172
  'parent': 'choose',
1027
1173
  'illustrator': {//{{{
1028
1174
  'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1029
- },//}}}
1175
+ }//}}}
1030
1176
  }; /*}}}*/
1031
1177
  this.elements.choose_exclusive = { /*{{{*/
1032
- 'type': 'abstract',
1033
1178
  'parent': 'choose',
1034
1179
  'illustrator': {//{{{
1035
1180
  'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1036
1181
  },//}}}
1037
1182
  }; /*}}}*/
1183
+ this.elements.choose_inclusive_finish = { /*{{{*/
1184
+ 'parent': 'choose_finish',
1185
+ 'illustrator': {//{{{
1186
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
1187
+ }//}}}
1188
+ }; /*}}}*/
1189
+ this.elements.choose_exclusive_finish = { /*{{{*/
1190
+ 'parent': 'choose_finish',
1191
+ 'illustrator': {//{{{
1192
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
1193
+ },//}}}
1194
+ }; /*}}}*/
1195
+ this.elements.parallel_simple = { /*{{{*/
1196
+ 'parent': 'parallel_finish',
1197
+ 'illustrator': {//{{{
1198
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
1199
+ }//}}}
1200
+ }; /*}}}*/
1201
+ this.elements.parallel_complex = { /*{{{*/
1202
+ 'parent': 'parallel_finish',
1203
+ 'illustrator': {//{{{
1204
+ 'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
1205
+ },//}}}
1206
+ }; /*}}}*/
1207
+ this.elements.parallel_branch_normal = { /*{{{*/
1208
+ 'parent': 'parallel_branch',
1209
+ 'illustrator': {//{{{
1210
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_normal.svg'
1211
+ }//}}}
1212
+ }; /*}}}*/
1213
+ this.elements.parallel_branch_event = { /*{{{*/
1214
+ 'parent': 'parallel_branch',
1215
+ 'illustrator': {//{{{
1216
+ 'endnodes': 'this',
1217
+ 'noarrow': false,
1218
+ 'border': true,
1219
+ 'wide': true,
1220
+ 'closing_symbol': 'event_end',
1221
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
1222
+ }//}}}
1223
+ }; /*}}}*/
1224
+ this.elements.parallel_branch_compact = { /*{{{*/
1225
+ 'parent': 'parallel_branch',
1226
+ 'illustrator': {//{{{
1227
+ 'endnodes': 'this',
1228
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
1229
+ }//}}}
1230
+ }; /*}}}*/
1038
1231
  this.elements.scripts = { /*{{{*/
1039
- 'type': 'abstract',
1040
1232
  'description': [self.adaptor.theme_dir + 'rngs/update.rng',self.adaptor.theme_dir + 'rngs/finalize.rng']
1041
1233
  }; /*}}}*/
1042
1234
  }