UserTask.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /**
  2. * 用户任务对象
  3. */
  4. draw2d.UserTask=function(){
  5. draw2d.Task.call(this);
  6. this.setTitle("用户任务");
  7. this.setIcon();
  8. };
  9. draw2d.UserTask.prototype=new draw2d.Task();
  10. draw2d.UserTask.prototype.type="draw2d.UserTask";
  11. draw2d.UserTask.newInstance=function(userTaskXMLNode){
  12. var task = new draw2d.UserTask();
  13. task.id=userTaskXMLNode.attr('id');
  14. task.taskId=userTaskXMLNode.attr('id');
  15. task.taskName=userTaskXMLNode.attr('name');
  16. task.setContent(userTaskXMLNode.attr('name'));
  17. return task;
  18. };
  19. draw2d.UserTask.prototype.setWorkflow=function(_5019){
  20. draw2d.Task.prototype.setWorkflow.call(this,_5019);
  21. };
  22. draw2d.UserTask.prototype.getContextMenu=function(){
  23. var menu = draw2d.Task.prototype.getContextMenu.call(this);
  24. return menu;
  25. };
  26. draw2d.UserTask.prototype.setIcon = function(){
  27. var icon=draw2d.Task.prototype.setIcon.call(this);
  28. icon.className="user-task-icon";
  29. };
  30. draw2d.UserTask.prototype.getStartElementXML=function(){
  31. var name = this.taskId;
  32. var taskName = trim(this.taskName);
  33. if(taskName != null && taskName != "")
  34. name = taskName;
  35. var xml='<userTask id="'+this.taskId+'" name="'+name+'" ';
  36. if(this.isUseExpression){
  37. if(this.performerType=='assignee'){
  38. xml=xml+'activiti:assignee="'+this.expression+'" ';
  39. }else if(this.performerType=='candidateUsers'){
  40. xml=xml+'activiti:candidateUsers="'+this.expression+'" ';
  41. }else if(this.performerType=='candidateGroups'){
  42. xml=xml+'activiti:candidateGroups="'+this.expression+'" ';
  43. }
  44. }
  45. if(this.formKey != null && this.formKey != ""){
  46. xml=xml+'activiti:formKey="'+this.formKey+'" ';
  47. }
  48. xml=xml+'>\n';
  49. return xml;
  50. };
  51. draw2d.UserTask.prototype.getEndElementXML=function(){
  52. var xml = '</userTask>\n';
  53. return xml;
  54. };
  55. draw2d.UserTask.prototype.getDocumentationXML=function(){
  56. if(this.documentation==null||this.documentation=='')return '';
  57. var xml='<documentation>';
  58. xml=xml+this.documentation;
  59. xml=xml+'</documentation>';
  60. return xml;
  61. };
  62. draw2d.UserTask.prototype.getExtensionElementsXML=function(){
  63. if(this.listeners.getSize()==0&&this.forms.getSize()==0)return '';
  64. var xml = '<extensionElements>\n';
  65. xml=xml+this.getFormsXML();
  66. xml=xml+this.getListenersXML();
  67. xml=xml+'</extensionElements>\n';
  68. return xml;
  69. };
  70. draw2d.UserTask.prototype.getListenersXML=function(){
  71. var xml = '';
  72. for(var i=0;i<this.listeners.getSize();i++){
  73. var listener = this.listeners.get(i);
  74. xml=xml+listener.toXML();
  75. }
  76. return xml;
  77. };
  78. draw2d.UserTask.prototype.getFormsXML=function(){
  79. var xml = '';
  80. for(var i=0;i<this.forms.getSize();i++){
  81. var form = this.forms.get(i);
  82. xml=xml+form.toXML();
  83. }
  84. return xml;
  85. };
  86. draw2d.UserTask.prototype.getPerformersBPMNXML=function(){
  87. var xml = '';
  88. if(this.performerType=='candidateUsers'){
  89. if(this.candidateUsers.getSize()!=0){
  90. xml=xml+'<potentialOwner>\n';
  91. xml=xml+'<resourceAssignmentExpression>\n';
  92. xml=xml+'<formalExpression>\n';
  93. xml=xml+'<![CDATA[';
  94. for(var i=0;i<this.candidateUsers.getSize();i++){
  95. var user = this.candidateUsers.get(i);
  96. xml=xml+'user('+user.sso+'),';
  97. }
  98. xml=xml.substring(0, xml.length-1);
  99. xml=xml+']]>\n';
  100. xml=xml+'</formalExpression>\n';
  101. xml=xml+'</resourceAssignmentExpression>\n';
  102. xml=xml+'</potentialOwner>\n';
  103. }
  104. }else if(this.performerType=='candidateGroups'){
  105. if(this.candidateGroups.getSize()!=0){
  106. xml=xml+'<potentialOwner>\n';
  107. xml=xml+'<resourceAssignmentExpression>\n';
  108. xml=xml+'<formalExpression>\n';
  109. xml=xml+'<![CDATA[';
  110. for(var i=0;i<this.candidateGroups.getSize();i++){
  111. var group = this.candidateGroups.get(i);
  112. xml=xml+'group('+group+'),';
  113. }
  114. xml=xml.substring(0, xml.length-1);
  115. xml=xml+']]>\n';
  116. xml=xml+'</formalExpression>\n';
  117. xml=xml+'</resourceAssignmentExpression>\n';
  118. xml=xml+'</potentialOwner>\n';
  119. }
  120. }
  121. return xml;
  122. };
  123. draw2d.UserTask.prototype.toXML=function(){
  124. var xml=this.getStartElementXML();
  125. xml=xml+this.getDocumentationXML();
  126. xml=xml+this.getExtensionElementsXML();
  127. xml=xml+this.getPerformersBPMNXML();
  128. xml=xml+this.getMultiInstanceXML();
  129. xml=xml+this.getEndElementXML();
  130. return xml;
  131. };
  132. draw2d.UserTask.prototype.toBpmnDI=function(){
  133. var w=this.getWidth();
  134. var h=this.getHeight();
  135. var x=this.getAbsoluteX();
  136. var y=this.getAbsoluteY();
  137. var xml='<bpmndi:BPMNShape bpmnElement="'+this.taskId+'" id="BPMNShape_'+this.taskId+'">\n';
  138. xml=xml+'<omgdc:Bounds height="'+h+'" width="'+w+'" x="'+x+'" y="'+y+'"/>\n';
  139. xml=xml+'</bpmndi:BPMNShape>\n';
  140. return xml;
  141. };
  142. //begin---author:zhangdaihao date:20140730 for:动态会签
  143. draw2d.UserTask.prototype.getMultiInstanceXML=function(){
  144. var xml = '';
  145. if(this.isSequential==null||this.isSequential==""){
  146. return '';
  147. }
  148. xml+='<multiInstanceLoopCharacteristics isSequential="'+this.isSequential+'" activiti:collection="'+this.collection+'" activiti:elementVariable="'+this.elementVariable+'" >';
  149. if(this.loopCardinality!=null&&this.loopCardinality!=""){
  150. xml+='<loopCardinality>'+this.loopCardinality+'</loopCardinality>'
  151. }
  152. if(this.completionCondition!=null&&this.completionCondition!=""){
  153. xml+='<completionCondition>'+this.completionCondition+'</completionCondition>'
  154. }
  155. xml+='</multiInstanceLoopCharacteristics>';
  156. return xml;
  157. };
  158. draw2d.UserTask.prototype.getTaskExtendXML=function(){
  159. var xml = '';
  160. if(this.task_extend==null||this.task_extend==""){
  161. return '';
  162. }
  163. xml+=task_extend;
  164. return xml;
  165. };
  166. //end---author:zhangdaihao date:20140730 for:动态会签