Activiti:整合WEB版流程模型设计器Modeler


Activiti:整合WEB版流程模型设计器Modeler

为什么要整合?

上面我们在 idea 上设计的流程模型,而每次要设计都要打开 idea 或其他设计流程工具来进行操作,这样不太方便。 而实际上 Activiti 官方提供了 Web 版的流程

设计工具 Activiti Modeler,可以直接整合到我们项目中。 在 Activiti 5.10 版本把原本独立的 Activiti Modeler 模块整合到了 Activiti Explorer 模块中,两者相结合

使用起来 很方便, 通过 Modeler 设计的流程模型可以直接部署到引擎,也可以把已经部署的流程转换为Model从而在Modeler中编辑。 在实际应用中也有这样的

需求,把 Modeler 整合到业务系统中可以供管理员使用,或者作为BPM流程管理平台的 一部分存在。 但是在 Activiti 官方没有给出如何整合Modeler的文档,要

我们自己整合。

下载地址:

https://github.com/Activiti/Activiti/releases/tag/activiti-5.22.0

下载解压根据\Activiti-activiti-5.22.0\modules\activiti-webapp-explorer2\src\main\webapp文件找到如下且将标注的四个拷贝到resource->static中

 

接着新建一个文件夹(activiti),将Activiti-activiti-5.22.0\modules\activiti-modeler\src\main\java\org\activiti\rest\editor\main下的StencilsetRestResource.java复制到该文件加中

接着将modules\activiti-modeler\src\main\java\org\activiti\rest\editor\model下两个java文件也拷贝到acticiti文件夹中;

修改上下文路径

找到 static/editor-app/configuration/url-config.js ,修改文件中的项目上下文路径,这样才能请求到上面3 个接口

上下文路径对应 application.yml 文件中配置的 server.servlet.context-path=/workflow

汉化Activiti Modeler

stencilset.json

{
  "title" : "流程编辑器",
  "namespace" : "http://b3mn.org/stencilset/bpmn2.0#",
  "description" : "BPMN流程编辑器",
  "propertyPackages" : [ {
    "name" : "process_idpackage",
    "properties" : [ {
      "id" : "process_id",
      "type" : "String",
      "title" : "流程唯一标识",
      "value" : "未定义",
      "description" : "流程定义唯一的标识",
      "popular" : true
    } ]
  }, {
    "name" : "overrideidpackage",
    "properties" : [ {
      "id" : "overrideid",
      "type" : "String",
      "title" : "ID",
      "value" : "",
      "description" : "元素的唯一标识",
      "popular" : true
    } ]
  }, {
    "name" : "namepackage",
    "properties" : [ {
      "id" : "name",
      "type" : "String",
      "title" : "名称",
      "value" : "",
      "description" : "BPMN元素的描述名称.",
      "popular" : true,
      "refToView" : "text_name"
    } ]
  }, {
    "name" : "documentationpackage",
    "properties" : [ {
      "id" : "documentation",
      "type" : "Text",
      "title" : "文档",
      "value" : "",
      "description" : "BPMN元素的描述名称.",
      "popular" : true
    } ]
  }, {
    "name" : "process_authorpackage",
    "properties" : [ {
      "id" : "process_author",
      "type" : "String",
      "title" : "流程作者",
      "value" : "",
      "description" : "流程定义的作者.",
      "popular" : true
    } ]
  }, {
    "name" : "process_versionpackage",
    "properties" : [ {
      "id" : "process_version",
      "type" : "String",
      "title" : "流程版本字符串(仅限于文档)",
      "value" : "",
      "description" : "文档的目的为版本标识",
      "popular" : true
    } ]
  }, {
    "name" : "process_namespacepackage",
    "properties" : [ {
      "id" : "process_namespace",
      "type" : "String",
      "title" : "目标命名空间",
      "value" : "http://www.activiti.org/processdef",
      "description" : "流程定义的目标命名空间.",
      "popular" : true
    } ]
  }, {
    "name" : "asynchronousdefinitionpackage",
    "properties" : [ {
      "id" : "asynchronousdefinition",
      "type" : "Boolean",
      "title" : "异步",
      "value" : "false",
      "description" : "定义异步的活动.",
      "popular" : true
    } ]
  }, {
    "name" : "exclusivedefinitionpackage",
    "properties" : [ {
      "id" : "exclusivedefinition",
      "type" : "Boolean",
      "title" : "排它性",
      "value" : "false",
      "description" : "定义排它的活动.",
      "popular" : true
    } ]
  }, {
    "name" : "executionlistenerspackage",
    "properties" : [ {
      "id" : "executionlisteners",
      "type" : "multiplecomplex",
      "title" : "执行监听器",
      "value" : "",
      "description" : "活动、流程、流程跳转,开始、结事事件的监听器",
      "popular" : true
    } ]
  }, {
    "name" : "tasklistenerspackage",
    "properties" : [ {
      "id" : "tasklisteners",
      "type" : "multiplecomplex",
      "title" : "任务监听器",
      "value" : "",
      "description" : "人工任务的监听器",
      "popular" : true
    } ]
  }, {
    "name" : "eventlistenerspackage",
    "properties" : [ {
      "id" : "eventlisteners",
      "type" : "multiplecomplex",
      "title" : "事件监听器",
      "value" : "",
      "description" : "监听Activiti引擎的任何发生的事件. 同样可能是任何抛出的信号、信息、出错的事件。",
      "popular" : true
    } ]
  }, {
    "name" : "usertaskassignmentpackage",
    "properties" : [ {
      "id" : "usertaskassignment",
      "type" : "Complex",
      "title" : "任务派遣",
      "value" : "",
      "description" : "人工任务的派遣的定义",
      "popular" : true
    } ]
  }, {
    "name" : "formpropertiespackage",
    "properties" : [ {
      "id" : "formproperties",
      "type" : "Complex",
      "title" : "表单属性",
      "value" : "",
      "description" : "定义带有属性列表的表单",
      "popular" : true
    } ]
  }, {
    "name" : "formkeydefinitionpackage",
    "properties" : [ {
      "id" : "formkeydefinition",
      "type" : "String",
      "title" : "表单的标识Key",
      "value" : "",
      "description" : "表单的Key(指向定义的Form).",
      "popular" : true
    } ]
  }, {
    "name" : "duedatedefinitionpackage",
    "properties" : [ {
      "id" : "duedatedefinition",
      "type" : "String",
      "title" : "到期的日期",
      "value" : "",
      "description" : "人工任务的到期日期",
      "popular" : true
    } ]
  }, {
    "name" : "prioritydefinitionpackage",
    "properties" : [ {
      "id" : "prioritydefinition",
      "type" : "String",
      "title" : "优先级",
      "value" : "",
      "description" : "人工任务的优先级.",
      "popular" : true
    } ]
  }, {
    "name" : "duedatedefinitionpackage",
    "properties" : [ {
      "id" : "duedatedefinition",
      "type" : "String",
      "title" : "到期的日期",
      "value" : "",
      "description" : "人工任务的到期日期.",
      "popular" : true
    } ]
  }, {
    "name" : "servicetaskclasspackage",
    "properties" : [ {
      "id" : "servicetaskclass",
      "type" : "String",
      "title" : "类名",
      "value" : "",
      "description" : "实现服务任务逻辑的类.",
      "popular" : true
    } ]
  }, {
    "name" : "servicetaskexpressionpackage",
    "properties" : [ {
      "id" : "servicetaskexpression",
      "type" : "String",
      "title" : "表达式",
      "value" : "",
      "description" : "定义服务任务逻辑的表达式.",
      "popular" : true
    } ]
  }, {
    "name" : "servicetaskdelegateexpressionpackage",
    "properties" : [ {
      "id" : "servicetaskdelegateexpression",
      "type" : "String",
      "title" : "代理的表达式",
      "value" : "",
      "description" : "通过代理表达式定义任务服务逻辑",
      "popular" : true
    } ]
  }, {
    "name" : "servicetaskfieldspackage",
    "properties" : [ {
      "id" : "servicetaskfields",
      "type" : "Complex",
      "title" : "类的字段",
      "value" : "",
      "description" : "字段扩展",
      "popular" : true
    } ]
  }, {
    "name" : "servicetaskresultvariablepackage",
    "properties" : [ {
      "id" : "servicetaskresultvariable",
      "type" : "String",
      "title" : "变量名结果",
      "value" : "",
      "description" : "流程变量存储服务任务的执行结果.",
      "popular" : true
    } ]
  }, {
    "name" : "scriptformatpackage",
    "properties" : [ {
      "id" : "scriptformat",
      "type" : "String",
      "title" : "脚本格式化",
      "value" : "",
      "description" : "脚本任务的脚本格式化.",
      "popular" : true
    } ]
  }, {
    "name" : "scripttextpackage",
    "properties" : [ {
      "id" : "scripttext",
      "type" : "Text",
      "title" : "脚本",
      "value" : "",
      "description" : "脚本任务的脚本内容.",
      "popular" : true
    } ]
  }, {
    "name" : "ruletask_rulespackage",
    "properties" : [ {
      "id" : "ruletask_rules",
      "type" : "String",
      "title" : "规则",
      "value" : "",
      "description" : "规则任务的规则.",
      "popular" : true
    } ]
  }, {
    "name" : "ruletask_variables_inputpackage",
    "properties" : [ {
      "id" : "ruletask_variables_input",
      "type" : "String",
      "title" : "输入变量",
      "value" : "",
      "description" : "规则任务的输入变量.",
      "popular" : true
    } ]
  }, {
    "name" : "ruletask_excludepackage",
    "properties" : [ {
      "id" : "ruletask_exclude",
      "type" : "Boolean",
      "title" : "排除",
      "value" : "false",
      "description" : "使用作为排它性的规则属性",
      "popular" : true
    } ]
  }, {
    "name" : "ruletask_resultpackage",
    "properties" : [ {
      "id" : "ruletask_result",
      "type" : "String",
      "title" : "结果变量",
      "value" : "",
      "description" : "规则任务的结果变量",
      "popular" : true
    } ]
  }, {
    "name" : "mailtasktopackage",
    "properties" : [ {
      "id" : "mailtaskto",
      "type" : "Text",
      "title" : "发往",
      "value" : "",
      "description" : "接收者,格式为邮件。多个接收者请用逗号分割的列表来定义 ",
      "popular" : true
    } ]
  }, {
    "name" : "mailtaskfrompackage",
    "properties" : [ {
      "id" : "mailtaskfrom",
      "type" : "Text",
      "title" : "来自",
      "value" : "",
      "description" : "发送者的邮箱.若不提供,默认将使用配置中的来源地址.",
      "popular" : true
    } ]
  }, {
    "name" : "mailtasksubjectpackage",
    "properties" : [ {
      "id" : "mailtasksubject",
      "type" : "Text",
      "title" : "标题",
      "value" : "",
      "description" : "Email中的标题.",
      "popular" : true
    } ]
  }, {
    "name" : "mailtaskccpackage",
    "properties" : [ {
      "id" : "mailtaskcc",
      "type" : "Text",
      "title" : "抄送",
      "value" : "",
      "description" : "抄送的Email地址,多个接收者请用逗号分隔开。",
      "popular" : true
    } ]
  }, {
    "name" : "mailtaskbccpackage",
    "properties" : [ {
      "id" : "mailtaskbcc",
      "type" : "Text",
      "title" : "暗抄送",
      "value" : "",
      "description" : "暗抄送的Email地址. 多个接收者请用逗号分隔开",
      "popular" : true
    } ]
  }, {
    "name" : "mailtasktextpackage",
    "properties" : [ {
      "id" : "mailtasktext",
      "type" : "Text",
      "title" : "内容",
      "value" : "",
      "description" : "Email中的内容, 案例一需要发送纯文件的邮件. 可使用Html格式的邮件进行发送,若邮件的接收的客户端不支持这种格式,客户端可转为纯文本的邮件",
      "popular" : true
    } ]
  }, {
    "name" : "mailtaskhtmlpackage",
    "properties" : [ {
      "id" : "mailtaskhtml",
      "type" : "Text",
      "title" : "Html",
      "value" : "",
      "description" : "HTML中的一片段作为邮件的内容.",
      "popular" : true
    } ]
  }, {
    "name" : "mailtaskcharsetpackage",
    "properties" : [ {
      "id" : "mailtaskcharset",
      "type" : "String",
      "title" : "字符类型",
      "value" : "",
      "description" : "对于很多非英语语言来说,允许更改邮件的编码设置是必要的 ",
      "popular" : true
    } ]
  }, {
    "name" : "callactivitycalledelementpackage",
    "properties" : [ {
      "id" : "callactivitycalledelement",
      "type" : "String",
      "title" : "调用元素",
      "value" : "",
      "description" : "流程引用.",
      "popular" : true
    } ]
  }, {
    "name" : "callactivityinparameterspackage",
    "properties" : [ {
      "id" : "callactivityinparameters",
      "type" : "Complex",
      "title" : "输入参数",
      "value" : "",
      "description" : "定义输入参数",
      "popular" : true
    } ]
  }, {
    "name" : "callactivityoutparameterspackage",
    "properties" : [ {
      "id" : "callactivityoutparameters",
      "type" : "Complex",
      "title" : "输出参数",
      "value" : "",
      "description" : "输出参数的定义",
      "popular" : true
    } ]
  }, {
    "name" : "cameltaskcamelcontextpackage",
    "properties" : [ {
      "id" : "cameltaskcamelcontext",
      "type" : "String",
      "title" : "Camel 上下文",
      "value" : "",
      "description" : "可选的Camel 上下文定义,若为空,则使用系统缺省的.",
      "popular" : true
    } ]
  }, {
    "name" : "muletaskendpointurlpackage",
    "properties" : [ {
      "id" : "muletaskendpointurl",
      "type" : "String",
      "title" : "端点URL",
      "value" : "",
      "description" : "发送消息到Mule的必须的端点URL",
      "popular" : true
    } ]
  }, {
    "name" : "muletasklanguagepackage",
    "properties" : [ {
      "id" : "muletasklanguage",
      "type" : "String",
      "title" : "语言",
      "value" : "",
      "description" : "必须的语言定义来解析装载的表达式,如JUEL.",
      "popular" : true
    } ]
  }, {
    "name" : "muletaskpayloadexpressionpackage",
    "properties" : [ {
      "id" : "muletaskpayloadexpression",
      "type" : "String",
      "title" : "装载的表达式",
      "value" : "",
      "description" : "发送至Mule的必须执行的消息定义",
      "popular" : true
    } ]
  }, {
    "name" : "muletaskresultvariablepackage",
    "properties" : [ {
      "id" : "muletaskresultvariable",
      "type" : "String",
      "title" : "结果的变量",
      "value" : "",
      "description" : "可选的装载返回的结果的变量",
      "popular" : true
    } ]
  }, {
    "name" : "conditionsequenceflowpackage",
    "properties" : [ {
      "id" : "conditionsequenceflow",
      "type" : "Complex",
      "title" : "跳转条件",
      "value" : "",
      "description" : "流程跳线的条件定义",
      "popular" : true
    } ]
  }, {
    "name" : "defaultflowpackage",
    "properties" : [ {
      "id" : "defaultflow",
      "type" : "Boolean",
      "title" : "默认跳线",
      "value" : "false",
      "description" : "定义默认为顺序跳转",
      "popular" : true,
      "refToView" : "default"
    } ]
  }, {
    "name" : "conditionalflowpackage",
    "properties" : [ {
      "id" : "conditionalflow",
      "type" : "Boolean",
      "title" : "条件的跳线",
      "value" : "false",
      "description" : "定义条件的跳线",
      "popular" : true
    } ]
  }, {
    "name" : "timercycledefinitionpackage",
    "properties" : [ {
      "id" : "timercycledefinition",
      "type" : "String",
      "title" : "时间周期 (e.g. R3/PT10H)",
      "value" : "",
      "description" : "定义ISO-8601时间周期.",
      "popular" : true
    } ]
  }, {
    "name" : "timerdatedefinitionpackage",
    "properties" : [ {
      "id" : "timerdatedefinition",
      "type" : "String",
      "title" : "触发时间(ISO-8601格式标准)",
      "value" : "",
      "description" : "定义(ISO-8601格式标准)的定时器.",
      "popular" : true
    } ]
  }, {
    "name" : "timerdurationdefinitionpackage",
    "properties" : [ {
      "id" : "timerdurationdefinition",
      "type" : "String",
      "title" : "持续的时间(e.g. PT5M)",
      "value" : "",
      "description" : "定义(ISO-8601)持续的定时器",
      "popular" : true
    } ]
  }, {
    "name" : "timerenddatedefinitionpackage",
    "properties" : [ {
      "id" : "timerenddatedefinition",
      "type" : "String",
      "title" : "结束的时间格式(ISO-8601)",
      "value" : "",
      "description" : "定义带(ISO-8601 duration)定时器.",
      "popular" : true
    } ]
  }, {
    "name" : "messagerefpackage",
    "properties" : [ {
      "id" : "messageref",
      "type" : "String",
      "title" : "消息引用",
      "value" : "",
      "description" : "Define the message name.",
      "popular" : true
    } ]
  }, {
    "name" : "signalrefpackage",
    "properties" : [ {
      "id" : "signalref",
      "type" : "String",
      "title" : "信号引用",
      "value" : "",
      "description" : "定义信号的名称.",
      "popular" : true
    } ]
  }, {
    "name" : "errorrefpackage",
    "properties" : [ {
      "id" : "errorref",
      "type" : "String",
      "title" : "错误引用",
      "value" : "",
      "description" : "定义错误.",
      "popular" : true
    } ]
  }, {
    "name" : "cancelactivitypackage",
    "properties" : [ {
      "id" : "cancelactivity",
      "type" : "Boolean",
      "title" : "取消的活动",
      "value" : "true",
      "description" : "活动允许取消",
      "popular" : true,
      "refToView" : [ "frame", "frame2" ]
    } ]
  }, {
    "name" : "initiatorpackage",
    "properties" : [ {
      "id" : "initiator",
      "type" : "String",
      "title" : "初始化器",
      "value" : "",
      "description" : "流程定义的初始初始化器",
      "popular" : true
    } ]
  }, {
    "name" : "textpackage",
    "properties" : [ {
      "id" : "text",
      "type" : "String",
      "title" : "Text",
      "value" : "",
      "description" : "文本注释",
      "popular" : true,
      "refToView" : "text"
    } ]
  }, {
    "name" : "multiinstance_typepackage",
    "properties" : [ {
      "id" : "multiinstance_type",
      "type" : "kisbpm-multiinstance",
      "title" : "多实例类型",
      "value" : "None",
      "description" : "通过不同的循环类型,重复的活动执行(并行、串行)可显示",
      "popular" : true,
      "refToView" : "multiinstance"
    } ]
  }, {
    "name" : "multiinstance_cardinalitypackage",
    "properties" : [ {
      "id" : "multiinstance_cardinality",
      "type" : "String",
      "title" : "基数 (多实例)",
      "value" : "",
      "description" : "定义多实例的基数.",
      "popular" : true
    } ]
  }, {
    "name" : "multiinstance_collectionpackage",
    "properties" : [ {
      "id" : "multiinstance_collection",
      "type" : "String",
      "title" : "集合(多实例)",
      "value" : "",
      "description" : "定义多实例的集合.",
      "popular" : true
    } ]
  }, {
    "name" : "multiinstance_variablepackage",
    "properties" : [ {
      "id" : "multiinstance_variable",
      "type" : "String",
      "title" : "元素的变量(多实例)",
      "value" : "",
      "description" : "为多实例定义变量元素",
      "popular" : true
    } ]
  }, {
    "name" : "multiinstance_conditionpackage",
    "properties" : [ {
      "id" : "multiinstance_condition",
      "type" : "String",
      "title" : "完成条件(多实例)",
      "value" : "",
      "description" : "定义多实例的完成条件.",
      "popular" : true
    } ]
  }, {
    "name" : "isforcompensationpackage",
    "properties" : [ {
      "id" : "isforcompensation",
      "type" : "Boolean",
      "title" : "作为修正",
      "value" : "false",
      "description" : "标识当前活动为修正执行活动。",
      "popular" : true,
      "refToView" : "compensation"
    } ]
  }, {
    "name" : "sequencefloworderpackage",
    "properties" : [ {
      "id" : "sequencefloworder",
      "type" : "Complex",
      "title" : "流程顺序",
      "value" : "",
      "description" : "流程跳出线的顺序",
      "popular" : true
    } ]
  }, {
    "name" : "signaldefinitionspackage",
    "properties" : [ {
      "id" : "signaldefinitions",
      "type" : "multiplecomplex",
      "title" : "信号定义",
      "value" : "",
      "description" : "信号定义",
      "popular" : true
    } ]
  }, {
    "name" : "messagedefinitionspackage",
    "properties" : [ {
      "id" : "messagedefinitions",
      "type" : "multiplecomplex",
      "title" : "消息定义",
      "value" : "",
      "description" : "消息定义",
      "popular" : true
    } ]
  }, {
    "name" : "istransactionpackage",
    "properties" : [ {
      "id" : "istransaction",
      "type" : "Boolean",
      "title" : "作为子流程的事务",
      "value" : "false",
      "description" : "标识子流程作为事务类型",
      "popular" : true,
      "refToView" : "border"
    } ]
  } ],
  "stencils" : [ {
    "type" : "node",
    "id" : "BPMNDiagram",
    "title" : "BPMN流程图",
    "description" : "BPMN2的流程图.",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n    \n    \n    \t\n  \n",
    "icon" : "diagram.png",
    "groups" : [ "Diagram" ],
    "mayBeRoot" : true,
    "hide" : true,
    "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ ]
  }, {
    "type" : "node",
    "id" : "StartNoneEvent",
    "title" : "开始事件",
    "description" : "无特定触发器的开始事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n\t\n  \n",
    "icon" : "startevent/none.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartTimerEvent",
    "title" : "开始事件(触发器)",
    "description" : "带定时器触发的开始事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n    \n    \n    \n   \n\t\n  \n",
    "icon" : "startevent/timer.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartSignalEvent",
    "title" : "开始事件(信号)",
    "description" : "通过信号触发开始事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n\n    \n    \n    \n\t\n  \n",
    "icon" : "startevent/signal.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartMessageEvent",
    "title" : "开始事件(消息)",
    "description" : "通过消息触发开始事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n    \n    \n    \n    \n\t\n  \n",
    "icon" : "startevent/message.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "StartErrorEvent",
    "title" : "开始事件(错误)",
    "description" : "用于捕获BPMN抛出的错误的开始事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \n    \n\t\n  \n",
    "icon" : "startevent/error.png",
    "groups" : [ "开始事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "UserTask",
    "title" : "人工任务",
    "description" : "指派给特定人来执行的人工任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n  \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.user.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ServiceTask",
    "title" : "服务任务",
    "description" : "带有服务逻辑的自动任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n  \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.service.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ScriptTask",
    "title" : "脚本任务",
    "description" : "带有脚本逻辑的自动任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n  \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.script.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "BusinessRule",
    "title" : "业务规则的任务",
    "description" : "带有业务规则的自动任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n  \t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n    \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.business.rule.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ReceiveTask",
    "title" : "接收任务",
    "description" : "等待接收信号来触发的任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n    \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.receive.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ManualTask",
    "title" : "手工任务",
    "description" : "不带任何逻辑的自动任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n    \n    \t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.manual.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "MailTask",
    "title" : "邮件任务",
    "description" : "邮箱任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n    \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.send.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "CamelTask",
    "title" : "Camel任务",
    "description" : "发送消息给Camel容器的任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n  \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.camel.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "MuleTask",
    "title" : "Mule 任务",
    "description" : "发送消息给Mule容器的任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n  \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.mule.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "SendTask",
    "title" : "发送任务",
    "description" : "发送消息的任务",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n\t\t\n\t\t\n    \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/list/type.send.png",
    "groups" : [ "活动" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "SubProcess",
    "title" : "子流程",
    "description" : "子流程范围的流程",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/expanded.subprocess.png",
    "groups" : [ "结构模块" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EventSubProcess",
    "title" : "子流程的事件",
    "description" : "子流程范围的事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n\t\n    \t\n\t\t\n    \t\n\t\n\t\n  \n",
    "icon" : "activity/event.subprocess.png",
    "groups" : [ "结构模块" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "all" ]
  }, {
    "type" : "node",
    "id" : "CallActivity",
    "title" : "调用活动",
    "description" : "调用的活动",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n\t\n    \n\t\n\t\t\n\t\t\n    \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n  \n",
    "icon" : "activity/task.png",
    "groups" : [ "结构模块" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "ExclusiveGateway",
    "title" : "排他网关",
    "description" : "排他选择的网关",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n    \n  \t\t\t\t\t\n  \n  \n    \n    \n      \n      \n    \n\t\n\t\n\t\n  \n\n",
    "icon" : "gateway/exclusive.databased.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "ParallelGateway",
    "title" : "并行网关",
    "description" : "并行执行的网关",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n   \n  \n    \n  \n  \n    \n    \n    \n\t\n\t\n  \n\n",
    "icon" : "gateway/parallel.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "InclusiveGateway",
    "title" : "包含网关",
    "description" : "满足条件的包含性的网关",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n    \n  \n  \n\n    \n    \n    \n\t\n\t\n  \n\n",
    "icon" : "gateway/inclusive.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EventGateway",
    "title" : "事件网关",
    "description" : "事件网关",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n    \n  \n  \n   \n  \t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n  \t\n\t\n\n",
    "icon" : "gateway/eventbased.png",
    "groups" : [ "网关" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "BoundaryErrorEvent",
    "title" : "边界出错事件",
    "description" : "捕获BPMN的错误的边界事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \n    \n    \n\t\n  \n",
    "icon" : "catching/error.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundaryTimerEvent",
    "title" : "边界定时事件",
    "description" : "A boundary event with a timer trigger",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \n    \n    \n    \n    \n    \t\n\t\n  \n",
    "icon" : "catching/timer.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundarySignalEvent",
    "title" : "边界信号事件",
    "description" : "带有事件触发器的边界事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \n    \n    \n\t\n\t\n  \n",
    "icon" : "catching/signal.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundaryMessageEvent",
    "title" : "边界消息事件",
    "description" : "带有消息触发器的边界事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \t\n    \n    \n    \n\t\n\t\t\n\t\n\t\n\t\n  \n",
    "icon" : "catching/message.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundaryCancelEvent",
    "title" : "边界取消事件",
    "description" : "边界取消事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n  \n    \n    \n    \n    \n\t\n  \n",
    "icon" : "catching/cancel.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
  }, {
    "type" : "node",
    "id" : "BoundaryCompensationEvent",
    "title" : "边界修正事件",
    "description" : "边界修正事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n\t\n    \n    \n    \n    \n    \n\t\n \n",
    "icon" : "catching/compensation.png",
    "groups" : [ "边界事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ]
  }, {
    "type" : "node",
    "id" : "CatchTimerEvent",
    "title" : "捕捉中间定时器的事件",
    "description" : "带有捕捉定时器触发的事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \n    \n    \n    \n    \n    \t\n\t\n  \n",
    "icon" : "catching/timer.png",
    "groups" : [ "中间捕获事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "CatchSignalEvent",
    "title" : "中间信号捕获事件",
    "description" : "信号触发的中间捕获事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \n    \n    \n\t\n\t\n  \n",
    "icon" : "catching/signal.png",
    "groups" : [ "中间捕获事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "CatchMessageEvent",
    "title" : "中间消息捕获事件",
    "description" : "消息触发的中间捕获事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \t\n    \n    \t\n    \n    \n    \n\t\n\t\t\n\t\n\t\n\t\n  \n",
    "icon" : "catching/message.png",
    "groups" : [ "中间捕获事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "ThrowNoneEvent",
    "title" : "无触发的中间事件",
    "description" : "无特定触发器的中间事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n  \n    \n    \n\t\n  \n",
    "icon" : "throwing/none.png",
    "groups" : [ "中间捕获事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "ThrowSignalEvent",
    "title" : "抛出信号的中间事件",
    "description" : "通过信号触发器的中间事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \n    \n\t\n  \n",
    "icon" : "throwing/signal.png",
    "groups" : [ "中间捕获事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndNoneEvent",
    "title" : "结束事件",
    "description" : "无特定触发器的结束事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n\t\n  \n",
    "icon" : "endevent/none.png",
    "groups" : [ "结束事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndErrorEvent",
    "title" : "结束事件(出错)",
    "description" : "抛出错误的结束事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n    \n    \n    \n\t\n  \n",
    "icon" : "endevent/error.png",
    "groups" : [ "结束事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndCancelEvent",
    "title" : "结束事件(取消)",
    "description" : "取消的结束事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n    \n    \n\t\n  \n",
    "icon" : "endevent/cancel.png",
    "groups" : [ "结束事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "EndTerminateEvent",
    "title" : "结束事件(终止)",
    "description" : "终止类型的结束事件",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n    \n    \n    \n\t\n  \n",
    "icon" : "endevent/terminate.png",
    "groups" : [ "结束事件" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "EndEventsMorph", "sequence_end", "all" ]
  }, {
    "type" : "node",
    "id" : "Pool",
    "title" : "泳道",
    "description" : "用来结构化流程定义的泳道",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \t\n  \t\n  \t\n  \t\n  \n  \n    \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t  \t\n  \t\n    \n    \n\t\n\t\n\t\n\t\n    \n    \n  \n",
    "icon" : "swimlane/pool.png",
    "groups" : [ "泳道" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.pool"
    } ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "canContainArtifacts", "all" ]
  }, {
    "type" : "node",
    "id" : "Lane",
    "title" : "区域",
    "description" : "结构化流程定义的区域",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \n     \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n  \t\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n    \n\t\n  \n",
    "icon" : "swimlane/lane.png",
    "groups" : [ "泳道" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "PoolChild", "canContainArtifacts", "all" ]
  }, {
    "type" : "edge",
    "id" : "SequenceFlow",
    "title" : "顺序跳转线",
    "description" : "顺序跳转线定义了不同活动节点执行的顺序",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n\r\n\t\r\n\t  \t\r\n\t  \t\t\r\n\t\t\t\r\n\t  \t\r\n\t  \t\r\n\t  \t\t\r\n\t  \t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n",
    "icon" : "connector/sequenceflow.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "edge",
    "id" : "MessageFlow",
    "title" : "消息跳转线",
    "description" : "用来连接不同泳道中的元素的消息跳转",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n\r\n\t\r\n\t\t\r\n\t  \t\t\r\n\t  \t\t\r\n\t  \t\r\n\r\n\t  \t\r\n\t  \t\t\r\n\t  \t\r\n\t\r\n\t\r\n\t    \r\n\t\t\r\n\t\r\n",
    "icon" : "connector/messageflow.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "edge",
    "id" : "Association",
    "title" : "关联说明",
    "description" : "为元素关联文本说明",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n\r\n\t\r\n\t    \r\n\t\t\r\n\t\r\n",
    "icon" : "connector/association.undirected.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "edge",
    "id" : "DataAssociation",
    "title" : "数据关联说明",
    "description" : "为活动节点关联数据元素",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n\r\n\t\r\n\t  \t\r\n\t  \t\t\r\n\t  \t\r\n\t\r\n\t\r\n\t    \r\n\t\t\r\n\t\r\n",
    "icon" : "connector/association.unidirectional.png",
    "groups" : [ "连接对象" ],
    "layout" : [ {
      "type" : "layout.bpmn2_0.sequenceflow"
    } ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "ConnectingObjectsMorph", "all" ]
  }, {
    "type" : "node",
    "id" : "TextAnnotation",
    "title" : "文本关联",
    "description" : "关联一组元素进行文本描述",
    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\n  \n  \n  \t\n  \n  \n  \n  \n    \n    \n\t\n  \n",
    "icon" : "artifact/text.annotation.png",
    "groups" : [ "文档注释" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ],
    "hiddenPropertyPackages" : [ ],
    "roles" : [ "all" ]
  }, {
    "type" : "node",
    "id" : "DataStore",
    "title" : "数据存储",
    "description" : "引用一数据存储",
    "view" : "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\" ?>\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t \t\r\n\t\t\r\n\t\t\t \r\n\t\r\n\r\n",
    "icon" : "dataobject/data.store.png",
    "groups" : [ "文档注释" ],
    "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
    "hiddenPropertyPackages" : [ ],
    "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" ]
      }, {
        "from" : "sequence_end",
        "to" : [ "TextAnnotation" ]
      }, {
        "from" : "TextAnnotation",
        "to" : [ "sequence_end" ]
      }, {
        "from" : "BoundaryCompensationEvent",
        "to" : [ "sequence_end" ]
      }, {
        "from" : "TextAnnotation",
        "to" : [ "sequence_start" ]
      }, {
        "from" : "BoundaryCompensationEvent",
        "to" : [ "sequence_start" ]
      } ]
    }, {
      "role" : "DataAssociation",
      "connects" : [ {
        "from" : "sequence_start",
        "to" : [ "DataStore" ]
      }, {
        "from" : "sequence_end",
        "to" : [ "DataStore" ]
      }, {
        "from" : "DataStore",
        "to" : [ "sequence_end" ]
      }, {
        "from" : "DataStore",
        "to" : [ "sequence_start" ]
      } ]
    }, {
      "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", "DataStore" ]
    }, {
      "role" : "EventSubProcess",
      "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ]
    }, {
      "role" : "Pool",
      "contains" : [ "Lane" ]
    }, {
      "role" : "Lane",
      "contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ]
    } ],
    "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" : "BoundaryEventsMorph",
      "baseMorphs" : [ "ThrowNoneEvent" ]
    }, {
      "role" : "BoundaryCompensationEvent",
      "baseMorphs" : [ "BoundaryCompensationEvent" ]
    }, {
      "role" : "TextAnnotation",
      "baseMorphs" : [ "TextAnnotation" ]
    }, {
      "role" : "DataStore",
      "baseMorphs" : [ "DataStore" ]
    } ]
  }
}

zh-CN.json

{
  "HEADER.BRAND": "Activiti编辑",
  "HEADER.BRAND_TAGLINE": "powered by Alfresco",
  "PAGE.HEADER": "Orchestration Details",
?
  "ACTION.OK": "确认",
  "ACTION.SAVE": "保存",
  "ACTION.SAVE-AND-CLOSE": "保存并关闭",
  "ACTION.SEND": "发送",
  "ACTION.CANCEL": "取消",
  "ACTION.SELECT": "选择",
  "ACTION.ADD": "添加",
  "ACTION.REMOVE": "清除",
  "ACTION.MOVE.UP": "上移",
  "ACTION.MOVE.DOWN": "下移",
?
  "MAIN_NAVIGATION_ORCHESTRATIONS": "业务流程",
  "MAIN_NAVIGATION_DISPATCH_RULES": "调度规则",
  "MAIN_NAVIGATION_ASSET_GROUPS": "审批组",
  "MAIN_NAVIGATION_SOLUTIONS": "解决",
?
  "TOOLBAR.ACTION.CLOSE": "Close the editor and go back to the overview page",
  "TOOLBAR.ACTION.SAVE": "保存",
  "TOOLBAR.ACTION.VALIDATE": "校验",
  "TOOLBAR.ACTION.CUT": "剪切",
  "TOOLBAR.ACTION.COPY": "复制",
  "TOOLBAR.ACTION.PASTE": "粘贴",
  "TOOLBAR.ACTION.DELETE": "删除",
  "TOOLBAR.ACTION.UNDO": "撤销",
  "TOOLBAR.ACTION.REDO": "重复",
  "TOOLBAR.ACTION.ZOOMIN": "放大",
  "TOOLBAR.ACTION.ZOOMOUT": "缩小",
  "TOOLBAR.ACTION.ZOOMACTUAL": "实际大小 ",
  "TOOLBAR.ACTION.ZOOMFIT": "适应屏幕",
  "TOOLBAR.ACTION.MOVE": "移动",
  "TOOLBAR.ACTION.IMPORT": "导入",
  "TOOLBAR.ACTION.EXPORT": "导出",
  "TOOLBAR.ACTION.BENDPOINT.ADD": "为选定的流程连线添加弯曲点",
  "TOOLBAR.ACTION.BENDPOINT.REMOVE": "为选定的流程连线删除弯曲点",
  "TOOLBAR.ACTION.ALIGNHORIZONTAL": "水平对齐",
  "TOOLBAR.ACTION.ALIGNVERTICAL": "垂直对齐",
  "TOOLBAR.ACTION.SAMESIZE": "Same size",
  "TOOLBAR.ACTION.HELP": "Start the guided tour",
  "TOOLBAR.ACTION.FEEDBACK": "Provide feedback",
?
  "KICKSTART.PROCESS_TOOLBAR.ACTION.SAVE": "保存",
  "KICKSTART.PROCESS_TOOLBAR.ACTION.VALIDATE": "校验模型",
  "KICKSTART.PROCESS_TOOLBAR.ACTION.HELP": "预览",
  "KICKSTART.PROCESS_TOOLBAR.ACTION.FEEDBACK": "反馈",
?
  "FORM_TOOLBAR.ACTION.SAVE": "保存",
  "FORM_TOOLBAR.ACTION.VALIDATE": "校验模型",
  "FORM_TOOLBAR.ACTION.HELP": "预览",
  "FORM_TOOLBAR.ACTION.FEEDBACK": "反馈",
?
  "APP_DEFINITION_TOOLBAR.ACTION.SAVE": "保存",
  "APP_DEFINITION_TOOLBAR.ACTION.VALIDATE": "校验模型",
  "APP_DEFINITION_TOOLBAR.ACTION.HELP": "预览",
  "APP_DEFINITION_TOOLBAR.ACTION.FEEDBACK": "反馈",
?
  "BUTTON.ACTION.DELETE.TOOLTIP": "从模型中删除元素",
  "BUTTON.ACTION.MORPH.TOOLTIP": "更改元素类型",
?
  "ELEMENT.AUTHOR": "作者",
  "ELEMENT.DATE_CREATED": "创建日期",
  "ELEMENT.SELECTED_EMPTY_TITLE": "(输入名称)",
?
  "PROPERTY.REMOVED": "清除",
  "PROPERTY.EMPTY": "",
  "PROPERTY.PROPERTY.EDIT.TITLE": "修改 \"{{title}}\"",
?
  "PROPERTY.FEEDBACK.TITLE": "请填写您的反馈意见",
?
  "PROPERTY.ASSIGNMENT.TITLE": "指派",
  "PROPERTY.ASSIGNMENT.TYPE": "类型",
  "PROPERTY.ASSIGNMENT.TYPE.IDENTITYSTORE": "Identity store",
  "PROPERTY.ASSIGNMENT.TYPE.STATIC": "静态值",
  "PROPERTY.ASSIGNMENT.ASSIGNEE": "代理人",
  "PROPERTY.ASSIGNMENT.MATCHING": "使用上下方向键选择并按回车键确认或使用鼠标",
  "PROPERTY.ASSIGNMENT.ASSIGNEE_PLACEHOLDER": "请输入代理人",
  "PROPERTY.ASSIGNMENT.EMPTY": "无代理人",
  "PROPERTY.ASSIGNMENT.ASSIGNEE_DISPLAY": "代理人 {{assignee}}",
  "PROPERTY.ASSIGNMENT.CANDIDATE_USERS_DISPLAY": "{{length}}候选人",
  "PROPERTY.ASSIGNMENT.CANDIDATE_USERS": "候选人",
  "PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS_DISPLAY": "{{length}}候选组",
  "PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS": "候选组",
  "PROPERTY.ASSIGNMENT.USER_IDM_DISPLAY": "用户{{firstName}} {{lastName}}",
  "PROPERTY.ASSIGNMENT.USER_IDM_EMAIL_DISPLAY": "用户{{email}}",
  "PROPERTY.ASSIGNMENT.IDM_EMPTY": "发起人",
  "PROPERTY.ASSIGNMENT.IDM.TYPE": "任务",
  "PROPERTY.ASSIGNMENT.IDM.NO_CANDIDATE_USERS": "没有选择候选人...",
  "PROPERTY.ASSIGNMENT.IDM.NO_CANDIDATE_GROUPS": "没有选择候选组...",
  "PROPERTY.ASSIGNMENT.IDM.DROPDOWN.INITIATOR": "分派给发起人",
  "PROPERTY.ASSIGNMENT.IDM.DROPDOWN.USER": "分派给一个用户",
  "PROPERTY.ASSIGNMENT.IDM.DROPDOWN.USERS": "候选人s",
  "PROPERTY.ASSIGNMENT.IDM.DROPDOWN.GROUPS": "候选组",
  "PROPERTY.ASSIGNMENT.EMAIL.HELP": "键入一个电子邮件地址,然后按回车键继续 ",
?
  "PROPERTY.EXECUTIONLISTENERS.DISPLAY": "{{length}}执行监听",
  "PROPERTY.EXECUTIONLISTENERS.EMPTY": "没有配置执行监听",
  "PROPERTY.EXECUTIONLISTENERS.EVENT": "事件",
  "PROPERTY.EXECUTIONLISTENERS.CLASS": "类",
  "PROPERTY.EXECUTIONLISTENERS.CLASS.PLACEHOLDER": "输入类名",
  "PROPERTY.EXECUTIONLISTENERS.EXPRESSION": "表达式",
  "PROPERTY.EXECUTIONLISTENERS.EXPRESSION.PLACEHOLDER": "输入表达式",
  "PROPERTY.EXECUTIONLISTENERS.DELEGATEEXPRESSION": "委托表达式",
  "PROPERTY.EXECUTIONLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER": "输入委托表达式",
  "PROPERTY.EXECUTIONLISTENERS.UNSELECTED": "没有配置执行监听",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.NAME": "名称",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.NAME.PLACEHOLDER": "输入名称",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.EXPRESSION": "表达式",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.EXPRESSION.PLACEHOLDER": "输入表达式",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.STRINGVALUE": "字符串",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.STRINGVALUE.PLACEHOLDER": "输入字符串",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.STRING": "字符串",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.STRING.PLACEHOLDER": "输入字符串",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.IMPLEMENTATION": "实现类",
  "PROPERTY.EXECUTIONLISTENERS.FIELDS.EMPTY": "没有选择字段",
?
  "PROPERTY.FIELDS": "{{length}}字段",
  "PROPERTY.FIELDS.EMPTY": "没有选择字段",
  "PROPERTY.FIELDS.NAME": "名称",
  "PROPERTY.FIELDS.NAME.PLACEHOLDER": "输入名称",
  "PROPERTY.FIELDS.EXPRESSION": "表达式",
  "PROPERTY.FIELDS.EXPRESSION.PLACEHOLDER": "输入表达式",
  "PROPERTY.FIELDS.STRINGVALUE": "字符串",
  "PROPERTY.FIELDS.STRINGVALUE.PLACEHOLDER": "输入字符串",
  "PROPERTY.FIELDS.STRING": "字符串",
  "PROPERTY.FIELDS.STRING.PLACEHOLDER": "输入字符串",
  "PROPERTY.FIELDS.IMPLEMENTATION": "实现类",
  "PROPERTY.FIELDS.UNSELECTED": "没有选择字段",
?
  "PROPERTY.FORMPROPERTIES.VALUE": "{{length}}表单属性",
  "PROPERTY.FORMPROPERTIES.EMPTY": "没有配置表单",
  "PROPERTY.FORMPROPERTIES.ID": "活动编号",
  "PROPERTY.FORMPROPERTIES.ID.PLACEHOLDER": "输入活动编号",
  "PROPERTY.FORMPROPERTIES.NAME": "名称",
  "PROPERTY.FORMPROPERTIES.NAME.PLACEHOLDER": "输入名称",
  "PROPERTY.FORMPROPERTIES.TYPE": "类型",
  "PROPERTY.FORMPROPERTIES.DATEPATTERN": "时间选择框",
  "PROPERTY.FORMPROPERTIES.DATEPATTERN.PLACEHOLDER": "输入日期",
  "PROPERTY.FORMPROPERTIES.VALUES": "值",
  "PROPERTY.FORMPROPERTIES.EXPRESSION": "表达式",
  "PROPERTY.FORMPROPERTIES.EXPRESSION.PLACEHOLDER": "输入表达式",
  "PROPERTY.FORMPROPERTIES.VARIABLE": "变量",
  "PROPERTY.FORMPROPERTIES.VARIABLE.PLACEHOLDER": "输入变量",
  "PROPERTY.FORMPROPERTIES.REQUIRED": "必输",
  "PROPERTY.FORMPROPERTIES.READABLE": "可读",
  "PROPERTY.FORMPROPERTIES.WRITABLE": "可写",
?
  "PROPERTY.INPARAMETERS.VALUE": "{{length}}输入参数",
  "PROPERTY.INPARAMETERS.EMPTY": "没有配置输入参数",
?
  "PROPERTY.OUTPARAMETERS.VALUE": "{{length}}返回参数",
  "PROPERTY.OUTPARAMETERS.EMPTY": "没有配置返回参数",
?
  "PROPERTY.PARAMETER.SOURCE": "源",
  "PROPERTY.PARAMETER.SOURCE.PLACEHOLDER": "输入源",
  "PROPERTY.PARAMETER.SOURCEEXPRESSION": "源表达式",
  "PROPERTY.PARAMETER.SOURCEEXPRESSION.PLACEHOLDER": "输入源表达式",
  "PROPERTY.PARAMETER.TARGET": "目标",
  "PROPERTY.PARAMETER.TARGET.PLACEHOLDER": "输入目标",
  "PROPERTY.PARAMETER.EMPTY": "没有选择参数",
?
  "PROPERTY.SUBPROCESSREFERENCE.EMPTY": "没有引用子流程",
  "PROPERTY.SUBPROCESSREFERENCE.TITLE": "引用错误的子流程",
  "PROPERTY.SUBPROCESSREFERENCE.ERROR.SUBPROCESS": "子流程加载错误.请稍后再试",
  "PROPERTY.SUBPROCESSREFERENCE.FOLDER.ROOT": "文件夹",
  "PROPERTY.SUBPROCESSREFERENCE.FOLDER.LOADING": "文件夹加载中...",
  "PROPERTY.SUBPROCESSREFERENCE.FOLDER.EMPTY": "文件夹未包含子文件夹",
  "PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.LOADING": "子流程加载中...",
  "PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.EMPTY": "文件夹包含子文件夹",
?
  "PROPERTY.FORMREFERENCE.EMPTY": "没有引用表单",
  "PROPERTY.FORMREFERENCE.TITLE": "表单引用",
  "PROPERTY.FORMREFERENCE.ERROR.FORM": "表单加载错误.请稍后再试!",
  "PROPERTY.FORMREFERENCE.FOLDER.ROOT": "文件夹",
  "PROPERTY.FORMREFERENCE.FOLDER.LOADING": "文件夹加载中...",
  "PROPERTY.FORMREFERENCE.FOLDER.EMPTY": "文件夹未包含子文件夹",
  "PROPERTY.FORMREFERENCE.FORM.LOADING": "表单加载中...",
  "PROPERTY.FORMREFERENCE.FORM.EMPTY": "文件夹包含子文件夹",
?
  "PROPERTY.TASKLISTENERS.VALUE": "{{length}}任务监听",
  "PROPERTY.TASKLISTENERS.EMPTY": "未配置任务监听",
  "PROPERTY.TASKLISTENERS.EVENT": "事件",
  "PROPERTY.TASKLISTENERS.CLASS": "类",
  "PROPERTY.TASKLISTENERS.CLASS.PLACEHOLDER": "输入类名",
  "PROPERTY.TASKLISTENERS.EXPRESSION": "表达式",
  "PROPERTY.TASKLISTENERS.EXPRESSION.PLACEHOLDER": "请输入表达式",
  "PROPERTY.TASKLISTENERS.DELEGATEEXPRESSION": "委托表达式",
  "PROPERTY.TASKLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER": "请输入委托表达式",
  "PROPERTY.TASKLISTENERS.UNSELECTED": "没有选择任务监听",
  "PROPERTY.TASKLISTENERS.FIELDS.NAME": "名称",
  "PROPERTY.TASKLISTENERS.FIELDS.NAME.PLACEHOLDER": "请输入名称",
  "PROPERTY.TASKLISTENERS.FIELDS.EXPRESSION": "表达式",
  "PROPERTY.TASKLISTENERS.FIELDS.EXPRESSION.PLACEHOLDER": "请输入表达式",
  "PROPERTY.TASKLISTENERS.FIELDS.STRINGVALUE": "字符串",
  "PROPERTY.TASKLISTENERS.FIELDS.STRINGVALUE.PLACEHOLDER": "请输入字符串",
  "PROPERTY.TASKLISTENERS.FIELDS.STRING": "字符串",
  "PROPERTY.TASKLISTENERS.FIELDS.STRING.PLACEHOLDER": "请输入字符串",
  "PROPERTY.TASKLISTENERS.FIELDS.IMPLEMENTATION": "执行",
  "PROPERTY.TASKLISTENERS.FIELDS.EMPTY": "未选择字段",
?
  "PROPERTY.EVENTLISTENERS.DISPLAY": "{{length}}事件监听",
  "PROPERTY.EVENTLISTENERS.EMPTY": "未配置事件监听",
  "PROPERTY.EVENTLISTENERS.EVENTS": "事件",
  "PROPERTY.EVENTLISTENERS.RETHROW": "抛出事件?",
  "PROPERTY.EVENTLISTENERS.CLASS": "类",
  "PROPERTY.EVENTLISTENERS.CLASS.PLACEHOLDER": "输入类名",
  "PROPERTY.EVENTLISTENERS.DELEGATEEXPRESSION": "委托表达式",
  "PROPERTY.EVENTLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER": "请输入委托表达式",
  "PROPERTY.EVENTLISTENERS.ENTITYTYPE": "类型",
  "PROPERTY.EVENTLISTENERS.ENTITYTYPE.PLACEHOLDER": "请输入类型",
  "PROPERTY.EVENTLISTENERS.RETHROWTYPE": "抛出事件类型",
  "PROPERTY.EVENTLISTENERS.ERRORCODE": "错误代码",
  "PROPERTY.EVENTLISTENERS.ERRORCODE.PLACEHOLDER": "请输入错误代码",
  "PROPERTY.EVENTLISTENERS.MESSAGENAME": "消息名称",
  "PROPERTY.EVENTLISTENERS.MESSAGENAME.PLACEHOLDER": "请输入消息名称",
  "PROPERTY.EVENTLISTENERS.SIGNALNAME": "信号名称",
  "PROPERTY.EVENTLISTENERS.SIGNALNAME.PLACEHOLDER": "请输入信号名称",
  "PROPERTY.EVENTLISTENERS.UNSELECTED": "没有选择事件监听",
?
  "PROPERTY.SIGNALDEFINITIONS.DISPLAY": "{{length}}信号定义",
  "PROPERTY.SIGNALDEFINITIONS.EMPTY": "没有配置信号定义",
  "PROPERTY.SIGNALDEFINITIONS.SCOPE-GLOBAL": "全局",
  "PROPERTY.SIGNALDEFINITIONS.SCOPE-PROCESSINSTANCE": "流程初始化",
  "PROPERTY.SIGNALDEFINITIONS.ID": "编号",
  "PROPERTY.SIGNALDEFINITIONS.NAME": "名称",
  "PROPERTY.SIGNALDEFINITIONS.SCOPE": "Scope",
?
  "PROPERTY.MESSAGEDEFINITIONS.DISPLAY": "{{length}}消息定义",
  "PROPERTY.MESSAGEDEFINITIONS.EMPTY": "没有配置消息定义",
  "PROPERTY.MESSAGEDEFINITIONS.ID": "编号",
  "PROPERTY.MESSAGEDEFINITIONS.NAME": "名称",
?
  "PROPERTY.SEQUENCEFLOW.ORDER.EMPTY": "没有确定顺序流排序",
  "PROPERTY.SEQUENCEFLOW.ORDER.NOT.EMPTY": "顺序流排序",
  "PROPERTY.SEQUENCEFLOW.ORDER.NO.OUTGOING.SEQUENCEFLOW.FOUND": "没有输出顺序流.",
  "PROPERTY.SEQUENCEFLOW.ORDER.DESCRIPTION": "不能设置已经被使用的编号:",
  "PROPERTY.SEQUENCEFLOW.ORDER.SEQUENCEFLOW.VALUE": "顺序流{{targetType}} {{targetTitle}}",
?
  "PROPERTY.SEQUENCEFLOW.CONDITION.TITLE": "条件",
  "PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.TITLE": "条件类型",
  "PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.VARIABLE": "选择的变量",
  "PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.STATIC": "静态值",
  "PROPERTY.SEQUENCEFLOW.CONDITION.STATIC": "条件表达式",
  "PROPERTY.SEQUENCEFLOW.CONDITION.STATIC_PLACEHOLDER": "输入表达式值",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.TYPE": "变量类型",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-CONDITION": "没有条件",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.FORM-FIELD": "表单字段",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.FORM-OUTCOME": "表单输出",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-FIELD": "选择的字段",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-FIELDS-AVAILABLE": "没有字段变量",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-FORM": "选择表单",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-FORMS-AVAILABLE": "没有表单变量",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-OPERATOR": "选择操作",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.EQUALS": "等于",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NOTEQUALS": "不等于",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.LESSTHAN": "小于",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.GREATERTHAN": "大于",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-OUTCOME": "选择输出",
  "PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-OUTCOMES-AVAILABLE": "没有输出变量",
  "PROPERTY.SEQUENCEFLOW.CONDITION.NO-CONDITION-DISPLAY": "没有条件",
?
  "MODEL.SAVE.TITLE": "保存模型",
  "MODEL.NAME": "名称",
  "MODEL.DESCRIPTION": "描述",
  "MODEL.SAVE.NEWVERSION": "保存为新版本? 这样你可以随时回到以前的版本",
  "MODEL.SAVE.COMMENT": "注释",
  "MODEL.SAVE.SAVING": "保存",
  "MODEL.LASTMODIFIEDDATE": "上次保存时间",
  "MODEL.SAVE.ERROR": "未知错误:保存失败!",
?
  "EVENT_TYPE.ACTIVITY.COMPENSATE.TOOLTIP": "一个活动被另外一个活动替代执行",
  "EVENT_TYPE.ACTIVITY.COMPLETED.TOOLTIP": "一个活动被成功的执行",
  "EVENT_TYPE.ACTIVITY.ERROR.RECEIVED.TOOLTIP": "在收到活动错误之前,活动已收到错误事件",
  "EVENT_TYPE.MEMBERSHIP.CREATED.TOOLTIP": "一个唯一的成员被创建",
  "EVENT_TYPE.MEMBERSHIP.DELETED.TOOLTIP": "一个唯一的成员被删除",
  "EVENT_TYPE.MEMBERSHIPS.DELETED.TOOLTIP": "所有成员都被删除.可能是由于没有事件被分配",
  "EVENT_TYPE.TASK.ASSIGNED.TOOLTIP": "在ENTITY_UPDATED事件抛出时,任务已经被分配",
  "EVENT_TYPE.TASK.COMPLETED.TOOLTIP": "在任务实体删除前任务已经被完成",
  "EVENT_TYPE.UNCAUGHT.BPMNERROR.TOOLTIP": "一个BPMN被抛出,但没有捕获",
  "EVENT_TYPE.VARIABLE.CREATED.TOOLTIP": "一个变量被创建",
  "EVENT_TYPE.VARIABLE.DELETED.TOOLTIP": "一个变量被删除",
  "EVENT_TYPE.VARIABLE.UPDATED.TOOLTIP": "一个变量被更新"
}

汉化页面文字,在 resources/static/ 目录下添加 stencilset.json 文件

需要修改 StencilsetRestResource.java 类中 stencilset.json 为 static/stencilset.json (最前面不 要有 / );

@RestController
public class StencilsetRestResource {
  
  @RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
  public @ResponseBody String getStencilset() {
    InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilset.json");
    try {
      return IOUtils.toString(stencilsetStream, "utf-8");
    } catch (Exception e) {
      throw new ActivitiException("Error while loading stencil set", e);
    }
  }
}

汉化按钮文字,添加 zh-CN.json 文件,在 resources/static/editor-app/i18n 目录下添加 zh-CN.json 文件

修改 resources/static/editor-app/app.js 文件,将第51行的 $translateProvider.preferredLanguage('en'); 替换为以下内容:

        // $translateProvider.preferredLanguage('en');
        // 多语言支持
        if("zh-CN" == navigator.language){
            $translateProvider.preferredLanguage('zh-CN');
        }else {
             $translateProvider.preferredLanguage('en');
        }
?

至此,Activiti整合WEB版流程模型设计器Modeler已完成.

启动测试一下

@SpringBootApplication
public class workflowApplication {
?
    public static void main(String[] args) {
        SpringApplication.run(workflowApplication.class,args);
    }
}

如果项目报错的话,rebuild project大概率能解决.