activiti5.14版本在线流程设计器的国际化中文支持

参考了前辈的一些国际化支持做法,加上自己对流程的一些理解,做了activiti5.14版本的国际化支持。发现有若干bug,比如属性设置弹出窗口里的grid里的下拉列表不支持显示中文(要修改oryx.debug.js文件里的buildColumnModel方法中type == ORYX.CONFIG.TYPE_CHOICE部分的optionTmpl属性才可以)

附:stencilset.json 文件的国际化中文支持代码(注意对应org.activiti.rest.editor.main.StencilsetRestResource.java里读的资源文件路径):

{
  "title" : "流程组件",
  "namespace" : "http://b3mn.org/stencilset/bpmn2.0#",
  "description" : "This is the BPMN 2.0 stencil set specification.",
  "propertyPackages" : [ {
    "name" : "elementbase",
    "properties" : [ {
      "id" : "overrideid",
      "type" : "String",
      "title" : "编号",
      "value" : "",
      "description" : "编码",
      "popular" : true
    } ]
  }, {
    "name" : "baseattributes",
    "properties" : [ {
      "id" : "name",
      "type" : "String",
      "title" : "名称",
      "value" : "",
      "description" : "BPMN元素名称",
      "popular" : true,
      "refToView" : "text_name"
    }, {
      "id" : "documentation",
      "type" : "Text",
      "title" : "描述",
      "value" : "",
      "description" : "BPMN元素描述",
      "popular" : true
    } ]
  }, {
    "name" : "diagrambase",
    "properties" : [ {
      "id" : "process_id",
      "type" : "String",
      "title" : "流程编号",
      "value" : "process",
      "description" : "流程的特殊唯一的名称标识",
      "popular" : true
    }, {
      "id" : "process_author",
      "type" : "String",
      "title" : "流程作者",
      "value" : "",
      "description" : "流程定义者姓名",
      "popular" : false
    }, {
      "id" : "process_executable",
      "type" : "Choice",
      "title" : "是否可执行",
      "value" : "Yes",
      "description" : "定义流程是否可以执行",
      "popular" : true,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "No"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "Yes"
      }]
    }, {
      "id" : "process_version",
      "type" : "String",
      "title" : "流程版本",
      "value" : "",
      "description" : "流程版本",
      "popular" : false
    }, {
      "id" : "process_namespace",
      "type" : "String",
      "title" : "流程分类",
      "value" : "root",
      "description" : "工作流流程分类,填入流程分类的编号",
      "popular" : true
    } ]
  }, {
    "name" : "usertaskbase",
    "properties" : [ {
      "id" : "formkeydefinition",
      "type" : "String",
      "title" : "表单信息",
      "value" : "",
      "description" : "节点绑定的表单信息",
      "popular" : true
    }, {
      "id" : "duedatedefinition",
      "type" : "String",
      "title" : "到期时间",
      "value" : "",
      "description" : "人工任务到期时间",
      "popular" : true
    }, {
      "id" : "prioritydefinition",
      "type" : "String",
      "title" : "优先级",
      "value" : "",
      "description" : "人工任务优先级",
      "popular" : true
    } ]
  }, {
    "name" : "usertaskassignment",
    "properties" : [ {
      "id" : "usertaskassignment",
      "type" : "Complex",
      "title" : "分配用户",
      "value" : "",
      "description" : "给人工任务分配用户",
      "popular" : true,
      "complexItems" : [ {
        "id" : "assignment_type",
        "name" : "用户类型",
        "name_de" : "Typ",
        "type" : "Choice",
        "value" : "",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "c1",
          "title" : "委托人",
          "title_de" : "Performer",
          "value" : "assignee",
          "refToView" : ""
        }, {
          "id" : "c2",
          "title" : "候选用户",
          "title_de" : "HumanPerformer",
          "value" : "candidateUsers",
          "refToView" : ""
        }, {
          "id" : "c3",
          "title" : "候选群组",
          "title_de" : "PotentialOwner",
          "value" : "candidateGroups",
          "refToView" : ""
        } ]
      }, {
        "id" : "resourceassignmentexpr",
        "name" : "资源赋值表达式",
        "name_de" : "Zuordnungs-Ausdruck",
        "type" : "String",
        "description" : "定义资源赋值表达式",
        "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.",
        "value" : "",
        "width" : 200,
        "optional" : true
      } ]
    } ]
  }, {
    "name" : "formdefinition",
    "properties" : [ {
      "id" : "formproperties",
      "type" : "multiplecomplex",
      "title" : "表单属性",
      "value" : "",
      "description" : "定义表单属性",
      "popular" : true,
      "complexItems" : [ {
        "id" : "formproperty_id",
        "name" : "属性编号",
        "name_de" : "Typ",
        "type" : "String",
        "description" : "属性编号",
        "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.",
        "value" : "",
        "width" : 150,
        "optional" : false
      }, {
        "id" : "formproperty_name",
        "name" : "名称",
        "name_de" : "Typ",
        "type" : "String",
        "description" : "属性名称",
        "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.",
        "value" : "",
        "width" : 150,
        "optional" : false
      }, {
        "id" : "formproperty_type",
        "name" : "属性类型",
        "name_de" : "Typ",
        "type" : "Choice",
        "value" : "",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "c1",
          "title" : "字符串",
          "title_de" : "String",
          "value" : "string",
          "refToView" : ""
        }, {
          "id" : "c2",
          "title" : "日期",
          "title_de" : "Date",
          "value" : "date",
          "refToView" : ""
        }, {
          "id" : "c3",
          "title" : "数值",
          "title_de" : "Long",
          "value" : "long",
          "refToView" : ""
        }, {
          "id" : "c4",
          "title" : "布尔型",
          "title_de" : "Boolean",
          "value" : "boolean",
          "refToView" : ""
        }, {
          "id" : "c5",
          "title" : "枚举",
          "title_de" : "Enum",
          "value" : "enum",
          "refToView" : ""
        } ]
      }, {
        "id" : "formproperty_expression",
        "name" : "属性表达式",
        "name_de" : "Typ",
        "type" : "String",
        "description" : "定义属性取值表达式",
        "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "formproperty_variable",
        "name" : "变量",
        "name_de" : "Typ",
        "type" : "String",
        "description" : "定义变量",
        "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "formproperty_required",
        "name" : "是否必填",
        "name_de" : "Typ",
        "type" : "Choice",
        "value" : "No",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "yes",
          "title" : "是",
          "value" : "Yes"
        }, {
          "id" : "no",
          "title" : "否",
          "value" : "No"
        } ]
      }, {
        "id" : "formproperty_readable",
        "name" : "是否可读",
        "name_de" : "Typ",
        "type" : "Choice",
        "value" : "Yes",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "yes",
          "title" : "是",
          "value" : "Yes"
        }, {
          "id" : "no",
          "title" : "否",
          "value" : "No"
        } ]
      }, {
        "id" : "formproperty_writeable",
        "name" : "是否可写",
        "name_de" : "Typ",
        "type" : "Choice",
        "value" : "Yes",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "yes",
          "title" : "是",
          "value" : "Yes"
        }, {
          "id" : "no",
          "title" : "否",
          "value" : "No"
        } ]
      }, {
        "id" : "formproperty_formvalues",
        "name" : "表单属性值",
        "name_de" : "Typ",
        "type" : "Complex",
        "width" : 300,
        "optional" : false,
        "complexItems" : [ {
          "id" : "formproperty_formvalue_id",
          "name" : "编号",
          "type" : "String",
          "value" : "",
          "width" : 100,
          "optional" : false
        }, {
          "id" : "formproperty_formvalue_name",
          "name" : "名称",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        } ]
      } ]
    } ]
  }, {
    "name" : "tasklistenersbase",
    "properties" : [ {
      "id" : "tasklisteners",
      "type" : "multiplecomplex",
      "title" : "任务监听器",
      "value" : "",
      "description" : "人工任务监听器",
      "popular" : true,
      "complexItems" : [ {
        "id" : "task_listener_event_type",
        "name" : "事件类型",
        "type" : "Choice",
        "value" : "",
        "width" : 100,
        "optional" : false,
        "items" : [ {
          "id" : "c1",
          "title" : "创建",
          "value" : "create",
          "refToView" : ""
        }, {
          "id" : "c2",
          "title" : "分配",
          "value" : "assignment",
          "refToView" : ""
        }, {
          "id" : "c3",
          "title" : "完成",
          "value" : "complete",
          "refToView" : ""
        }, {
          "id" : "c4",
          "title" : "所有事件",
          "value" : "all",
          "refToView" : ""
        } ]
      }, {
        "id" : "task_listener_class",
        "name" : "监听类",
        "type" : "String",
        "description" : "事件监听处理类",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "task_listener_expression",
        "name" : "监听表达式",
        "type" : "String",
        "description" : "定义事件监听表达式",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "task_listener_delegate_expression",
        "name" : "监听委托类表达式",
        "type" : "String",
        "description" : "定义监听委托类表达式",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "task_listener_fields",
        "name" : "监听器参数",
        "type" : "Complex",
        "width" : 100,
        "optional" : false,
        "complexItems" : [ {
          "id" : "task_listener_field_name",
          "name" : "参数名",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        }, {
          "id" : "task_listener_field_value",
          "name" : "字符串值",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        }, {
          "id" : "task_listener_field_expression",
          "name" : "表达式值",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        } ]
      } ]
    } ]
  }, {
    "name" : "servicetaskbase",
    "properties" : [ {
      "id" : "servicetaskclass",
      "type" : "String",
      "title" : "处理类",
      "value" : "",
      "description" : "定义处理的java类,需要实现service task logic接口",
      "popular" : true
    }, {
      "id" : "servicetaskexpression",
      "type" : "String",
      "title" : "处理类表达式",
      "value" : "",
      "description" : "用表达式方式定义处理的java类,需要实现service task logic接口",
      "popular" : true
    }, {
      "id" : "servicetaskdelegateexpression",
      "type" : "String",
      "title" : "委派处理类表达式",
      "value" : "",
      "description" : "定义处理类的委派表达式",
      "popular" : true
    }, {
      "id" : "servicetaskresultvariable",
      "type" : "String",
      "title" : "结果存储变量",
      "value" : "",
      "description" : "定义一个变量用于存储任务处理结果",
      "popular" : true
    }, {
      "id" : "servicetaskfields",
      "type" : "Complex",
      "title" : "处理类参数",
      "value" : "",
      "description" : "定义参数",
      "popular" : true,
      "complexItems" : [ {
        "id" : "servicetask_field_name",
        "name" : "参数名",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "servicetask_field_value",
        "name" : "字符串参数值",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "servicetask_field_expression",
        "name" : "表达式参数值",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      } ]
    } ]
  }, {
    "name" : "scripttaskbase",
    "properties" : [ {
      "id" : "scriptformat",
      "type" : "Choice",
      "title" : "脚本类型",
      "value" : "",
      "description" : "定义脚本类型,需兼容JSR-223",
      "popular" : true,
      "items" : [ {
        "id" : "Javascript",
        "title" : "Javascript",
        "value" : "Javascript"
      }, {
        "id" : "groovy",
        "title" : "groovy",
        "value" : "groovy"
      } ]
    }, {
      "id" : "scripttext",
      "type" : "Text",
      "title" : "脚本内容",
      "value" : "",
      "description" : "脚本任务的脚本内容",
      "popular" : true
    } ]
  }, {
    "name" : "ruletaskbase",
    "properties" : [ {
      "id" : "ruletask_class",
      "type" : "String",
      "title" : "规则处理类",
      "value" : "",
      "description" : "规则任务的处理类",
      "popular" : true
    }, {
      "id" : "ruletask_variables_input",
      "type" : "String",
      "title" : "规则任务参数",
      "value" : "",
      "description" : "规则任务输入参数",
      "popular" : true
    }, {
      "id" : "ruletask_result",
      "type" : "String",
      "title" : "结果存储变量",
      "value" : "",
      "description" : "定义存储规则任务结果的变量",
      "popular" : true
    }, {
      "id" : "ruletask_rules",
      "type" : "String",
      "title" : "规则",
      "value" : "",
      "description" : "定义规则任务的规则,多个之间逗号隔开",
      "popular" : true
    }, {
      "id" : "ruletask_exclude",
      "type" : "Choice",
      "title" : "排除规则",
      "value" : "No",
      "description" : "定义是否除规则中定义的规则之外全部执行,为否表示只执行规则中定义的规则,为是表示值执行所有规则中未定义的规则",
      "popular" : true,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "No"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "Yes"
      } ]
    } ]
  }, {
    "name" : "mailtaskbase",
    "properties" : [ {
      "id" : "mailtaskto",
      "type" : "Text",
      "title" : "收件人",
      "value" : "",
      "description" : "收件人邮箱地址列表,邮箱间用英文分号隔开",
      "popular" : true
    }, {
      "id" : "mailtaskfrom",
      "type" : "Text",
      "title" : "发件人",
      "value" : "",
      "description" : "发件人邮箱地址",
      "popular" : true
    }, {
      "id" : "mailtasksubject",
      "type" : "Text",
      "title" : "主题",
      "value" : "",
      "description" : "邮件发送的主题",
      "popular" : true
    }, {
      "id" : "mailtaskcc",
      "type" : "Text",
      "title" : "抄送",
      "value" : "",
      "description" : "邮件抄送邮箱地址列表,邮箱间用英文分号隔开",
      "popular" : true
    }, {
      "id" : "mailtaskbcc",
      "type" : "Text",
      "title" : "暗送",
      "value" : "",
      "description" : "邮件暗送邮箱地址列表,邮箱间用英文分号隔开",
      "popular" : true
    }, {
      "id" : "mailtasktext",
      "type" : "Text",
      "title" : "邮件正文内容",
      "value" : "",
      "description" : "邮件的内容,在需要使用原始文字(非富文本)的邮件时使用。 可以与html一起使用,对于不支持富客户端的邮件客户端。 客户端会降级到仅显示文本的方式。",
      "popular" : true
    }, {
      "id" : "mailtaskhtml",
      "type" : "Text",
      "title" : "Html",
      "value" : "",
      "description" : "作为邮件内容的HTML",
      "popular" : true
    }, {
      "id" : "mailtaskcharset",
      "type" : "String",
      "title" : "字符集",
      "value" : "",
      "description" : "定义邮件内容的字符集",
      "popular" : true
    } ]
  }, {
    "name" : "callactivitybase",
    "properties" : [ {
      "id" : "callactivitycalledelement",
      "type" : "String",
      "title" : "调用的流程",
      "value" : "",
      "description" : "定义调用的流程",
      "popular" : true
    }, {
      "id" : "callactivityinparameters",
      "type" : "Complex",
      "title" : "输入参数",
      "value" : "",
      "description" : "定义调用流程的输入参数",
      "popular" : true,
      "complexItems" : [ {
        "id" : "ioparameter_source",
        "name" : "原参数",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "ioparameter_sourceexpression",
        "name" : "原参数表达式",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "ioparameter_target",
        "name" : "目标参数",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      } ]
    }, {
      "id" : "callactivityoutparameters",
      "type" : "Complex",
      "title" : "输出参数",
      "value" : "",
      "description" : "定义调用流程的输出参数",
      "popular" : true,
      "complexItems" : [ {
        "id" : "ioparameter_source",
        "name" : "原输出参数",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "ioparameter_sourceexpression",
        "name" : "原输出参数表达式",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      }, {
        "id" : "ioparameter_target",
        "name" : "目标参数",
        "type" : "String",
        "value" : "",
        "width" : 200,
        "optional" : false
      } ]
    } ]
  }, {
    "name" : "sequenceflowbase",
    "properties" : [ {
      "id" : "conditionsequenceflow",
      "type" : "Text",
      "title" : "流转条件",
      "value" : "",
      "description" : "流转条件",
      "popular" : true
    }, {
      "id" : "defaultflow",
      "type" : "Choice",
      "title" : "默认顺序流",
      "value" : "None",
      "description" : "设置该流转为默认流转,当设置为默认流转时,流转条件设置无效",
      "popular" : true,
      "items" : [ {
        "id" : "none",
        "title" : "标准",
        "title_de" : "Standard",
        "value" : "None"
      }, {
        "id" : "default",
        "title" : "默认流转",
        "title_de" : "Standardfluss",
        "value" : "Default",
        "icon" : "connector/list/type.default.png",
        "refToView" : "default"
      } ]
    }, {
      "id" : "conditionalflow",
      "type" : "Choice",
      "title" : "条件顺序流",
      "value" : "None",
      "description" : "设置该流转为条件流转,只要满足流转条件才会通过生效",
      "popular" : true,
      "items" : [ {
        "id" : "none",
        "title" : "标准",
        "title_de" : "Standard",
        "value" : "None"
      }, {
        "id" : "default",
        "title" : "条件顺序流",
        "value" : "Conditional",
        "icon" : "connector/list/type.expression.png",
        "refToView" : "conditional"
      } ]
    } ]
  }, {
    "name" : "cancelactivityattribute",
    "properties" : [ {
      "id" : "cancelactivity",
      "type" : "Choice",
      "title" : "取消中断",
      "value" : "yes",
      "description" : "定义是否取消中断",
      "popular" : true,
      "items" : [ {
        "id" : "yes",
        "title" : "是",
        "title_de" : "Yes",
        "value" : "yes"
      }, {
        "id" : "no",
        "title" : "否",
        "title_de" : "No",
        "value" : "no"
      } ]
    } ]
  }, {
    "name" : "timerdefinition",
    "properties" : [ {
      "id" : "timerdurationdefinition",
      "type" : "String",
      "title" : "等待时间",
      "value" : "",
      "description" : "指定定时器之前要等待多长时间,可以设置为timerEventDefinition的子元素。 使用ISO 8601规定的格式",
      "popular" : true
    }, {
      "id" : "timerdatedefinition",
      "type" : "String",
      "title" : "触发时间",
      "value" : "",
      "description" : "使用 ISO 8601 格式指定一个确定的时间,触发事件的时间,如 2013-12-05T12:13:14",
      "popular" : true
    }, {
      "id" : "timercycledefinition",
      "type" : "String",
      "title" : "重复间隔",
      "value" : "",
      "description" : "指定重复执行的间隔,可以用来定期启动流程实例,或为超时时间发送多个提醒。可以使用两种格式:ISO 8601标准或cron表达式",
      "popular" : true
    } ]
  }, {
    "name" : "messagerefdefinition",
    "properties" : [ {
      "id" : "messageref",
      "type" : "String",
      "title" : "引用的消息",
      "value" : "",
      "description" : "定义引用的消息名称",
      "popular" : true
    } ]
  }, {
    "name" : "signalrefdefinition",
    "properties" : [ {
      "id" : "signalref",
      "type" : "String",
      "title" : "引用的信号",
      "value" : "",
      "description" : "定义引用的信号名称",
      "popular" : true
    } ]
  }, {
    "name" : "errorrefdefinition",
    "properties" : [ {
      "id" : "errorref",
      "type" : "String",
      "title" : "引用的错误",
      "value" : "",
      "description" : "定义引用的错误名称",
      "popular" : true
    } ]
  }, {
    "name" : "nonestarteventbase",
    "properties" : [ {
      "id" : "initiator",
      "type" : "String",
      "title" : "初始化变量",
      "value" : "",
      "description" : "定义存储流程启动时当前登陆用户的变量",
      "popular" : true
    }, {
      "id" : "formkeydefinition",
      "type" : "String",
      "title" : "表单信息",
      "value" : "",
      "description" : "定义开始节点的表单信息",
      "popular" : true
    }]
  }, {
    "name" : "textannotationbase",
    "properties" : [ {
      "id" : "text",
      "type" : "String",
      "title" : "文本",
      "value" : "",
      "description" : "文本注释内容",
      "popular" : true,
      "refToView" : "text"
    } ]
  }, {
    "name" : "asynchronousbase",
    "properties" : [ {
      "id" : "asynchronousdefinition",
      "type" : "Choice",
      "title" : "异步任务",
      "value" : "No",
      "description" : "定义为异步任务",
      "popular" : true,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "No"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "Yes"
      } ]
    }, {
      "id" : "exclusivedefinition",
      "type" : "Choice",
      "title" : "互斥任务",
      "value" : "Yes",
      "description" : "Define the activity as exclusive.",
      "popular" : true,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "No"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "Yes"
      } ]
    } ]
  }, {
    "name" : "executionlistenersbase",
    "properties" : [ {
      "id" : "executionlisteners",
      "type" : "multiplecomplex",
      "title" : "执行监听器",
      "value" : "",
      "description" : "Listeners for an activity, process, sequence flow, start and end event.",
      "popular" : true,
      "complexItems" : [ {
        "id" : "execution_listener_event_type",
        "name" : "事件类型",
        "type" : "Choice",
        "value" : "",
        "width" : 200,
        "optional" : false,
        "items" : [ {
          "id" : "c1",
          "title" : "开始",
          "value" : "start",
          "refToView" : ""
        }, {
          "id" : "c2",
          "title" : "结束",
          "value" : "end",
          "refToView" : ""
        }, {
          "id" : "c2",
          "title" : "通过",
          "value" : "take",
          "refToView" : ""
        } ]
      }, {
        "id" : "execution_listener_class",
        "name" : "监听类",
        "type" : "String",
        "description" : "监听类",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "execution_listener_expression",
        "name" : "监听类表达式",
        "type" : "String",
        "description" : "监听类表达式",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "execution_listener_delegate_expression",
        "name" : "委托类表达式",
        "type" : "String",
        "description" : "委托类表达式",
        "value" : "",
        "width" : 200,
        "optional" : true
      }, {
        "id" : "execution_listener_fields",
        "name" : "参数",
        "type" : "Complex",
        "width" : 100,
        "optional" : false,
        "complexItems" : [ {
          "id" : "execution_listener_field_name",
          "name" : "名称",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        }, {
          "id" : "execution_listener_field_value",
          "name" : "字符串值",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        }, {
          "id" : "execution_listener_field_expression",
          "name" : "表达式值",
          "type" : "String",
          "value" : "",
          "width" : 200,
          "optional" : false
        } ]
      } ]
    } ]
  }, {
    "name" : "customformdefinition",
    "properties" : [ {
      "id" : "customformdefinition",
      "type" : "Choice",
      "title" : "自定义表单",
      "value" : "",
      "description" : "描述",
      "popular" : true,
      "items" : [ {
        "id" : "1",
        "title" : "表单1",
        "value" : "1"
      }, {
        "id" : "2",
        "title" : "表单2",
        "value" : "2"
      }, {
        "id" : "3",
        "title" : "表单3",
        "value" : "3"
      } ]
    } ]
  }, {
    "name" : "loopcharacteristics",
    "properties" : [ {
      "id" : "looptype",
      "type" : "Choice",
      "title" : "循环类型",
      "value" : "None",
      "description" : "定义循环类型",
      "popular" : false,
      "items" : [ {
        "id" : "c1",
        "title" : "无",
        "title_de" : "Keine Schleife",
        "value" : "None",
        "refToView" : "none"
      }, {
        "id" : "c2",
        "title" : "标准",
        "title_de" : "Standard",
        "value" : "Standard",
        "icon" : "activity/list/looptype.standard.png",
        "refToView" : "loop"
      }, {
        "id" : "c3",
        "title" : "并行",
        "title_de" : "MI parallel",
        "value" : "Parallel",
        "icon" : "activity/list/mi.parallel.png",
        "refToView" : "parallel"
      }, {
        "id" : "c4",
        "title" : "顺序",
        "title_de" : "MI sequentialisiert",
        "value" : "Sequential",
        "icon" : "activity/list/mi.sequential.png",
        "refToView" : "sequential"
      } ]
    } ]
  }, {
    "name" : "activity",
    "properties" : [ {
      "id" : "multiinstance_sequential",
      "type" : "Choice",
      "title" : "顺序(多实例)",
      "value" : "Yes",
      "description" : "定义为多实例",
      "popular" : true,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "No"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "Yes"
      } ]
    }, {
      "id" : "multiinstance_cardinality",
      "type" : "String",
      "title" : "指定数量(多实例)",
      "value" : "",
      "description" : "定义实例的个数",
      "popular" : true
    }, {
      "id" : "multiinstance_collection",
      "type" : "String",
      "title" : "集合(多实例)",
      "value" : "",
      "description" : "定义多实例生成的集合",
      "popular" : true
    }, {
      "id" : "multiinstance_variable",
      "type" : "String",
      "title" : "变量(多实例)",
      "value" : "",
      "description" : "定义多实例中的变量,每个实例都有该变量",
      "popular" : true
    }, {
      "id" : "multiinstance_condition",
      "type" : "String",
      "title" : "任务完成的条件(多实例)",
      "value" : "",
      "description" : "多实例任务完成的条件",
      "popular" : true
    }, {
      "id" : "isforcompensation",
      "type" : "Choice",
      "title" : "是否为补偿",
      "value" : "false",
      "description" : "一个标志,标识是否这个活动的目的是为了补偿",
      "popular" : false,
      "items" : [ {
        "id" : "no",
        "title" : "否",
        "value" : "false"
      }, {
        "id" : "yes",
        "title" : "是",
        "value" : "true"
      } ]
    } ]
  } ],
  "stencils" : [ {
    "type" : "node",
    "id" : "BPMNDiagram",
    "title" : "BPMN对话框",
    "description" : "BPMN2.0对话框",
    "view" : "diagram.svg",
    "icon" : "diagram.png",
    "groups" : [ "Diagram" ],
    "mayBeRoot" : true,
    "hide" : true,
    "propertyPackages" : [ "baseattributes", "diagrambase", "executionlistenersbase" ],
    "roles" : [ ]
  }, {
    "type" : "node",
    "id" : "StartNoneEvent",
    "title" : "开始",
    "description" : "开始组件",
    "view" : "startevent/none.svg",
    "icon" : "startevent/none.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "formdefinition", "nonestarteventbase", "executionlistenersbase" ],
    "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartTimerEvent",
    "title" : "定时器",
    "description" : "定时触发组件",
    "view" : "startevent/timer.svg",
    "icon" : "startevent/timer.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "timerdefinition", "executionlistenersbase" ],
    "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartMessageEvent",
    "title" : "事件触发",
    "description" : "由事件触发的组件",
    "view" : "startevent/message.svg",
    "icon" : "startevent/message.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "messagerefdefinition", "executionlistenersbase" ],
    "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartErrorEvent",
    "title" : "异常捕捉",
    "description" : "捕捉BPMN异常后开始",
    "view" : "startevent/error.svg",
    "icon" : "startevent/error.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition", "executionlistenersbase" ],
    "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "UserTask",
    "title" : "人工任务",
    "description" : "人工处理的任务节点",
    "view" : "activity/usertask.svg",
    "icon" : "activity/list/type.user.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "usertaskbase", "usertaskassignment", "formdefinition", "tasklistenersbase", "asynchronousbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ServiceTask",
    "title" : "Java服务任务",
    "description" : "是一个自动任务,它会调用一些服务, 比如web service,java service等等",
    "view" : "activity/servicetask.svg",
    "icon" : "activity/list/type.service.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "servicetaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ScriptTask",
    "title" : "脚本任务",
    "description" : "脚本任务时一个自动任务,当到达这个任务的时候 流程引擎会执行一个脚本。",
    "view" : "activity/scripttask.svg",
    "icon" : "activity/list/type.script.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "scripttaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "BusinessRule",
    "title" : "规则任务",
    "description" : "支持配置处理规则,任务自动处理",
    "view" : "activity/businessruletask.svg",
    "icon" : "activity/list/type.business.rule.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "ruletaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ReceiveTask",
    "title" : "等待任务",
    "description" : "任务处于等待状态直到被某个信号触发",
    "view" : "activity/receivetask.svg",
    "icon" : "activity/list/type.receive.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ManualTask",
    "title" : "手工任务",
    "description" : "手工任务时一个由外部人员执行的任务,但是没有指定是 一个BPM系统或是一个服务会被调用。在真实世界里,有很多例子: 安装一个电话系统,使用定期邮件发送一封信, 用电话联系客户等",
    "view" : "activity/manualtask.svg",
    "icon" : "activity/list/type.manual.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "MailTask",
    "title" : "邮件任务",
    "description" : "发送邮件",
    "view" : "activity/sendtask.svg",
    "icon" : "activity/list/type.send.png",
    "groups" : [ "任务节点" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "mailtaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "SubProcess",
    "title" : "子流程",
    "description" : "子流程",
    "view" : "activity/subprocess.expanded.svg",
    "icon" : "activity/expanded.subprocess.png",
    "groups" : [ "子流程" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EventSubProcess",
    "title" : "事件触发子流程",
    "description" : "由特殊事件触发的子流程,比如定时触发",
    "view" : "activity/event.subprocess.svg",
    "icon" : "activity/event.subprocess.png",
    "groups" : [ "子流程" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "CallActivity",
    "title" : "调用活动",
    "description" : "调用活动",
    "view" : "activity/callactivity.svg",
    "icon" : "activity/task.png",
    "groups" : [ "子流程" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "callactivitybase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ],
    "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "ExclusiveGateway",
    "title" : "互斥网关",
    "description" : "选择性网关",
    "view" : "gateway/exclusive.databased.svg",
    "icon" : "gateway/exclusive.databased.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "elementbase", "baseattributes" ],
    "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ParallelGateway",
    "title" : "并行网关",
    "description" : "并行网关",
    "view" : "gateway/parallel.svg",
    "icon" : "gateway/parallel.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "elementbase", "baseattributes" ],
    "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "InclusiveGateway",
    "title" : "相容网关",
    "description" : "相容网关",
    "view" : "gateway/inclusive.svg",
    "icon" : "gateway/inclusive.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "elementbase", "baseattributes" ],
    "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "EventGateway",
    "title" : "事件网关",
    "description" : "事件网关",
    "view" : "gateway/eventbased.svg",
    "icon" : "gateway/eventbased.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "elementbase", "baseattributes" ],
    "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "BoundaryErrorEvent",
    "title" : "边界错误事件",
    "description" : "一个捕捉BPMN异常的边界事件",
    "view" : "intermediateevent/error.svg",
    "icon" : "catching/error.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition" ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundaryTimerEvent",
    "title" : "定时边界事件",
    "description" : "一个定时触发的边界事件",
    "view" : "intermediateevent/timer.svg",
    "icon" : "catching/timer.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "timerdefinition" ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundarySignalEvent",
    "title" : "边界信号事件",
    "description" : "一个信号触发的边界事件",
    "view" : "intermediateevent/signal.catching.svg",
    "icon" : "catching/signal.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "signalrefdefinition" ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "CatchTimerEvent",
    "title" : "中间定时器捕获事件",
    "description" : "定时器触发的中间捕获事件",
    "view" : "intermediateevent/timer.svg",
    "icon" : "catching/timer.png",
    "groups" : [ "中间捕获事件列表" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "timerdefinition", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "CatchSignalEvent",
    "title" : "中间信号捕获事件",
    "description" : "信号触发的捕获事件",
    "view" : "intermediateevent/signal.catching.svg",
    "icon" : "catching/signal.png",
    "groups" : [ "中间捕获事件列表" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "signalrefdefinition", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "CatchMessageEvent",
    "title" : "中间消息捕获事件",
    "description" : "一个消息触发的中间捕获事件",
    "view" : "intermediateevent/message.catching.svg",
    "icon" : "catching/message.png",
    "groups" : [ "中间捕获事件列表" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "messagerefdefinition", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ThrowNoneEvent",
    "title" : "中间抛出事件",
    "description" : "无触发器的中间抛出事件",
    "view" : "intermediateevent/none.svg",
    "icon" : "throwing/none.png",
    "groups" : [ "中间抛出事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "ThrowEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "ThrowSignalEvent",
    "title" : "信号中间抛出事件",
    "description" : "一个信号触发的中间抛出事件",
    "view" : "intermediateevent/signal.throwing.svg",
    "icon" : "throwing/signal.png",
    "groups" : [ "中间抛出事件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "signalrefdefinition", "executionlistenersbase" ],
    "roles" : [ "sequence_start", "ThrowEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndNoneEvent",
    "title" : "结束任务",
    "description" : "一个无触发器的结束任务",
    "view" : "endevent/none.svg",
    "icon" : "endevent/none.png",
    "groups" : [ "结束任务列表" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "executionlistenersbase" ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndErrorEvent",
    "title" : "结束错误任务",
    "description" : "一个抛出错误事件的结束任务",
    "view" : "endevent/error.svg",
    "icon" : "endevent/error.png",
    "groups" : [ "结束任务列表" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition", "executionlistenersbase" ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "edge",
    "id" : "SequenceFlow",
    "title" : "顺序流",
    "description" : "顺序流定义活动的执行顺序",
    "view" : "connector/sequenceflow.svg",
    "icon" : "connector/sequenceflow.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "elementbase", "baseattributes", "sequenceflowbase" ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "edge",
    "id" : "Association",
    "title" : "注释",
    "description" : "连接一个注释到指定元素",
    "view" : "connector/association.undirected.svg",
    "icon" : "connector/association.undirected.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "elementbase", "baseattributes" ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "TextAnnotation",
    "title" : "文本注释",
    "description" : "给指定元素添加文本注释",
    "view" : "artifact/text.annotation.svg",
    "icon" : "artifact/text.annotation.png",
    "groups" : [ "其他组件" ],
    "propertyPackages" : [ "elementbase", "baseattributes", "textannotationbase" ],
    "roles" : [ "all" ]
  } ],
  "rules" : {
    "cardinalityRules" : [ {
      "role" : "Startevents_all",
      "incomingEdges" : [ {
        "role" : "SequenceFlow",
        "maximum" : 0
      } ]
    }, {
      "role" : "Endevents_all",
      "outgoingEdges" : [ {
        "role" : "SequenceFlow",
        "maximum" : 0
      } ]
    } ],
    "connectionRules" : [ {
      "role" : "SequenceFlow",
      "connects" : [ {
        "from" : "sequence_start",
        "to" : [ "sequence_end" ]
      } ]
    }, {
      "role" : "Association",
      "connects" : [ {
        "from" : "sequence_start",
        "to" : [ "TextAnnotation" ]
      } ]
    }, {
      "role" : "Association",
      "connects" : [ {
        "from" : "TextAnnotation",
        "to" : [ "sequence_end" ]
      } ]
    }, {
      "role" : "IntermediateEventOnActivityBoundary",
      "connects" : [ {
        "from" : "Activity",
        "to" : [ "IntermediateEventOnActivityBoundary" ]
      } ]
    } ],
    "containmentRules" : [ {
      "role" : "BPMNDiagram",
      "contains" : [ "all" ]
    }, {
      "role" : "SubProcess",
      "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubprocess", "TextAnnotation" ]
    }, {
      "role" : "EventSubProcess",
      "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation" ]
    } ],
    "morphingRules" : [ {
      "role" : "ActivitiesMorph",
      "baseMorphs" : [ "UserTask" ],
      "preserveBounds" : true
    }, {
      "role" : "GatewaysMorph",
      "baseMorphs" : [ "ExclusiveGateway" ]
    }, {
      "role" : "StartEventsMorph",
      "baseMorphs" : [ "StartNoneEvent" ]
    }, {
      "role" : "EndEventsMorph",
      "baseMorphs" : [ "StartNoneEvent" ]
    }, {
      "role" : "CatchEventsMorph",
      "baseMorphs" : [ "CatchTimerEvent" ]
    }, {
      "role" : "ThrowEventsMorph",
      "baseMorphs" : [ "ThrowNoneEvent" ]
    }, {
      "role" : "TextAnnotation",
      "baseMorphs" : [ "TextAnnotation" ]
    } ]
  }
}
View Code

 

转载于:https://www.cnblogs.com/kevinYX/p/3482060.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值