cockpit/themes/model/theme.js in cpee-2.1.56 vs cockpit/themes/model/theme.js in cpee-2.1.57
- old
+ new
@@ -1,1419 +1,771 @@
-function WFAdaptorManifestation(adaptor) {
- var self = this;
+WFAdaptorManifestation = class extends WFAdaptorManifestationBase {
+ constructor(adaptor) {
+ super(adaptor);
+ var self = this;
- this.adaptor = adaptor;
- this.resources = {};
- this.elements = {};
- this.events = {};
- this.compact = false;
- this.striped = false;
- this.endpoints = {};
- this.presstimer;
+ var contextMenuHandling = function(svgid,e,child,sibling) { //{{{
+ if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
- //{{{ transform the details data to description parts based on rng
- this.source = function(base,opts) {
- if (base[0].namespaceURI == "http://relaxng.org/ns/structure/1.0") {
- $('#relaxngworker').empty();
- var rngw = new RelaxNGui(base,$('#relaxngworker'),self.adaptor.description.context_eval);
- var nnew = $(rngw.save().documentElement);
- return(nnew);
- } else {
- if (opts && opts == 'clone') {
- base = base.clone();
- if (base.attr('id')) {
- base.attr('id',self.adaptor.description.get_free_id());
- }
- base.find('*[id]').each(function(k,v){
- $(v).attr('id',self.adaptor.description.get_free_id(base));
- });
- }
- return base;
- }
- }; //}}}
- //{{{ Return the svgid for the selected task
- this.selected = function(){
- var svgid = 'unknown';
- _.each(self.adaptor.illustrator.get_elements(),function(value,key) {
- if ($(value).hasClass('selected')) {
- svgid = $(value).attr('element-id');
- }
- });
- return svgid;
- }; //}}}
- //{{{ Return the svgids for all marked tasks
- this.marked = function(){
- var svgid = [];
- _.each(self.adaptor.illustrator.get_elements(),function(value,key) {
- if ($(value).hasClass('marked')) {
- svgid.push($(value).attr('element-id'));
- }
- });
- return svgid;
- }; //}}}
- //{{{ Return the json for all marked tasks
- this.marked_text = function(){
- var nodes = [];
- var markymark = _.uniq(self.marked());
- $(markymark).each(function(key,svgid){
- var node = self.adaptor.description.get_node_by_svg_id(svgid);
- nodes.push($(node).serializePrettyXML());
- });
- return JSON.stringify(nodes);
- }; //}}}
- //{{{ Render the details from rng (right hand side of graph tab)
- this.update_details = function(svgid){
- var tab = $('#dat_details');
- var node = self.adaptor.description.get_node_by_svg_id(svgid).get(0);
- if (self.adaptor.description.elements[$(node).attr('svg-subtype')]) {
- save['details_target'] = { 'svgid': svgid, 'model': self.adaptor.description };
- var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
- if (save['endpoints_cache'][$(node).attr('endpoint')] && save['endpoints_cache'][$(node).attr('endpoint')].schema) {
- var schema = save['endpoints_cache'][$(node).attr('endpoint')].schema.documentElement;
- $(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
- }
- if (save['endpoints_list'][$(node).attr('endpoint')] && (!save['endpoints_list'][$(node).attr('endpoint')].startsWith('http') || save['endpoints_list'][$(node).attr('endpoint')].match(/^https?-/))) {
- $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
- }
- var nn = $X($(node).serializeXML());
- nn.removeAttr('svg-id');
- nn.removeAttr('svg-type');
- nn.removeAttr('svg-subtype');
- nn.removeAttr('svg-label');
+ var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
+ var group = null;
+ var menu = {};
- tab.empty();
- save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
- save['details'].content(nn);
-
- format_visual_forms();
- }
- }; //}}}
-
- function copyOrMove(menu,group,xml_node,mode) { //{{{
- var nodes = localStorage.getItem('marked');
-
- if (typeof(nodes) != "string") { return; }
-
- nodes = JSON.parse(nodes);
- $(nodes).each(function(key,str) {
- nodes[key] = $X(str);
- });
-
- var check1 = [];
- var check2 = [];
- $(nodes).each(function(key,node){
- check1.push($(node).attr('svg-type'));
- });
- $(group).each(function(key,value){
- check2.push(value.type);
- });
-
- if (nodes.length > 0 && _.uniq(check1).length == _.intersection(check1,check2).length) {
- if (myid == localStorage.getItem('marked_from')) {
- $(nodes).each(function(key,node){
- nodes[key] = self.adaptor.description.get_node_by_svg_id($(node).attr('svg-id'));
- });
- }
- nodes.reverse();
- var iconm = self.resources['arrow'].clone();
- var iconc = self.resources['arrow'].clone();
- iconm.children('.rfill').addClass('menu');
- if (myid == localStorage.getItem('marked_from')) {
- menu.push(
- {
- 'label': '<em>Move Marked Elements</em>',
- 'function_call': mode,
- 'menu_icon': iconm,
- 'type': undefined,
- 'params': [nodes, xml_node]
+ if (child) {
+ group = self.elements[xml_node.get(0).tagName].permissible_children(xml_node,'into');
+ if(group.length > 0) {
+ menu['Insert into'] = group;
+ copyOrMove(menu['Insert into'],group,xml_node,self.adaptor.description.insert_first_into);
+ }
+ if (self.elements[xml_node.get(0).tagName].permissible_children_expert) {
+ group = self.elements[xml_node.get(0).tagName].permissible_children_expert(xml_node,'into');
+ if(group.length > 0) {
+ menu['Insert into (Experts Only!)'] = group;
+ copyOrMove(menu['Insert into (Experts Only!)'],group,xml_node,self.adaptor.description.insert_first_into);
}
- );
- }
- menu.push(
- {
- 'label': '<em>Copy Marked Elements</em>',
- 'function_call': mode,
- 'menu_icon': iconc,
- 'type': undefined,
- 'params': [nodes, xml_node, 'clone']
}
- );
- }
- } //}}}
-
- function contextMenuHandling(svgid,e,child,sibling) { //{{{
- if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
-
- var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
- var group = null;
- var menu = {};
-
- if (child) {
- group = self.elements[xml_node.get(0).tagName].permissible_children(xml_node,'into');
- if(group.length > 0) {
- menu['Insert into'] = group;
- copyOrMove(menu['Insert into'],group,xml_node,self.adaptor.description.insert_first_into);
}
- if (self.elements[xml_node.get(0).tagName].permissible_children_expert) {
- group = self.elements[xml_node.get(0).tagName].permissible_children_expert(xml_node,'into');
+ if (sibling) {
+ group = self.elements[xml_node.parent().get(0).tagName].permissible_children(xml_node,'after');
if(group.length > 0) {
- menu['Insert into (Experts Only!)'] = group;
- copyOrMove(menu['Insert into (Experts Only!)'],group,xml_node,self.adaptor.description.insert_first_into);
+ menu['Insert after'] = group;
+ copyOrMove(menu['Insert after'],group,xml_node,self.adaptor.description.insert_after);
}
- }
- }
- if (sibling) {
- group = self.elements[xml_node.parent().get(0).tagName].permissible_children(xml_node,'after');
- if(group.length > 0) {
- menu['Insert after'] = group;
- copyOrMove(menu['Insert after'],group,xml_node,self.adaptor.description.insert_after);
- }
- if (self.elements[xml_node.parent().get(0).tagName].permissible_children_expert) {
- group = self.elements[xml_node.parent().get(0).tagName].permissible_children_expert(xml_node,'after');
- if(group.length > 0) {
- menu['Insert after (Experts Only!)'] = group;
- copyOrMove(menu['Insert after (Experts Only!)'],group,xml_node,self.adaptor.description.insert_after);
+ if (self.elements[xml_node.parent().get(0).tagName].permissible_children_expert) {
+ group = self.elements[xml_node.parent().get(0).tagName].permissible_children_expert(xml_node,'after');
+ if(group.length > 0) {
+ menu['Insert after (Experts Only!)'] = group;
+ copyOrMove(menu['Insert after (Experts Only!)'],group,xml_node,self.adaptor.description.insert_after);
+ }
}
}
- }
- if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
- var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
- icon.find('.rfill').addClass('menu');
- icon.find('.hfill').addClass('menu');
- menu['Delete'] = [{
- 'label': 'Remove Element',
- 'function_call': function(selector,target,selected){
- del_ui_pos(target)
- self.adaptor.description.remove(selector,target);
- localStorage.removeItem('marked');
- localStorage.removeItem('marked_from');
- },
- 'menu_icon': icon,
- 'type': undefined,
- 'params': [null, xml_node, self.selected()]
- }];
- var nodes = localStorage.getItem('marked');
- nodes = JSON.parse(nodes);
- if (nodes && nodes.length > 0) {
- var icond = self.resources['delete'].clone();
- icond.children('.standfat').addClass('menu');
- menu['Delete'].push({
- 'label': 'Remove Marked Elements',
- 'function_call': function(){
- $(nodes).each(function(key,str) {
- nodes[key] = $X(str);
- });
- let svgids = [];
- $(nodes).each(function(key,node){
- svgids.push($(node).attr('svg-id'));
- });
- svgids.sort((a,b) => {
- if (a > b) { return -1; }
- else if (a < b) { return 1; }
- else { return 0; }
- });
- svgids.forEach(svgid => {
- var target = self.adaptor.description.get_node_by_svg_id(svgid);
- del_ui_pos(target)
- self.adaptor.description.remove(null,target);
- localStorage.removeItem('marked');
- localStorage.removeItem('marked_from');
- });
+ if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
+ var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
+ icon.find('.rfill').addClass('menu');
+ icon.find('.hfill').addClass('menu');
+ menu['Delete'] = [{
+ 'label': 'Remove Element',
+ 'function_call': function(selector,target,selected){
+ del_ui_pos(target)
+ self.adaptor.description.remove(selector,target);
+ localStorage.removeItem('marked');
+ localStorage.removeItem('marked_from');
},
- 'menu_icon': icond,
+ 'menu_icon': icon,
'type': undefined,
- 'params': []
- })
- }
- }
- if($('> code', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
- var icon = self.elements.callmanipulate.illustrator.svg.clone();
- icon.children('.rfill:last').addClass('menu');
- menu['Delete'].push({
- 'label': 'Remove Output Transformation',
- 'function_call': self.adaptor.description.remove,
- 'menu_icon': icon,
- 'type': undefined,
- 'params': ['> code', xml_node]
- });
- }
- new CustomMenu(e).contextmenu(menu);
- } //}}}
-
- function positionHandling(svgid) {
- var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
- if (vtarget.length > 0) {
- if (vtarget.parents('g.activities.passive, g.activities.active').length > 0) {
- del_ui_pos(xml_node);
- } else {
- add_ui_pos(xml_node);
- }
- }
- }
-
- // Events
- this.events.touchend = function(svgid, e) { // {{{
- clearTimeout(self.presstimer);
- } // }}}
- this.events.touchstart = function(svgid, e, child, sibling) { // {{{
- self.presstimer = window.setTimeout(function() { contextMenuHandling(svgid,e,child,sibling); },1000);
- return false;
- } // }}}
- this.events.mousedown = function(svgid, e, child, sibling) { // {{{
- if(e.button == 0) { // left-click
- } else if(e.button == 1) { // middle-click
- positionHandling(svgid);
- } else if(e.button == 2) { // right-click
- contextMenuHandling(svgid,e,child,sibling);
- }
- return false;
- } // }}}
- this.events.suppress = function(svgid, e, child, sibling) { // {{{
- return false;
- } // }}}
- this.events.click = function(svgid, e) { // {{{
- if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
- return;
- }
-
- self.adaptor.illustrator.get_elements().removeClass('selected');
- self.adaptor.illustrator.get_labels().removeClass('selected');
-
- if (e && (e.ctrlKey || e.metaKey)) {
- if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
- var tab = $('#dat_details');
- tab.empty();
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
- if (vtarget.length > 0) {
- var vt = vtarget.parents('g.element[element-id]');
- vt.toggleClass('marked');
- if (vt.hasClass('marked')) {
- localStorage.setItem('marked',self.marked_text());
- localStorage.setItem('marked_from',myid);
- } else {
- localStorage.removeItem('marked');
- localStorage.removeItem('marked_from');
+ 'params': [null, xml_node, self.selected()]
+ }];
+ var nodes = localStorage.getItem('marked');
+ nodes = JSON.parse(nodes);
+ if (nodes && nodes.length > 0) {
+ var icond = self.resources['delete'].clone();
+ icond.children('.standfat').addClass('menu');
+ menu['Delete'].push({
+ 'label': 'Remove Marked Elements',
+ 'function_call': function(){
+ $(nodes).each(function(key,str) {
+ nodes[key] = $X(str);
+ });
+ let svgids = [];
+ $(nodes).each(function(key,node){
+ svgids.push($(node).attr('svg-id'));
+ });
+ svgids.sort((a,b) => {
+ if (a > b) { return -1; }
+ else if (a < b) { return 1; }
+ else { return 0; }
+ });
+ svgids.forEach(svgid => {
+ var target = self.adaptor.description.get_node_by_svg_id(svgid);
+ del_ui_pos(target)
+ self.adaptor.description.remove(null,target);
+ localStorage.removeItem('marked');
+ localStorage.removeItem('marked_from');
+ });
+ },
+ 'menu_icon': icond,
+ 'type': undefined,
+ 'params': []
+ })
}
}
- } else if (e && (e.shiftKey)) {
- positionHandling(svgid);
- } else {
- self.adaptor.illustrator.get_elements().removeClass('marked');
- localStorage.removeItem('marked');
- localStorage.removeItem('marked_from');
-
- var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
- if (vtarget.length > 0) {
- vtarget.parents('g.element[element-id]').addClass('selected');
+ if($('> code', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
+ var icon = self.elements.callmanipulate.illustrator.svg.clone();
+ icon.children('.rfill:last').addClass('menu');
+ menu['Delete'].push({
+ 'label': 'Remove Output Transformation',
+ 'function_call': self.adaptor.description.remove,
+ 'menu_icon': icon,
+ 'type': undefined,
+ 'params': ['> code', xml_node]
+ });
}
- self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
+ new CustomMenu(e).contextmenu(menu);
+ } //}}}
- self.update_details(svgid);
- }
- } // }}}
- this.events.dblclick = function(svgid, e) { // {{{
- } // }}}
- this.events.mouseover = function(svgid, e) { // {{{
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
- return false;
- } // }}}
- this.events.mouseout = function(svgid, e) { // {{{
- self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
- self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
- self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
- return false;
- } // }}}
- this.events.dragstart = function (svgid, e) { //{{{
- } //}}}
-
- // other resources
- this.resources.arrow = self.adaptor.theme_dir + 'symbols/arrow.svg';
- this.resources.delete = self.adaptor.theme_dir + 'symbols/delete.svg';
-
- // Primitive Elements
- this.elements.call = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'label': function(node){
- var ret;
- if ($('> url',$(node).children('parameters').children('arguments')).length > 0) {
- ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' <a target="_blank" href="' + $('> url',$(node).children('parameters').children('arguments')).text() + '/open"></a>' } ];
- } else {
- ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') } ];
+ this.elements.call = { /*{{{*/
+ 'type': 'primitive',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'label': function(node){
+ var ret;
+ if ($('> url',$(node).children('parameters').children('arguments')).length > 0) {
+ ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') + ' <a target="_blank" href="' + $('> url',$(node).children('parameters').children('arguments')).text() + '/open"></a>' } ];
+ } else {
+ ret = [ { column: 'Label', value: $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'') } ];
+ }
+ return ret;
+ },
+ 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
+ 'resolve_symbol': function(node) {
+ if($('> code', node).length > 0) {
+ return 'callmanipulate';
+ } else {
+ return 'call';
+ }
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/call.svg'
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/call.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ if(node.children('code').length < 1)
+ return [
+ {'label': 'Output Transformation',
+ 'function_call': self.adaptor.description.insert_last_into,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': undefined,
+ 'params': [self.adaptor.description.elements.scripts, node]}
+ ];
+ return [];
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dragstart': self.events.dragstart,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
+ }; /*}}}*/
+ this.elements.otherwise = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'endnodes': 'passthrough',
+ 'closeblock': false,
+ 'noarrow': true,
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'col_shift': function(node) {
+ return false;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/otherwise.svg'
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/otherwise.rng',
+ 'neverdelete': true,
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ var childs = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
+ 'function_call': func,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
+ 'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Parallel',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Terminate',
+ 'function_call': func,
+ 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
+ 'type': 'terminate',
+ 'params': [self.adaptor.description.elements.terminate, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
+ ];
+ if(node.parent('parallel_branch').length > 0) {
+ childs.push({
+ 'label': 'Critical',
+ 'function_call': func,
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
+ 'type': 'critical',
+ 'params': [self.adaptor.description.elements.critical, node]
+ });
}
- return ret;
- },
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
- 'resolve_symbol': function(node) {
- if($('> code', node).length > 0) {
- return 'callmanipulate';
- } else {
- return 'call';
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,false); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,false); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.alternative = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'label': function(node){
+ var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
+ return ret;
+ },
+ 'endnodes': 'passthrough',
+ 'noarrow': true,
+ 'closeblock':false,
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'col_shift': function(node) {
+ return false;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/alternative.svg'
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/alternative.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ if(node.parents('parallel').length > node.parents('parallel_branch').length && node.get(0).tagName == 'alternative') {
+ return [{'label': 'Parallel Branch',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
+ 'type': 'parallel_branch',
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}];
}
- },
- 'svg': self.adaptor.theme_dir + 'symbols/call.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/call.rng',
- 'permissible_children': function(node,mode) { //{{{
- if(node.children('code').length < 1)
- return [
- {'label': 'Output Transformation',
- 'function_call': self.adaptor.description.insert_last_into,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': undefined,
- 'params': [self.adaptor.description.elements.scripts, node]}
+ var childs = [
+ {'label': 'Task with Output Transformation',
+ 'function_call': func,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
+ 'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Parallel',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Terminate',
+ 'function_call': func,
+ 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
+ 'type': 'terminate',
+ 'params': [self.adaptor.description.elements.terminate, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
];
- return [];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dragstart': self.events.dragstart,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.manipulate = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'label': function(node){
- var lab = $(node).attr('label');
- if (lab) {
- return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') } ];
- } else {
- return [];
+ if(node.parent('parallel_branch').length > 0) {
+ childs.push({
+ 'label': 'Critical',
+ 'function_call': func,
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
+ 'type': 'critical',
+ 'params': [self.adaptor.description.elements.critical, node]
+ });
}
- },
- 'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
- 'permissible_children': function(node,mode) { //{{{
- return [];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,false,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.escape = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/escape.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/escape.rng',
- 'permissible_children': function(node,mode) { //{{{
- return [];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,false,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.stop = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/stop.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/stop.rng',
- 'permissible_children': function(node,mode) { //{{{
- return [];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,false,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.terminate = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'final': true,
- 'svg': self.adaptor.theme_dir + 'symbols/terminate.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/terminate.rng',
- 'permissible_children': function(node,mode) { //{{{
- return [];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,false,false); },
- 'touchend': self.events.touchend,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.end = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/end.svg'
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.suppress(); }
- }//}}}
- }; /*}}}*/
- this.elements.event_end = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.suppress(); },
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.choose_finish = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg',
- 'resolve_symbol': function(node) {
- if($(node).attr('mode') == 'exclusive') {
- return 'choose_exclusive_finish';
- } else {
- return 'choose_inclusive_finish';
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.loop = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'resolve_symbol': function(node) {
+ if($(node).attr('mode') == 'pre_test') {
+ return 'loop_head';
+ } else {
+ return 'loop_tail';
+ }
+ },
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'col_shift': function(node) {
+ return true;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/loop.svg'
+ },// }}}
+ 'description': self.adaptor.theme_dir + 'rngs/loop.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
+ 'function_call': func,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
+ 'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Terminate',
+ 'function_call': func,
+ 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
+ 'type': 'terminate',
+ 'params': [self.adaptor.description.elements.terminate, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
+ ];
+ if(node.parent('parallel_branch').length > 0) {
+ childs.push({
+ 'label': 'Critical',
+ 'function_call': func,
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
+ 'type': 'critical',
+ 'params': [self.adaptor.description.elements.critical, node]
+ });
}
- },
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.loop_finish = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'closeblock': true,
- 'label': function(node){
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
- return ret;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg',
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.parallel_finish = { /*{{{*/
- 'type': 'primitive',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
- 'resolve_symbol': function(node) {
- if($(node).children(':not(parallel_branch)').length > 0) {
- return 'parallel_complex';
- } else if($(node).attr('cancel') == 'last' && $(node).attr('wait') == '-1') {
- return 'parallel_simple';
- } else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '-1') {
- return 'parallel_event_all';
- } else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == '1') {
- return 'parallel_event_one';
+ if(node.parent('parallel').length > node.parent('parallel_branch').length) {
+ childs.push({'label': 'Parallel Branch',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
+ 'type': 'parallel_branch',
+ 'params': [self.adaptor.description.elements.parallel_branch, node]}
+ );
} else {
- return 'parallel_complex';
+ childs.push({'label': 'Parallel',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]}
+ );
}
- },
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
-
- // Complex Elements
- this.elements.choose = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
- 'endnodes': 'aggregate',
- 'closeblock': false,
- 'closing_symbol': 'choose_finish',
- 'expansion': function(node) {
- return 'horizontal';
- },
- 'resolve_symbol': function(node) {
- if($(node).attr('mode') == 'exclusive') {
- return 'choose_exclusive';
- } else {
- return 'choose_inclusive';
- }
- },
- 'col_shift': function(node) {
- return false;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/choose.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/choose.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- if(node.children('parallel_branch').length > 0) {
- return [{'label': 'Parallel Branch',
- 'function_call': func,
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
- 'type': 'parallel_branch',
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
- }
- var childs = [{'label': 'Alternative',
- 'function_call': func,
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
- 'type': 'alternative',
- 'params': [self.adaptor.description.elements.alternative, node]}];
- if((node.children('otherwise').length == 0) && node.parents('parallel').length == node.parents('parallel_branch').length && node.parent('choose').length == 0)
- childs.push({'label': 'Otherwise',
- 'function_call': self.adaptor.description.insert_last_into,
- 'menu_icon': self.elements.otherwise.illustrator.svg.clone(),
- 'type': 'otherwise',
- 'params': [self.adaptor.description.elements.otherwise, node]});
- if(node.parents('parallel').length > node.parents('parallel_branch').length)
- childs.push({'label': 'Parallel Branch',
- 'function_call': func,
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
- 'type': 'parallel_branch',
- 'params': [self.adaptor.description.elements.parallel_branch, node]});
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout
- }//}}}
- }; /*}}}*/
- this.elements.otherwise = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'endnodes': 'passthrough',
- 'closeblock': false,
- 'noarrow': true,
- 'expansion': function(node) {
- return 'vertical';
- },
- 'col_shift': function(node) {
- return false;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/otherwise.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/otherwise.rng',
- 'neverdelete': true,
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- var childs = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': func,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.parent('parallel_branch').length > 0) {
- childs.push({
- 'label': 'Critical',
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'endnodes': 'aggregate',
+ 'closeblock': false,
+ 'closing_symbol': 'parallel_finish',
+ 'expansion': function(node) {
+ // check if any sibling other than 'parallel_branch' is present
+ if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
+ return 'horizontal';
+ },
+ 'col_shift': function(node) {
+ return true;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
+ 'resolve_symbol': function(node) {
+ if($(node).attr('cancel') == 'last') {
+ return 'parallel_start';
+ } else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == 1) {
+ return 'parallel_eventbased_exclusive';
+ } else {
+ return 'parallel_eventbased_parallel';
+ }
+ },
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Parallel Branch',
'function_call': func,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]
- });
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,false); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,false); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.alternative = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'label': function(node){
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
- return ret;
- },
- 'endnodes': 'passthrough',
- 'noarrow': true,
- 'closeblock':false,
- 'expansion': function(node) {
- return 'vertical';
- },
- 'col_shift': function(node) {
- return false;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/alternative.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/alternative.rng',
- 'permissible_children': function(node,mode) { //{{{
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- if(node.parents('parallel').length > node.parents('parallel_branch').length && node.get(0).tagName == 'alternative') {
- return [{'label': 'Parallel Branch',
- 'function_call': func,
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
- 'type': 'parallel_branch',
- 'params': [self.adaptor.description.elements.parallel_branch, node]}];
- }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': func,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.parent('parallel_branch').length > 0) {
- childs.push({
- 'label': 'Critical',
+ 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
+ 'type': 'parallel_branch',
+ 'params': [self.adaptor.description.elements.parallel_branch, node]},
+ ];
+ return childs;
+ }, //}}}
+ 'permissible_children_expert': function(node,mode) { //{{{
+ var func = null;
+ if (mode.match(/into/)) { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
'function_call': func,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]
- });
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.loop = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'resolve_symbol': function(node) {
- if($(node).attr('mode') == 'pre_test') {
- return 'loop_head';
- } else {
- return 'loop_tail';
- }
- },
- 'expansion': function(node) {
- return 'vertical';
- },
- 'col_shift': function(node) {
- return true;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/loop.svg'
- },// }}}
- 'description': self.adaptor.theme_dir + 'rngs/loop.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': func,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.parent('parallel_branch').length > 0) {
- childs.push({
- 'label': 'Critical',
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
+ ];
+ if(node.get(0).tagName != 'parallel')
+ childs.push({'label': 'Parallel',
+ 'function_call': self.adaptor.description.insert_last_into,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]});
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel_branch = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'endnodes': 'passthrough',
+ 'closeblock': false,
+ 'noarrow': true,
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'resolve_symbol': function(node,shift) {
+ if(shift == true) {
+ return 'parallel_branch_event';
+ } else {
+ return 'parallel_branch_normal';
+ }
+ },
+ 'col_shift': function(node) {
+ if(node.parentNode.tagName == 'choose') return false;
+ if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
+ return false;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch.svg'
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/parallel_branch.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
+ 'function_call': func,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
+ 'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Parallel',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Terminate',
+ 'function_call': func,
+ 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
+ 'type': 'terminate',
+ 'params': [self.adaptor.description.elements.terminate, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]},
+ {'label': 'Critical',
+ 'function_call': func,
'menu_icon': self.elements.critical.illustrator.svg.clone(),
'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]
- });
- }
- if(node.parent('parallel').length > node.parent('parallel_branch').length) {
- childs.push({'label': 'Parallel Branch',
- 'function_call': func,
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
- 'type': 'parallel_branch',
- 'params': [self.adaptor.description.elements.parallel_branch, node]}
- );
- } else {
- childs.push({'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]}
- );
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.parallel = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'endnodes': 'aggregate',
- 'closeblock': false,
- 'closing_symbol': 'parallel_finish',
- 'expansion': function(node) {
- // check if any sibling other than 'parallel_branch' is present
- if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
- return 'horizontal';
- },
- 'col_shift': function(node) {
- return true;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
- 'resolve_symbol': function(node) {
- if($(node).attr('cancel') == 'last') {
- return 'parallel_start';
- } else if($(node).attr('cancel') == 'first' && $(node).attr('wait') == 1) {
- return 'parallel_eventbased_exclusive';
- } else {
- return 'parallel_eventbased_parallel';
+ 'params': [self.adaptor.description.elements.critical, node]}
+ ];
+ if(node.parents('choose').length > node.parents('alternative, otherwise').length && node.get(0).tagName == 'parallel_branch') {
+ return [{'label': 'Alternative',
+ 'function_call': func,
+ 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
+ 'type': 'alternative',
+ 'params': [self.adaptor.description.elements.alternative, node]}];
}
- },
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Parallel Branch',
- 'function_call': func,
- 'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
- 'type': 'parallel_branch',
- 'params': [self.adaptor.description.elements.parallel_branch, node]},
- ];
- return childs;
- }, //}}}
- 'permissible_children_expert': function(node,mode) { //{{{
- var func = null;
- if (mode.match(/into/)) { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.get(0).tagName != 'parallel')
- childs.push({'label': 'Parallel',
- 'function_call': self.adaptor.description.insert_last_into,
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.critical = { /*{{{*/
+ 'type': 'complex',
+ 'illustrator': {//{{{
+ 'endnodes': 'aggregate',
+ 'closeblock': false,
+ 'border': true,
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'col_shift': function(node) {
+ return true;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
+ },//}}}
+ 'description': self.adaptor.theme_dir + 'rngs/critical.rng',
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
+ 'function_call': func,
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
+ 'function_call': func,
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Parallel',
+ 'function_call': func,
'menu_icon': self.elements.parallel.illustrator.svg.clone(),
'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]});
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.parallel_branch = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'endnodes': 'passthrough',
- 'closeblock': false,
- 'noarrow': true,
- 'expansion': function(node) {
- return 'vertical';
- },
- 'resolve_symbol': function(node,shift) {
- if(shift == true) {
- return 'parallel_branch_event';
- } else {
- return 'parallel_branch_normal';
+ 'params': [self.adaptor.description.elements.parallel, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Terminate',
+ 'function_call': func,
+ 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
+ 'type': 'terminate',
+ 'params': [self.adaptor.description.elements.terminate, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
+ ];
+ if(node.parent('parallel_branch').length > 0) {
+ childs.push({
+ 'label': 'Critical',
+ 'function_call': func,
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
+ 'type': 'critical',
+ 'params': [self.adaptor.description.elements.critical, node]
+ });
}
- },
- 'col_shift': function(node) {
- if(node.parentNode.tagName == 'choose') return false;
- if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
- return false;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/parallel_branch.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': func,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]},
- {'label': 'Critical',
- 'function_call': func,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]}
- ];
- if(node.parents('choose').length > node.parents('alternative, otherwise').length && node.get(0).tagName == 'parallel_branch') {
- return [{'label': 'Alternative',
- 'function_call': func,
- 'menu_icon': self.elements.alternative.illustrator.svg.clone(),
- 'type': 'alternative',
- 'params': [self.adaptor.description.elements.alternative, node]}];
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.critical = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'endnodes': 'aggregate',
- 'closeblock': false,
- 'border': true,
- 'expansion': function(node) {
- return 'vertical';
- },
- 'col_shift': function(node) {
- return true;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/critical.svg'
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/critical.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': func,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.parent('parallel_branch').length > 0) {
- childs.push({
- 'label': 'Critical',
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ this.elements.start = this.elements.description = { /*{{{*/
+ 'type': 'description',
+ 'illustrator': {//{{{
+ 'endnodes': 'passthrough',
+ 'closeblock': false,
+ 'balance': true,
+ 'expansion': function(node) {
+ return 'vertical';
+ },
+ 'closing_symbol': 'end',
+ 'col_shift': function(node) {
+ return true;
+ },
+ 'svg': self.adaptor.theme_dir + 'symbols/start.svg'
+ },//}}}
+ 'description': null,
+ 'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
+ var childs = [
+ {'label': 'Task with Output Transformation',
'function_call': func,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]
- });
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.group = { /*{{{*/
- 'type': 'complex',
- 'illustrator': {//{{{
- 'endnodes': 'aggregate',
- 'closeblock': false,
- 'border': 'injectiongroup', // other value than true,false inidcates the used class for the svg-object
- 'expansion': function(node) {
- return 'vertical';
- },
- 'col_shift': function(node) {
- return true;
- },
- 'svg': null
- },//}}}
- 'description': self.adaptor.theme_dir + 'rngs/group.rng',
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- return [
- ];
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,true); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
- this.elements.start = this.elements.description = { /*{{{*/
- 'type': 'description',
- 'illustrator': {//{{{
- 'endnodes': 'passthrough',
- 'closeblock': false,
- 'balance': true,
- 'expansion': function(node) {
- return 'vertical';
- },
- 'closing_symbol': 'end',
- 'col_shift': function(node) {
- return true;
- },
- 'svg': self.adaptor.theme_dir + 'symbols/start.svg'
- },//}}}
- 'description': null,
- 'permissible_children': function(node,mode) { //{{{
- var func = null;
- if (mode == 'into') { func = self.adaptor.description.insert_first_into }
- else { func = self.adaptor.description.insert_after }
- var childs = [
- {'label': 'Task with Output Transformation',
- 'function_call': func,
- 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
- 'type': 'callmanipulate',
- 'params': [self.adaptor.description.elements.callmanipulate, node]},
- {'label': 'Task',
- 'function_call': func,
- 'menu_icon': self.elements.call.illustrator.svg.clone(),
- 'type': 'call',
- 'params': [self.adaptor.description.elements.call, node]},
- {'label': 'Script',
- 'function_call': func,
- 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
- 'type': 'manipulate',
- 'params': [self.adaptor.description.elements.manipulate, node]},
- {'label': 'Parallel',
- 'function_call': func,
- 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
- 'type': 'parallel',
- 'params': [self.adaptor.description.elements.parallel, node]},
- {'label': 'Decision',
- 'function_call': func,
- 'menu_icon': self.elements.choose.illustrator.svg.clone(),
- 'type': 'choose',
- 'params': [self.adaptor.description.elements.choose, node]},
- {'label': 'Loop',
- 'function_call': func,
- 'menu_icon': self.elements.loop.illustrator.svg.clone(),
- 'type': 'loop',
- 'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Stop',
- 'function_call': func,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]}
- ];
- if(node.parent('parallel_branch').length > 0) {
- childs.push({
- 'label': 'Critical',
+ 'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
+ 'type': 'callmanipulate',
+ 'params': [self.adaptor.description.elements.callmanipulate, node]},
+ {'label': 'Task',
'function_call': func,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]
- });
- }
- return childs;
- }, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,false); },
- 'touchstart': function (node,e) { self.events.touchstart(node,e,true,false); },
- 'touchend': self.events.touchend,
- 'click': self.events.click,
- 'dblclick': self.events.dblclick,
- 'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
- }//}}}
- }; /*}}}*/
-
- // Abstract Elements
- // * they may only have an illustrator (or other parts)
- // * they HAVE TO have a parent
- this.elements.callmanipulate = { /*{{{*/
- 'parent': 'call',
- 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
- 'illustrator': {//{{{
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
- 'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
- },//}}}
- }; /*}}}*/
- this.elements.loop_head = { /*{{{*/
- 'parent': 'loop',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'closeblock': true,
- 'label': function(node){
- var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
- return ret;
- },
- }//}}}
- }; /*}}}*/
- this.elements.loop_tail = { /*{{{*/
- 'parent': 'loop',
- 'illustrator': {//{{{
- 'endnodes': 'aggregate',
- 'closeblock': false,
- 'closing_symbol': 'loop_finish'
- },//}}}
- }; /*}}}*/
- this.elements.choose_inclusive = { /*{{{*/
- 'parent': 'choose',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
- }//}}}
- }; /*}}}*/
- this.elements.choose_exclusive = { /*{{{*/
- 'parent': 'choose',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
- },//}}}
- }; /*}}}*/
- this.elements.choose_inclusive_finish = { /*{{{*/
- 'parent': 'choose_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
- }//}}}
- }; /*}}}*/
- this.elements.choose_exclusive_finish = { /*{{{*/
- 'parent': 'choose_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
- },//}}}
- }; /*}}}*/
- this.elements.loop_head_finish = { /*{{{*/
- 'parent': 'loop_finish',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'closeblock': true,
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
- }//}}}
- }; /*}}}*/
- this.elements.loop_tail_finish = { /*{{{*/
- 'parent': 'loop_finish',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'closeblock': false,
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
- },//}}}
- }; /*}}}*/
- this.elements.parallel_start = { /*{{{*/
- 'parent': 'parallel',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_eventbased_exclusive = { /*{{{*/
- 'parent': 'parallel',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_exclusive.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_eventbased_parallel = { /*{{{*/
- 'parent': 'parallel',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_simple = { /*{{{*/
- 'parent': 'parallel_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_complex = { /*{{{*/
- 'parent': 'parallel_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
- },//}}}
- }; /*}}}*/
- this.elements.parallel_event_all = { /*{{{*/
- 'parent': 'parallel_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_eventbased_parallel.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_event_one = { /*{{{*/
- 'parent': 'parallel_finish',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_branch_normal = { /*{{{*/
- 'parent': 'parallel_branch',
- 'illustrator': {//{{{
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_normal.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_branch_event = { /*{{{*/
- 'parent': 'parallel_branch',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'noarrow': false,
- 'border': true,
- 'wide': true,
- 'closing_symbol': 'event_end',
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
- }//}}}
- }; /*}}}*/
- this.elements.parallel_branch_compact = { /*{{{*/
- 'parent': 'parallel_branch',
- 'illustrator': {//{{{
- 'endnodes': 'this',
- 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
- }//}}}
- }; /*}}}*/
- this.elements.scripts = { /*{{{*/
- 'description': [self.adaptor.theme_dir + 'rngs/scripts.rng']
- }; /*}}}*/
+ 'menu_icon': self.elements.call.illustrator.svg.clone(),
+ 'type': 'call',
+ 'params': [self.adaptor.description.elements.call, node]},
+ {'label': 'Script',
+ 'function_call': func,
+ 'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
+ 'type': 'manipulate',
+ 'params': [self.adaptor.description.elements.manipulate, node]},
+ {'label': 'Parallel',
+ 'function_call': func,
+ 'menu_icon': self.elements.parallel.illustrator.svg.clone(),
+ 'type': 'parallel',
+ 'params': [self.adaptor.description.elements.parallel, node]},
+ {'label': 'Decision',
+ 'function_call': func,
+ 'menu_icon': self.elements.choose.illustrator.svg.clone(),
+ 'type': 'choose',
+ 'params': [self.adaptor.description.elements.choose, node]},
+ {'label': 'Loop',
+ 'function_call': func,
+ 'menu_icon': self.elements.loop.illustrator.svg.clone(),
+ 'type': 'loop',
+ 'params': [self.adaptor.description.elements.loop, node]},
+ {'label': 'Stop',
+ 'function_call': func,
+ 'menu_icon': self.elements.stop.illustrator.svg.clone(),
+ 'type': 'stop',
+ 'params': [self.adaptor.description.elements.stop, node]}
+ ];
+ if(node.parent('parallel_branch').length > 0) {
+ childs.push({
+ 'label': 'Critical',
+ 'function_call': func,
+ 'menu_icon': self.elements.critical.illustrator.svg.clone(),
+ 'type': 'critical',
+ 'params': [self.adaptor.description.elements.critical, node]
+ });
+ }
+ return childs;
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,false); },
+ 'touchstart': function (node,e) { self.events.touchstart(node,e,true,false); },
+ 'touchend': self.events.touchend,
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout,
+ }//}}}
+ }; /*}}}*/
+ }
}