cpee 1.3.209 → 1.3.211

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +5 -5
  3. data/cockpit/contrib/transformation1.xsl +9 -9
  4. data/cockpit/index.html +6 -4
  5. data/cockpit/js/details.js +54 -56
  6. data/cockpit/js/instance.js +15 -5
  7. data/cockpit/js/parameters.js +28 -28
  8. data/cockpit/js/wfadaptor.js +32 -16
  9. data/cockpit/testsets/Centurio.xml +72 -0
  10. data/cockpit/testsets/Lego Plate.xml +1 -1
  11. data/cockpit/testsets/Lego Transporter.xml +11 -147
  12. data/cockpit/testsets/Linear.xml +3 -0
  13. data/cockpit/testsets/Syncing P34 1.xml +9 -1
  14. data/cockpit/testsets/Syncing P34 2.xml +9 -1
  15. data/cockpit/testsets/Syncing P34 3.xml +9 -1
  16. data/cockpit/testsets/Syncing P34.xml +9 -1
  17. data/cockpit/testsets/testsets.xml +1 -0
  18. data/cockpit/themes/default/theme.js +22 -21
  19. data/cockpit/themes/labels/theme.js +786 -0
  20. data/cpee.gemspec +4 -2
  21. data/lib/cpee/controller.rb +0 -5
  22. data/server/handlerwrappers/default.rb +9 -15
  23. data/server/handlerwrappers/soap.rb +10 -10
  24. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/consumer-secret +1 -0
  25. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/producer-secret +1 -0
  26. data/server/instances/{6/notifications/0e9f3728f00c0562870110697bd8819c → 10/notifications/182434032285ca1d06a8b6554b8889c8}/subscription.xml +6 -21
  27. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/consumer-secret +1 -0
  28. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/producer-secret +1 -0
  29. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/subscription.xml +6 -0
  30. data/server/instances/10/properties.xml +187 -0
  31. data/server/instances/11/properties.xml +191 -0
  32. data/server/instances/12/properties.xml +191 -0
  33. data/server/instances/13/properties.xml +204 -0
  34. data/server/instances/14/properties.xml +31 -0
  35. data/server/instances/15/properties.xml +30 -0
  36. data/server/instances/16/properties.xml +29 -0
  37. data/server/instances/17/properties.xml +29 -0
  38. data/server/instances/18/properties.xml +31 -0
  39. data/server/instances/19/properties.xml +31 -0
  40. data/server/instances/20/properties.xml +191 -0
  41. data/server/instances/7/properties.xml +120 -0
  42. data/server/instances/8/properties.xml +118 -0
  43. data/server/instances/9/properties.xml +120 -0
  44. data/test/callback.rb +2 -2
  45. data/tools/cpee +38 -0
  46. data/tools/server/resources/notifications/logging/consumer-secret +1 -0
  47. data/tools/server/resources/notifications/logging/producer-secret +1 -0
  48. data/tools/server/resources/notifications/logging/subscription.xml +7 -0
  49. data/tools/server/resources/properties.init +47 -0
  50. data/tools/server/server.rb +14 -0
  51. metadata +33 -7
  52. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/consumer-secret +0 -1
  53. data/server/instances/6/notifications/0e9f3728f00c0562870110697bd8819c/producer-secret +0 -1
@@ -1,4 +1,5 @@
1
1
  <testsets>
2
+ <testset>Centurio</testset>
2
3
  <testset>Log</testset>
3
4
  <testset>Infinity</testset>
4
5
  <testset>SOPROMO Test Sonification</testset>
@@ -4,6 +4,7 @@ function WFAdaptorManifestation(adaptor) {
4
4
  this.adaptor = adaptor;
5
5
  this.elements = {};
6
6
  this.events = {};
7
+ this.compact = true;
7
8
 
8
9
  this.noarrow = ['alternative', 'otherwise'];
9
10
  this.source = function(rng) {
@@ -107,7 +108,7 @@ function WFAdaptorManifestation(adaptor) {
107
108
 
108
109
  // Primitive Elements
109
110
  this.elements.call = { /*{{{*/
110
- 'type' : 'primitive',
111
+ 'type': 'primitive',
111
112
  'illustrator': {//{{{
112
113
  'endnodes' : 'this',
113
114
  'resolve_symbol' : function(node) {
@@ -149,7 +150,7 @@ function WFAdaptorManifestation(adaptor) {
149
150
  }//}}}
150
151
  }; /*}}}*/
151
152
  this.elements.manipulate = { /*{{{*/
152
- 'type' : 'primitive',
153
+ 'type': 'primitive',
153
154
  'illustrator': {//{{{
154
155
  'endnodes' : 'this',
155
156
  'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
@@ -164,7 +165,7 @@ function WFAdaptorManifestation(adaptor) {
164
165
  }//}}}
165
166
  }; /*}}}*/
166
167
  this.elements.escape = { /*{{{*/
167
- 'type' : 'primitive',
168
+ 'type': 'primitive',
168
169
  'illustrator': {//{{{
169
170
  'endnodes' : 'this',
170
171
  'svg': self.adaptor.theme_dir + 'symbols/escape.svg'
@@ -181,7 +182,7 @@ function WFAdaptorManifestation(adaptor) {
181
182
 
182
183
  // Complex Elements
183
184
  this.elements.choose = { /*{{{*/
184
- 'type' : 'complex',
185
+ 'type': 'complex',
185
186
  'illustrator': {//{{{
186
187
  'endnodes' : 'aggregate',
187
188
  'closeblock': false,
@@ -238,7 +239,7 @@ function WFAdaptorManifestation(adaptor) {
238
239
  }//}}}
239
240
  }; /*}}}*/
240
241
  this.elements.otherwise = { /*{{{*/
241
- 'type' : 'complex',
242
+ 'type': 'complex',
242
243
  'illustrator': {//{{{
243
244
  'endnodes' : 'passthrough',
244
245
  'closeblock': false,
@@ -299,7 +300,7 @@ function WFAdaptorManifestation(adaptor) {
299
300
  }//}}}
300
301
  }; /*}}}*/
301
302
  this.elements.alternative = { /*{{{*/
302
- 'type' : 'complex',
303
+ 'type': 'complex',
303
304
  'illustrator': {//{{{
304
305
  'endnodes' : 'passthrough',
305
306
  'closeblock':false,
@@ -363,7 +364,7 @@ function WFAdaptorManifestation(adaptor) {
363
364
  }//}}}
364
365
  }; /*}}}*/
365
366
  this.elements.loop = { /*{{{*/
366
- 'type' : 'complex',
367
+ 'type': 'complex',
367
368
  'illustrator': {//{{{
368
369
  'endnodes' : 'this',
369
370
  'closeblock' : true,
@@ -432,7 +433,7 @@ function WFAdaptorManifestation(adaptor) {
432
433
  }//}}}
433
434
  }; /*}}}*/
434
435
  this.elements.parallel = { /*{{{*/
435
- 'type' : 'complex',
436
+ 'type': 'complex',
436
437
  'illustrator': {//{{{
437
438
  'endnodes' : 'this',
438
439
  'closeblock' : false,
@@ -497,7 +498,7 @@ function WFAdaptorManifestation(adaptor) {
497
498
  }//}}}
498
499
  }; /*}}}*/
499
500
  this.elements.parallel_branch = { /*{{{*/
500
- 'type' : 'complex',
501
+ 'type': 'complex',
501
502
  'illustrator': {//{{{
502
503
  'endnodes' : 'this',
503
504
  'closeblock' : false,
@@ -566,7 +567,7 @@ function WFAdaptorManifestation(adaptor) {
566
567
  }//}}}
567
568
  }; /*}}}*/
568
569
  this.elements.critical = { /*{{{*/
569
- 'type' : 'complex',
570
+ 'type': 'complex',
570
571
  'illustrator': {//{{{
571
572
  'endnodes' : 'aggregate',
572
573
  'closeblock' : false,
@@ -626,7 +627,7 @@ function WFAdaptorManifestation(adaptor) {
626
627
  }//}}}
627
628
  }; /*}}}*/
628
629
  this.elements.group = { /*{{{*/
629
- 'type' : 'complex',
630
+ 'type': 'complex',
630
631
  'illustrator': {//{{{
631
632
  'endnodes' : 'aggregate',
632
633
  'closeblock' : false,
@@ -658,7 +659,7 @@ function WFAdaptorManifestation(adaptor) {
658
659
  }//}}}
659
660
  }; /*}}}*/
660
661
  this.elements.start = this.elements.description = { /*{{{*/
661
- 'type' : 'description',
662
+ 'type': 'description',
662
663
  'illustrator': {//{{{
663
664
  'endnodes' : 'passthrough',
664
665
  'closeblock' : false,
@@ -721,7 +722,7 @@ function WFAdaptorManifestation(adaptor) {
721
722
  // * they may only have an illustrator (or other parts)
722
723
  // * they HAVE TO have a parent
723
724
  this.elements.callmanipulate = { /*{{{*/
724
- 'type' : 'abstract',
725
+ 'type': 'abstract',
725
726
  'parent': 'call',
726
727
  'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
727
728
  'illustrator': {//{{{
@@ -729,53 +730,53 @@ function WFAdaptorManifestation(adaptor) {
729
730
  },//}}}
730
731
  }; /*}}}*/
731
732
  this.elements.choose_inclusive = { /*{{{*/
732
- 'type' : 'abstract',
733
+ 'type': 'abstract',
733
734
  'parent': 'choose',
734
735
  'illustrator': {//{{{
735
736
  'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
736
737
  },//}}}
737
738
  }; /*}}}*/
738
739
  this.elements.choose_exclusive = { /*{{{*/
739
- 'type' : 'abstract',
740
+ 'type': 'abstract',
740
741
  'parent': 'choose',
741
742
  'illustrator': {//{{{
742
743
  'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
743
744
  },//}}}
744
745
  }; /*}}}*/
745
746
  this.elements.scripts = { /*{{{*/
746
- 'type' : 'abstract',
747
+ 'type': 'abstract',
747
748
  'description': [self.adaptor.theme_dir + 'rngs/update.rng',self.adaptor.theme_dir + 'rngs/finalize.rng']
748
749
  }; /*}}}*/
749
750
  this.elements.callinstantiation = { /*{{{*/
750
- 'type' : 'abstract',
751
+ 'type': 'abstract',
751
752
  'parent': 'call',
752
753
  'illustrator': {//{{{
753
754
  'svg': self.adaptor.theme_dir + 'symbols/callinstantiation.svg'
754
755
  },//}}}
755
756
  }; /*}}}*/
756
757
  this.elements.callcorrelationsend = { /*{{{*/
757
- 'type' : 'abstract',
758
+ 'type': 'abstract',
758
759
  'parent': 'call',
759
760
  'illustrator': {//{{{
760
761
  'svg': self.adaptor.theme_dir + 'symbols/callcorrelationsend.svg'
761
762
  },//}}}
762
763
  }; /*}}}*/
763
764
  this.elements.callcorrelationreceive = { /*{{{*/
764
- 'type' : 'abstract',
765
+ 'type': 'abstract',
765
766
  'parent': 'call',
766
767
  'illustrator': {//{{{
767
768
  'svg': self.adaptor.theme_dir + 'symbols/callcorrelationreceive.svg'
768
769
  },//}}}
769
770
  }; /*}}}*/
770
771
  this.elements.callworklist = { /*{{{*/
771
- 'type' : 'abstract',
772
+ 'type': 'abstract',
772
773
  'parent': 'call',
773
774
  'illustrator': {//{{{
774
775
  'svg': self.adaptor.theme_dir + 'symbols/callworklist.svg'
775
776
  },//}}}
776
777
  }; /*}}}*/
777
778
  this.elements.callmanipulateworklist = { /*{{{*/
778
- 'type' : 'abstract',
779
+ 'type': 'abstract',
779
780
  'parent': 'call',
780
781
  'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
781
782
  'illustrator': {//{{{
@@ -0,0 +1,786 @@
1
+ function WFAdaptorManifestation(adaptor) {
2
+ var self = this;
3
+
4
+ this.adaptor = adaptor;
5
+ this.elements = {};
6
+ this.events = {};
7
+ this.compact = false;
8
+
9
+ this.noarrow = ['alternative', 'otherwise'];
10
+ this.source = function(rng) {
11
+ $('#relaxngworker').empty();
12
+ var rngw = new RelaxNGui(rng,$('#relaxngworker'),self.adaptor.description.context_eval);
13
+ var nnew = $(rngw.save().documentElement);
14
+ nnew.attr('trans-xmlns','http://cpee.org/ns/description/1.0');
15
+ var ntxt = nnew.serializeXML();
16
+ ntxt = ntxt.replace(/trans-xmlns/,'xmlns');
17
+
18
+ return($X(ntxt));
19
+ };
20
+
21
+ // Events
22
+ this.events.mousedown = function(svgid, e, child, sibling) { // {{{
23
+ if(e.button == 0) { // left-click
24
+ } else if(e.button == 1) { // middle-click
25
+ } else if(e.button == 2) { // right-click
26
+ var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
27
+ var group = null;
28
+ var menu = {};
29
+
30
+ if (child) {
31
+ group = self.elements[xml_node.get(0).tagName].permissible_children(xml_node);
32
+ if(group.length > 0) menu['Insert into'] = group;
33
+ }
34
+ if (sibling) {
35
+ group = self.elements[xml_node.parent().get(0).tagName].permissible_children(xml_node);
36
+ if(group.length > 0) menu['Insert after'] = group;
37
+ }
38
+
39
+ if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
40
+ var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
41
+ icon.children('.rfill').css({'fill':'#ff7f7f','fill-opacity':'1'});
42
+ menu['Delete'] = [{
43
+ 'label': 'Remove Element',
44
+ 'function_call': self.adaptor.description.remove,
45
+ 'menu_icon': icon,
46
+ 'params': [null, xml_node]
47
+ }];
48
+ }
49
+ if($('> finalize, > update', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
50
+ var icon = self.elements.callmanipulate.illustrator.svg.clone();
51
+ icon.children('.rfill:last').css({'fill':'#ff7f7f','fill-opacity':'1'});
52
+ menu['Delete'].push({
53
+ 'label': 'Remove Scripts',
54
+ 'function_call': self.adaptor.description.remove,
55
+ 'menu_icon': icon,
56
+ 'params': ['> finalize, > update', xml_node]
57
+ });
58
+ }
59
+ new CustomMenu(e).contextmenu(menu);
60
+ }
61
+ return false;
62
+ } // }}}
63
+ this.events.click = function(svgid) { // {{{
64
+ var visid = 'details';
65
+ var tab = $('#dat_' + visid);
66
+ tab.empty();
67
+
68
+ if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
69
+ return;
70
+ }
71
+ self.adaptor.illustrator.get_nodes().removeClass('clicked');
72
+
73
+ var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
74
+ if (vtarget.length > 0) {
75
+ vtarget.addClass('clicked');
76
+ }
77
+
78
+ if ($('#state').text() != 'finished')
79
+ $('#main ui-behind button').show();
80
+ if ($('#main ui-behind button').hasClass('highlight')) {
81
+ var check = confirm("Discard changes?");
82
+ if (check)
83
+ $('#main ui-behind button').removeClass('highlight');
84
+ else
85
+ return;
86
+ }
87
+
88
+ var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
89
+
90
+ if (self.adaptor.description.elements[$(node).attr('svg-type')]) {
91
+ save[visid + '_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
92
+ save[visid] = new RelaxNGui(self.adaptor.description.elements[$(node).attr('svg-type')],tab,self.adaptor.description.context_eval);
93
+ save[visid].content(node);
94
+ }
95
+ } // }}}
96
+ this.events.dblclick = function(svgid, e) { // {{{
97
+ } // }}}
98
+ this.events.mouseover = function(svgid, e) { // {{{
99
+ $('.tile[element-id = "' + svgid + '"]').css('display','block');
100
+ return false;
101
+ } // }}}
102
+ this.events.mouseout = function(svgid, e) { // {{{
103
+ $('.tile[element-id = "' + svgid + '"]').css('display','none');
104
+ return false;
105
+ } // }}}
106
+ this.events.dragstart = function (svgid, e) { //{{{
107
+ } //}}}
108
+
109
+ // Primitive Elements
110
+ this.elements.call = { /*{{{*/
111
+ 'type': 'primitive',
112
+ 'illustrator': {//{{{
113
+ 'endnodes' : 'this',
114
+ 'resolve_symbol' : function(node) {
115
+ if($(node).attr('endpoint').match(/^instantiation/)) {
116
+ return 'callinstantiation';
117
+ } else if($(node).attr('endpoint').match(/^correlation_send/)) {
118
+ return 'callcorrelationsend';
119
+ } else if($(node).attr('endpoint').match(/^correlation_receive/)) {
120
+ return 'callcorrelationreceive';
121
+ } else if($(node).attr('endpoint').match(/^worklist/) && $('finalize,update', node).length > 0) {
122
+ return 'callmanipulateworklist';
123
+ } else if($(node).attr('endpoint').match(/^worklist/)) {
124
+ return 'callworklist';
125
+ } else if($('parameters > service', node).length > 0) {
126
+ return 'callinjection';
127
+ } else if($('finalize,update', node).length > 0) {
128
+ return 'callmanipulate';
129
+ } else {
130
+ return'call';
131
+ }
132
+ },
133
+ 'svg': self.adaptor.theme_dir + 'symbols/call.svg'
134
+ },//}}}
135
+ 'description': self.adaptor.theme_dir + 'rngs/call.rng',
136
+ 'permissible_children': function(node) { //{{{
137
+ if(node.children('finalize,update').length < 1)
138
+ return [
139
+ {'label': 'Scripts',
140
+ 'function_call': self.adaptor.description.insert_last_into,
141
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
142
+ 'params': [self.adaptor.description.elements.scripts, node]}
143
+ ];
144
+ return [];
145
+ }, //}}}
146
+ 'adaptor' : {//{{{
147
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
148
+ 'click': self.events.click,
149
+ 'dragstart': self.events.dragstart,
150
+ }//}}}
151
+ }; /*}}}*/
152
+ this.elements.manipulate = { /*{{{*/
153
+ 'type': 'primitive',
154
+ 'illustrator': {//{{{
155
+ 'endnodes' : 'this',
156
+ 'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
157
+ },//}}}
158
+ 'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
159
+ 'permissible_children': function(node) { //{{{
160
+ return [];
161
+ }, //}}}
162
+ 'adaptor' : {//{{{
163
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
164
+ 'click': self.events.click,
165
+ }//}}}
166
+ }; /*}}}*/
167
+ this.elements.escape = { /*{{{*/
168
+ 'type': 'primitive',
169
+ 'illustrator': {//{{{
170
+ 'endnodes' : 'this',
171
+ 'svg': self.adaptor.theme_dir + 'symbols/escape.svg'
172
+ },//}}}
173
+ 'description': self.adaptor.theme_dir + 'rngs/escape.rng',
174
+ 'permissible_children': function(node) { //{{{
175
+ return [];
176
+ }, //}}}
177
+ 'adaptor' : {//{{{
178
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
179
+ 'click': self.events.click,
180
+ }//}}}
181
+ }; /*}}}*/
182
+
183
+ // Complex Elements
184
+ this.elements.choose = { /*{{{*/
185
+ 'type': 'complex',
186
+ 'illustrator': {//{{{
187
+ 'endnodes' : 'aggregate',
188
+ 'closeblock': false,
189
+ 'expansion' : function(node) {
190
+ return 'horizontal';
191
+ },
192
+ 'resolve_symbol' : function(node) {
193
+ if($(node).attr('mode') == 'exclusive') {
194
+ return 'choose_exclusive';
195
+ } else {
196
+ return 'choose_inclusive';
197
+ }
198
+ },
199
+ 'col_shift' : function(node) {
200
+ return false;
201
+ },
202
+ 'svg': self.adaptor.theme_dir + 'symbols/choose.svg'
203
+ },//}}}
204
+ 'description': self.adaptor.theme_dir + 'rngs/choose.rng',
205
+ 'permissible_children': function(node) { //{{{
206
+ var func = null;
207
+ if(node.get(0).tagName == 'choose') { func = self.adaptor.description.insert_first_into }
208
+ else { func = self.adaptor.description.insert_after }
209
+ if(node.children('parallel_branch').length > 0) {
210
+ return [{'label': 'Parallel Branch',
211
+ 'function_call': func,
212
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
213
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}];
214
+ }
215
+ var childs = [{'label': 'Alternative',
216
+ 'function_call': func,
217
+ 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
218
+ 'params': [self.adaptor.description.elements.alternative, node]}];
219
+ if((node.children('otherwise').length == 0) && node.parents('parallel').length == node.parents('parallel_branch').length)
220
+ childs.push({'label': 'Otherwise',
221
+ 'function_call': self.adaptor.description.insert_last_into,
222
+ 'menu_icon': self.elements.otherwise.illustrator.svg.clone(),
223
+ 'params': [self.adaptor.description.elements.otherwise, node]});
224
+ if(node.parents('parallel').length > node.parents('parallel_branch').length)
225
+ childs.push({'label': 'Parallel Branch',
226
+ 'function_call': func,
227
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
228
+ 'params': [self.adaptor.description.elements.parallel_branch, node]});
229
+ return childs;
230
+ }, //}}}
231
+ 'adaptor' : {//{{{
232
+ 'mousedown': function (node,e) {
233
+ self.events.mousedown(node,e,true,true);
234
+ },
235
+ 'click': self.events.click,
236
+ 'dblclick': self.events.dblclick,
237
+ 'mouseover': self.events.mouseover,
238
+ 'mouseout': self.events.mouseout,
239
+ }//}}}
240
+ }; /*}}}*/
241
+ this.elements.otherwise = { /*{{{*/
242
+ 'type': 'complex',
243
+ 'illustrator': {//{{{
244
+ 'endnodes' : 'passthrough',
245
+ 'closeblock': false,
246
+ 'expansion' : function(node) {
247
+ return 'vertical';
248
+ },
249
+ 'col_shift' : function(node) {
250
+ return false;
251
+ },
252
+ 'svg': self.adaptor.theme_dir + 'symbols/otherwise.svg'
253
+ },//}}}
254
+ 'description': self.adaptor.theme_dir + 'rngs/otherwise.rng',
255
+ 'neverdelete': true,
256
+ 'permissible_children': function(node) { //{{{
257
+ var func = null;
258
+ var childs = null;
259
+ if(node.get(0).tagName == 'otherwise') { func = self.adaptor.description.insert_first_into }
260
+ else { func = self.adaptor.description.insert_after }
261
+ return [
262
+ {'label': 'Service Call with Scripts',
263
+ 'function_call': func,
264
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
265
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
266
+ {'label': 'Service Call',
267
+ 'function_call': func,
268
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
269
+ 'params': [self.adaptor.description.elements.call, node]},
270
+ {'label': 'Script',
271
+ 'function_call': func,
272
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
273
+ 'params': [self.adaptor.description.elements.manipulate, node]},
274
+ {'label': 'Parallel',
275
+ 'function_call': func,
276
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
277
+ 'params': [self.adaptor.description.elements.parallel, node]},
278
+ {'label': 'Decision',
279
+ 'function_call': func,
280
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
281
+ 'params': [self.adaptor.description.elements.choose, node]},
282
+ {'label': 'Loop',
283
+ 'function_call': func,
284
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
285
+ 'params': [self.adaptor.description.elements.loop, node]},
286
+ {'label': 'Critical',
287
+ 'function_call': func,
288
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
289
+ 'params': [self.adaptor.description.elements.critical, node]}
290
+ ];
291
+ }, //}}}
292
+ 'adaptor' : {//{{{
293
+ 'mousedown': function (node,e) {
294
+ self.events.mousedown(node,e,true,false);
295
+ },
296
+ 'click': self.events.click,
297
+ 'dblclick': self.events.dblclick,
298
+ 'mouseover': self.events.mouseover,
299
+ 'mouseout': self.events.mouseout,
300
+ }//}}}
301
+ }; /*}}}*/
302
+ this.elements.alternative = { /*{{{*/
303
+ 'type': 'complex',
304
+ 'illustrator': {//{{{
305
+ 'endnodes' : 'passthrough',
306
+ 'closeblock':false,
307
+ 'expansion' : function(node) {
308
+ return 'vertical';
309
+ },
310
+ 'col_shift' : function(node) {
311
+ return false;
312
+ },
313
+ 'svg': self.adaptor.theme_dir + 'symbols/alternative.svg'
314
+ },//}}}
315
+ 'description': self.adaptor.theme_dir + 'rngs/alternative.rng',
316
+ 'permissible_children': function(node) { //{{{
317
+ if(node.get(0).tagName == 'alternative') { func = self.adaptor.description.insert_first_into }
318
+ else { func = self.adaptor.description.insert_after }
319
+ if(node.parents('parallel').length > node.parents('parallel_branch').length && node.get(0).tagName == 'alternative') {
320
+ return [{'label': 'Parallel Branch',
321
+ 'function_call': func,
322
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
323
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}];
324
+ }
325
+ return [
326
+ {'label': 'Service Call with Scripts',
327
+ 'function_call': func,
328
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
329
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
330
+ {'label': 'Service Call',
331
+ 'function_call': func,
332
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
333
+ 'params': [self.adaptor.description.elements.call, node]},
334
+ {'label': 'Script',
335
+ 'function_call': func,
336
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
337
+ 'params': [self.adaptor.description.elements.manipulate, node]},
338
+ {'label': 'Parallel',
339
+ 'function_call': func,
340
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
341
+ 'params': [self.adaptor.description.elements.parallel, node]},
342
+ {'label': 'Decision',
343
+ 'function_call': func,
344
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
345
+ 'params': [self.adaptor.description.elements.choose, node]},
346
+ {'label': 'Loop',
347
+ 'function_call': func,
348
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
349
+ 'params': [self.adaptor.description.elements.loop, node]},
350
+ {'label': 'Critical',
351
+ 'function_call': func,
352
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
353
+ 'params': [self.adaptor.description.elements.critical, node]}
354
+ ];
355
+ }, //}}}
356
+ 'adaptor' : {//{{{
357
+ 'mousedown': function (node,e) {
358
+ self.events.mousedown(node,e,true,false);
359
+ },
360
+ 'click': self.events.click,
361
+ 'dblclick': self.events.dblclick,
362
+ 'mouseover': self.events.mouseover,
363
+ 'mouseout': self.events.mouseout,
364
+ }//}}}
365
+ }; /*}}}*/
366
+ this.elements.loop = { /*{{{*/
367
+ 'type': 'complex',
368
+ 'illustrator': {//{{{
369
+ 'endnodes' : 'this',
370
+ 'closeblock' : true,
371
+ 'expansion' : function(node) {
372
+ return 'vertical';
373
+ },
374
+ 'col_shift' : function(node) {
375
+ return true;
376
+ },
377
+ 'svg': self.adaptor.theme_dir + 'symbols/loop.svg'
378
+ },// }}}
379
+ 'description': self.adaptor.theme_dir + 'rngs/loop.rng',
380
+ 'permissible_children': function(node) { //{{{
381
+ var func = null;
382
+ if(node.get(0).tagName == 'loop') { func = self.adaptor.description.insert_first_into }
383
+ else { func = self.adaptor.description.insert_after }
384
+ var childs = [
385
+ {'label': 'Service Call with Scripts',
386
+ 'function_call': func,
387
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
388
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
389
+ {'label': 'Service Call',
390
+ 'function_call': func,
391
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
392
+ 'params': [self.adaptor.description.elements.call, node]},
393
+ {'label': 'Manipulate',
394
+ 'function_call': func,
395
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
396
+ 'params': [self.adaptor.description.elements.manipulate, node]},
397
+ {'label': 'Decision',
398
+ 'function_call': func,
399
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
400
+ 'params': [self.adaptor.description.elements.choose, node]},
401
+ {'label': 'Loop',
402
+ 'function_call': func,
403
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
404
+ 'params': [self.adaptor.description.elements.loop, node]},
405
+ {'label': 'Critical',
406
+ 'function_call': func,
407
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
408
+ 'params': [self.adaptor.description.elements.critical, node]}
409
+ ];
410
+ if(node.parent('parallel').length > node.parent('parallel_branch').length) {
411
+ childs.push({'label': 'Parallel Branch',
412
+ 'function_call': func,
413
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
414
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}
415
+ );
416
+ } else {
417
+ childs.push({'label': 'Parallel',
418
+ 'function_call': func,
419
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
420
+ 'params': [self.adaptor.description.elements.parallel, node]}
421
+ );
422
+ }
423
+ return childs;
424
+ }, //}}}
425
+ 'adaptor' : {//{{{
426
+ 'mousedown': function (node,e) {
427
+ self.events.mousedown(node,e,true,true);
428
+ },
429
+ 'click': self.events.click,
430
+ 'dblclick': self.events.dblclick,
431
+ 'mouseover': self.events.mouseover,
432
+ 'mouseout': self.events.mouseout,
433
+ }//}}}
434
+ }; /*}}}*/
435
+ this.elements.parallel = { /*{{{*/
436
+ 'type': 'complex',
437
+ 'illustrator': {//{{{
438
+ 'endnodes' : 'this',
439
+ 'closeblock' : false,
440
+ 'border': true,
441
+ 'expansion' : function(node) {
442
+ // check if any sibling other than 'parallel_branch' is present
443
+ if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
444
+ return 'horizontal';
445
+ },
446
+ 'col_shift' : function(node) {
447
+ return true;
448
+ },
449
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
450
+ },//}}}
451
+ 'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
452
+ 'permissible_children': function(node) { //{{{
453
+ var childs = [
454
+ {'label': 'Service Call with Scripts',
455
+ 'function_call': self.adaptor.description.insert_last_into,
456
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
457
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
458
+ {'label': 'Service Call',
459
+ 'function_call': self.adaptor.description.insert_last_into,
460
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
461
+ 'params': [self.adaptor.description.elements.call, node]},
462
+ {'label': 'Manipulate',
463
+ 'function_call': self.adaptor.description.insert_last_into,
464
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
465
+ 'params': [self.adaptor.description.elements.manipulate, node]},
466
+ {'label': 'Decision',
467
+ 'function_call': self.adaptor.description.insert_last_into,
468
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
469
+ 'params': [self.adaptor.description.elements.choose, node]},
470
+ {'label': 'Loop',
471
+ 'function_call': self.adaptor.description.insert_last_into,
472
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
473
+ 'params': [self.adaptor.description.elements.loop, node]},
474
+ {'label': 'Critical',
475
+ 'function_call': self.adaptor.description.insert_last_into,
476
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
477
+ 'params': [self.adaptor.description.elements.critical, node]},
478
+ {'label': 'Parallel Branch',
479
+ 'function_call': self.adaptor.description.insert_last_into,
480
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
481
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}
482
+ ];
483
+ if(node.get(0).tagName != 'parallel')
484
+ childs.push({'label': 'Parallel',
485
+ 'function_call': self.adaptor.description.insert_last_into,
486
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
487
+ 'params': [self.adaptor.description.elements.parallel, node]});
488
+ return childs;
489
+ }, //}}}
490
+ 'adaptor' : {//{{{
491
+ 'mousedown': function (node,e) {
492
+ self.events.mousedown(node,e,true,true);
493
+ },
494
+ 'click': self.events.click,
495
+ 'dblclick': self.events.dblclick,
496
+ 'mouseover': self.events.mouseover,
497
+ 'mouseout': self.events.mouseout,
498
+ }//}}}
499
+ }; /*}}}*/
500
+ this.elements.parallel_branch = { /*{{{*/
501
+ 'type': 'complex',
502
+ 'illustrator': {//{{{
503
+ 'endnodes' : 'this',
504
+ 'closeblock' : false,
505
+ 'expansion' : function(node) {
506
+ return 'vertical';
507
+ },
508
+ 'col_shift' : function(node) {
509
+ if(node.parentNode.tagName == 'choose') return false;
510
+ if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
511
+ return false;
512
+ },
513
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch.svg'
514
+ },//}}}
515
+ 'description': self.adaptor.theme_dir + 'rngs/parallel_branch.rng',
516
+ 'permissible_children': function(node) { //{{{
517
+ var func = null;
518
+ var childs = null;
519
+ if(node.get(0).tagName == 'parallel_branch') { func = self.adaptor.description.insert_first_into }
520
+ else { func = self.adaptor.description.insert_after }
521
+ childs = [
522
+ {'label': 'Service Call with Scripts',
523
+ 'function_call': func,
524
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
525
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
526
+ {'label': 'Service Call',
527
+ 'function_call': func,
528
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
529
+ 'params': [self.adaptor.description.elements.call, node]},
530
+ {'label': 'Script',
531
+ 'function_call': func,
532
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
533
+ 'params': [self.adaptor.description.elements.manipulate, node]},
534
+ {'label': 'Parallel',
535
+ 'function_call': func,
536
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
537
+ 'params': [self.adaptor.description.elements.parallel, node]},
538
+ {'label': 'Decision',
539
+ 'function_call': func,
540
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
541
+ 'params': [self.adaptor.description.elements.choose, node]},
542
+ {'label': 'Loop',
543
+ 'function_call': func,
544
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
545
+ 'params': [self.adaptor.description.elements.loop, node]},
546
+ {'label': 'Critical',
547
+ 'function_call': func,
548
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
549
+ 'params': [self.adaptor.description.elements.critical, node]},
550
+ ];
551
+ if(node.parents('choose').length > node.parents('alternative, otherwise').length && node.get(0).tagName == 'parallel_branch') {
552
+ return [{'label': 'Alternative',
553
+ 'function_call': func,
554
+ 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
555
+ 'params': [self.adaptor.description.elements.alternative, node]}];
556
+ }
557
+ return childs;
558
+ }, //}}}
559
+ 'adaptor' : {//{{{
560
+ 'mousedown': function (node,e) {
561
+ self.events.mousedown(node,e,true,false);
562
+ },
563
+ 'click': self.events.click,
564
+ 'dblclick': self.events.dblclick,
565
+ 'mouseover': self.events.mouseover,
566
+ 'mouseout': self.events.mouseout,
567
+ }//}}}
568
+ }; /*}}}*/
569
+ this.elements.critical = { /*{{{*/
570
+ 'type': 'complex',
571
+ 'illustrator': {//{{{
572
+ 'endnodes' : 'aggregate',
573
+ 'closeblock' : false,
574
+ 'border': true,
575
+ 'expansion' : function(node) {
576
+ return 'vertical';
577
+ },
578
+ 'col_shift' : function(node) {
579
+ return true;
580
+ },
581
+ 'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
582
+ },//}}}
583
+ 'description': self.adaptor.theme_dir + 'rngs/critical.rng',
584
+ 'permissible_children': function(node) { //{{{
585
+ var func = null;
586
+ if(node.get(0).tagName == 'critical') { func = self.adaptor.description.insert_first_into }
587
+ else { func = self.adaptor.description.insert_after }
588
+ return [
589
+ {'label': 'Service Call with Scripts',
590
+ 'function_call': func,
591
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
592
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
593
+ {'label': 'Service Call',
594
+ 'function_call': func,
595
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
596
+ 'params': [self.adaptor.description.elements.call, node]},
597
+ {'label': 'Script',
598
+ 'function_call': func,
599
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
600
+ 'params': [self.adaptor.description.elements.manipulate, node]},
601
+ {'label': 'Parallel',
602
+ 'function_call': func,
603
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
604
+ 'params': [self.adaptor.description.elements.parallel, node]},
605
+ {'label': 'Decision',
606
+ 'function_call': func,
607
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
608
+ 'params': [self.adaptor.description.elements.choose, node]},
609
+ {'label': 'Loop',
610
+ 'function_call': func,
611
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
612
+ 'params': [self.adaptor.description.elements.loop, node]},
613
+ {'label': 'Critical',
614
+ 'function_call': func,
615
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
616
+ 'params': [self.adaptor.description.elements.critical, node]},
617
+ ];
618
+ }, //}}}
619
+ 'adaptor' : {//{{{
620
+ 'mousedown': function (node,e) {
621
+ self.events.mousedown(node,e,true,true);
622
+ },
623
+ 'click': self.events.click,
624
+ 'dblclick': self.events.dblclick,
625
+ 'mouseover': self.events.mouseover,
626
+ 'mouseout': self.events.mouseout,
627
+ }//}}}
628
+ }; /*}}}*/
629
+ this.elements.group = { /*{{{*/
630
+ 'type': 'complex',
631
+ 'illustrator': {//{{{
632
+ 'endnodes' : 'aggregate',
633
+ 'closeblock' : false,
634
+ 'border': 'injectiongroup', // other value than true,false inidcates the used class for the svg-object
635
+ 'expansion' : function(node) {
636
+ return 'vertical';
637
+ },
638
+ 'col_shift' : function(node) {
639
+ return true;
640
+ },
641
+ 'svg': null
642
+ },//}}}
643
+ 'description': self.adaptor.theme_dir + 'rngs/group.rng',
644
+ 'permissible_children': function(node) { //{{{
645
+ var func = null;
646
+ if(node.get(0).tagName == 'group') { func = self.adaptor.description.insert_first_into }
647
+ else { func = self.adaptor.description.insert_after }
648
+ return [
649
+ ];
650
+ }, //}}}
651
+ 'adaptor' : {//{{{
652
+ 'mousedown': function (node,e) {
653
+ self.events.mousedown(node,e,true,true);
654
+ },
655
+ 'click': self.events.click,
656
+ 'dblclick': self.events.dblclick,
657
+ 'mouseover': self.events.mouseover,
658
+ 'mouseout': self.events.mouseout,
659
+ }//}}}
660
+ }; /*}}}*/
661
+ this.elements.start = this.elements.description = { /*{{{*/
662
+ 'type': 'description',
663
+ 'illustrator': {//{{{
664
+ 'endnodes' : 'passthrough',
665
+ 'closeblock' : false,
666
+ 'expansion' : function(node) {
667
+ return 'vertical';
668
+ },
669
+ 'col_shift' : function(node) {
670
+ return true;
671
+ },
672
+ 'svg': self.adaptor.theme_dir + 'symbols/start.svg'
673
+ },//}}}
674
+ 'description': null,
675
+ 'permissible_children': function(node) { //{{{
676
+ var func = null;
677
+ if(node.get(0).tagName == 'description') { func = self.adaptor.description.insert_first_into }
678
+ else { func = self.adaptor.description.insert_after }
679
+ return [
680
+ {'label': 'Service Call with Scripts',
681
+ 'function_call': func,
682
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
683
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
684
+ {'label': 'Service Call',
685
+ 'function_call': func,
686
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
687
+ 'params': [self.adaptor.description.elements.call, node]},
688
+ {'label': 'Script Task',
689
+ 'function_call': func,
690
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
691
+ 'params': [self.adaptor.description.elements.manipulate, node]},
692
+ {'label': 'Parallel',
693
+ 'function_call': func,
694
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
695
+ 'params': [self.adaptor.description.elements.parallel, node]},
696
+ {'label': 'Decision',
697
+ 'function_call': func,
698
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
699
+ 'params': [self.adaptor.description.elements.choose, node]},
700
+ {'label': 'Loop',
701
+ 'function_call': func,
702
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
703
+ 'params': [self.adaptor.description.elements.loop, node]},
704
+ {'label': 'Critical',
705
+ 'function_call': func,
706
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
707
+ 'params': [self.adaptor.description.elements.critical, node]}
708
+ ];
709
+ }, //}}}
710
+ 'adaptor' : {//{{{
711
+ 'mousedown': function (node,e) {
712
+ self.events.mousedown(node,e,true,false);
713
+ },
714
+ 'click': self.events.click,
715
+ 'dblclick': self.events.dblclick,
716
+ 'mouseover': self.events.mouseover,
717
+ 'mouseout': self.events.mouseout,
718
+ }//}}}
719
+ }; /*}}}*/
720
+
721
+ // Abstract Elements
722
+ // * they may only have an illustrator (or other parts)
723
+ // * they HAVE TO have a parent
724
+ this.elements.callmanipulate = { /*{{{*/
725
+ 'type': 'abstract',
726
+ 'parent': 'call',
727
+ 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
728
+ 'illustrator': {//{{{
729
+ 'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
730
+ },//}}}
731
+ }; /*}}}*/
732
+ this.elements.choose_inclusive = { /*{{{*/
733
+ 'type': 'abstract',
734
+ 'parent': 'choose',
735
+ 'illustrator': {//{{{
736
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
737
+ },//}}}
738
+ }; /*}}}*/
739
+ this.elements.choose_exclusive = { /*{{{*/
740
+ 'type': 'abstract',
741
+ 'parent': 'choose',
742
+ 'illustrator': {//{{{
743
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
744
+ },//}}}
745
+ }; /*}}}*/
746
+ this.elements.scripts = { /*{{{*/
747
+ 'type': 'abstract',
748
+ 'description': [self.adaptor.theme_dir + 'rngs/update.rng',self.adaptor.theme_dir + 'rngs/finalize.rng']
749
+ }; /*}}}*/
750
+ this.elements.callinstantiation = { /*{{{*/
751
+ 'type': 'abstract',
752
+ 'parent': 'call',
753
+ 'illustrator': {//{{{
754
+ 'svg': self.adaptor.theme_dir + 'symbols/callinstantiation.svg'
755
+ },//}}}
756
+ }; /*}}}*/
757
+ this.elements.callcorrelationsend = { /*{{{*/
758
+ 'type': 'abstract',
759
+ 'parent': 'call',
760
+ 'illustrator': {//{{{
761
+ 'svg': self.adaptor.theme_dir + 'symbols/callcorrelationsend.svg'
762
+ },//}}}
763
+ }; /*}}}*/
764
+ this.elements.callcorrelationreceive = { /*{{{*/
765
+ 'type': 'abstract',
766
+ 'parent': 'call',
767
+ 'illustrator': {//{{{
768
+ 'svg': self.adaptor.theme_dir + 'symbols/callcorrelationreceive.svg'
769
+ },//}}}
770
+ }; /*}}}*/
771
+ this.elements.callworklist = { /*{{{*/
772
+ 'type': 'abstract',
773
+ 'parent': 'call',
774
+ 'illustrator': {//{{{
775
+ 'svg': self.adaptor.theme_dir + 'symbols/callworklist.svg'
776
+ },//}}}
777
+ }; /*}}}*/
778
+ this.elements.callmanipulateworklist = { /*{{{*/
779
+ 'type': 'abstract',
780
+ 'parent': 'call',
781
+ 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
782
+ 'illustrator': {//{{{
783
+ 'svg': self.adaptor.theme_dir + 'symbols/callmanipulateworklist.svg'
784
+ },//}}}
785
+ }; /*}}}*/
786
+ }