└── activitiDemo ├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── example │ │ └── springbootdemo │ │ ├── ActivitiDemoApplication.java │ │ ├── controller │ │ ├── ActivitiModelController.java │ │ ├── ItemController.java │ │ ├── ModelEditorJsonRestResource.java │ │ ├── ModelSaveRestResource.java │ │ └── StencilsetRestResource.java │ │ ├── mapper │ │ ├── ItemMapper.java │ │ └── ItemMapper.xml │ │ ├── model │ │ └── Item.java │ │ └── service │ │ ├── ItemService.java │ │ └── impl │ │ └── ItemServiceImpl.java └── resources │ ├── application.yml │ ├── static │ ├── diagram-viewer │ │ ├── images │ │ │ ├── bg.png │ │ │ ├── breadcrumbs.png │ │ │ ├── checker-bg.png │ │ │ └── deployer │ │ │ │ ├── blue │ │ │ │ └── message_catch.png │ │ │ │ ├── business_rule.png │ │ │ │ ├── error_catch.png │ │ │ │ ├── error_throw.png │ │ │ │ ├── manual.png │ │ │ │ ├── message_catch.png │ │ │ │ ├── message_throw.png │ │ │ │ ├── receive.png │ │ │ │ ├── script.png │ │ │ │ ├── send.png │ │ │ │ ├── service.png │ │ │ │ ├── signal_catch.png │ │ │ │ ├── signal_throw.png │ │ │ │ ├── timer.png │ │ │ │ └── user.png │ │ ├── index.html │ │ ├── js │ │ │ ├── ActivitiRest.js │ │ │ ├── ActivityImpl.js │ │ │ ├── Color.js │ │ │ ├── LineBreakMeasurer.js │ │ │ ├── Polyline.js │ │ │ ├── ProcessDiagramCanvas.js │ │ │ ├── ProcessDiagramGenerator.js │ │ │ ├── jquery │ │ │ │ ├── jquery.asyncqueue.js │ │ │ │ ├── jquery.js │ │ │ │ └── jquery.progressbar.js │ │ │ ├── jstools.js │ │ │ ├── raphael.2.1.1.js │ │ │ ├── raphael.js │ │ │ ├── raphael_uncompressed.js │ │ │ └── textlayout.js │ │ └── style.css │ ├── editor-app │ │ ├── app-cfg.js │ │ ├── app.js │ │ ├── configuration │ │ │ ├── properties-assignment-controller.js │ │ │ ├── properties-condition-expression-controller.js │ │ │ ├── properties-custom-controllers.js │ │ │ ├── properties-default-controllers.js │ │ │ ├── properties-event-listeners-controller.js │ │ │ ├── properties-execution-listeners-controller.js │ │ │ ├── properties-fields-controller.js │ │ │ ├── properties-form-properties-controller.js │ │ │ ├── properties-in-parameters-controller.js │ │ │ ├── properties-message-definitions-controller.js │ │ │ ├── properties-message-scope-controller.js │ │ │ ├── properties-multiinstance-controller.js │ │ │ ├── properties-out-parameters-controller.js │ │ │ ├── properties-sequenceflow-order-controller.js │ │ │ ├── properties-signal-definitions-controller.js │ │ │ ├── properties-signal-scope-controller.js │ │ │ ├── properties-task-listeners-controller.js │ │ │ ├── properties.js │ │ │ ├── properties │ │ │ │ ├── assignment-display-template.html │ │ │ │ ├── assignment-popup.html │ │ │ │ ├── assignment-write-template.html │ │ │ │ ├── boolean-property-template.html │ │ │ │ ├── condition-expression-display-template.html │ │ │ │ ├── condition-expression-popup.html │ │ │ │ ├── condition-expression-write-template.html │ │ │ │ ├── default-value-display-template.html │ │ │ │ ├── event-listeners-display-template.html │ │ │ │ ├── event-listeners-popup.html │ │ │ │ ├── event-listeners-write-template.html │ │ │ │ ├── execution-listeners-display-template.html │ │ │ │ ├── execution-listeners-popup.html │ │ │ │ ├── execution-listeners-write-template.html │ │ │ │ ├── feedback-popup.html │ │ │ │ ├── fields-display-template.html │ │ │ │ ├── fields-popup.html │ │ │ │ ├── fields-write-template.html │ │ │ │ ├── form-properties-display-template.html │ │ │ │ ├── form-properties-popup.html │ │ │ │ ├── form-properties-write-template.html │ │ │ │ ├── in-parameters-display-template.html │ │ │ │ ├── in-parameters-popup.html │ │ │ │ ├── in-parameters-write-template.html │ │ │ │ ├── message-definitions-display-template.html │ │ │ │ ├── message-definitions-popup.html │ │ │ │ ├── message-definitions-write-template.html │ │ │ │ ├── message-property-write-template.html │ │ │ │ ├── multiinstance-property-write-template.html │ │ │ │ ├── out-parameters-display-template.html │ │ │ │ ├── out-parameters-popup.html │ │ │ │ ├── out-parameters-write-template.html │ │ │ │ ├── sequenceflow-order-display-template.html │ │ │ │ ├── sequenceflow-order-popup.html │ │ │ │ ├── sequenceflow-order-write-template.html │ │ │ │ ├── signal-definitions-display-template.html │ │ │ │ ├── signal-definitions-popup.html │ │ │ │ ├── signal-definitions-write-template.html │ │ │ │ ├── signal-property-write-template.html │ │ │ │ ├── string-property-write-mode-template.html │ │ │ │ ├── subprocess-reference-display-template.html │ │ │ │ ├── subprocess-reference-popup.html │ │ │ │ ├── subprocess-reference-write-template.html │ │ │ │ ├── task-listeners-display-template.html │ │ │ │ ├── task-listeners-popup.html │ │ │ │ ├── task-listeners-write-template.html │ │ │ │ ├── text-popup.html │ │ │ │ └── text-property-write-template.html │ │ │ ├── toolbar-custom-actions.js │ │ │ ├── toolbar-default-actions.js │ │ │ ├── toolbar.js │ │ │ └── url-config.js │ │ ├── css │ │ │ ├── style-common.css │ │ │ ├── style-editor.css │ │ │ └── style.css │ │ ├── editor-config.js │ │ ├── editor-controller.js │ │ ├── editor-utils.js │ │ ├── editor.html │ │ ├── editor │ │ │ ├── css │ │ │ │ └── editor.css │ │ │ ├── i18n │ │ │ │ ├── translation_de.js │ │ │ │ ├── translation_en_us.js │ │ │ │ ├── translation_signavio_de.js │ │ │ │ └── translation_signavio_en_us.js │ │ │ ├── oryx.debug.js │ │ │ └── oryx.js │ │ ├── eventbus.js │ │ ├── fonts │ │ │ ├── activiti-admin-webfont.eot │ │ │ ├── activiti-admin-webfont.svg │ │ │ ├── activiti-admin-webfont.ttf │ │ │ ├── activiti-admin-webfont.woff │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ ├── header-controller.js │ │ ├── i18n │ │ │ ├── en.json │ │ │ └── zh-CN.json │ │ ├── images │ │ │ ├── bpmn-error.png │ │ │ ├── bpmn-warning.png │ │ │ ├── datadefinition.png │ │ │ ├── delete.png │ │ │ ├── loading.gif │ │ │ ├── logo-2x.png │ │ │ ├── logo.png │ │ │ ├── nw-handle-dark.gif │ │ │ ├── se-handle-dark.gif │ │ │ ├── shapemenu_highlight.png │ │ │ └── wrench.png │ │ ├── libs │ │ │ ├── angular-cookies_1.2.13 │ │ │ │ ├── angular-cookies.min.js │ │ │ │ └── angular-cookies.min.js.map │ │ │ ├── angular-dragdrop.min-1.0.3.js │ │ │ ├── angular-dragdrop_1.0.7 │ │ │ │ └── angular-dragdrop.min.js │ │ │ ├── angular-mocks_1.2.13 │ │ │ │ └── angular-mocks.js │ │ │ ├── angular-resource_1.2.13 │ │ │ │ ├── angular-resource.js │ │ │ │ ├── angular-resource.min.js │ │ │ │ └── angular-resource.min.js.map │ │ │ ├── angular-route_1.2.13 │ │ │ │ ├── angular-route.js │ │ │ │ ├── angular-route.min.js │ │ │ │ └── angular-route.min.js.map │ │ │ ├── angular-sanitize_1.2.13 │ │ │ │ ├── angular-sanitize.js │ │ │ │ ├── angular-sanitize.min.js │ │ │ │ └── angular-sanitize.min.js.map │ │ │ ├── angular-scroll_0.5.7 │ │ │ │ └── angular-scroll.min.js │ │ │ ├── angular-strap_2.0.5 │ │ │ │ ├── angular-strap.min.js │ │ │ │ └── angular-strap.tpl.min.js │ │ │ ├── angular-translate-loader-static-files │ │ │ │ ├── .bower.json │ │ │ │ ├── angular-translate-loader-static-files.js │ │ │ │ └── angular-translate-loader-static-files.min.js │ │ │ ├── angular-translate-storage-cookie │ │ │ │ ├── .bower.json │ │ │ │ ├── angular-translate-storage-cookie.js │ │ │ │ └── angular-translate-storage-cookie.min.js │ │ │ ├── angular-translate_2.4.2 │ │ │ │ ├── angular-translate.js │ │ │ │ └── angular-translate.min.js │ │ │ ├── angular_1.2.13 │ │ │ │ ├── angular-animate.min.js │ │ │ │ └── angular.min.js │ │ │ ├── bootstrap-daterangepicker_1.3.7 │ │ │ │ ├── daterangepicker-bs3.css │ │ │ │ └── daterangepicker.js │ │ │ ├── bootstrap_3.1.1 │ │ │ │ ├── css │ │ │ │ │ ├── bootstrap-theme.css │ │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ └── bootstrap.min.css │ │ │ │ ├── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ └── glyphicons-halflings-regular.woff │ │ │ │ └── js │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ └── bootstrap.min.js │ │ │ ├── es5-shim-15.3.4.5 │ │ │ │ ├── .bower.json │ │ │ │ ├── .gitignore │ │ │ │ ├── CHANGES │ │ │ │ ├── CONTRIBUTORS.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── es5-sham.js │ │ │ │ ├── es5-sham.map │ │ │ │ ├── es5-sham.min.js │ │ │ │ ├── es5-shim.js │ │ │ │ ├── es5-shim.map │ │ │ │ ├── es5-shim.min.js │ │ │ │ ├── package.json │ │ │ │ └── tests │ │ │ │ │ ├── helpers │ │ │ │ │ ├── h-kill.js │ │ │ │ │ ├── h-matchers.js │ │ │ │ │ └── h.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.min.html │ │ │ │ │ ├── lib │ │ │ │ │ ├── jasmine-html.js │ │ │ │ │ ├── jasmine.css │ │ │ │ │ ├── jasmine.js │ │ │ │ │ ├── jasmine_favicon.png │ │ │ │ │ └── json2.js │ │ │ │ │ └── spec │ │ │ │ │ ├── s-array.js │ │ │ │ │ ├── s-date.js │ │ │ │ │ ├── s-function.js │ │ │ │ │ ├── s-number.js │ │ │ │ │ ├── s-object.js │ │ │ │ │ └── s-string.js │ │ │ ├── jquery-ui-1.10.3.custom.min.js │ │ │ ├── jquery.autogrow-textarea.js │ │ │ ├── jquery_1.11.0 │ │ │ │ ├── jquery.js │ │ │ │ ├── jquery.min.js │ │ │ │ └── jquery.min.map │ │ │ ├── json3_3.2.6 │ │ │ │ ├── LICENSE │ │ │ │ └── lib │ │ │ │ │ ├── json3.js │ │ │ │ │ └── json3.min.js │ │ │ ├── momentjs_2.5.1 │ │ │ │ └── momentjs.min.js │ │ │ ├── mousetrap-1.4.5.min.js │ │ │ ├── ng-grid-2.0.7-min.js │ │ │ ├── ng-grid-2.0.7.min.css │ │ │ ├── path_parser.js │ │ │ ├── prototype-1.5.1.js │ │ │ └── ui-utils.min-0.0.4.js │ │ ├── partials │ │ │ ├── root-stencil-item-template.html │ │ │ └── stencil-item-template.html │ │ ├── plugins.xml │ │ ├── popups │ │ │ ├── icon-template.html │ │ │ ├── save-model.html │ │ │ ├── select-shape.html │ │ │ └── unsaved-changes.html │ │ ├── select-shape-controller.js │ │ ├── stencil-controller.js │ │ ├── stencilsets │ │ │ └── bpmn2.0 │ │ │ │ └── icons │ │ │ │ ├── activity │ │ │ │ ├── event.subprocess.collapsed.png │ │ │ │ ├── event.subprocess.png │ │ │ │ ├── expanded.subprocess.png │ │ │ │ ├── list │ │ │ │ │ ├── type.business.rule.png │ │ │ │ │ ├── type.camel.png │ │ │ │ │ ├── type.manual.png │ │ │ │ │ ├── type.mule.png │ │ │ │ │ ├── type.receive.png │ │ │ │ │ ├── type.script.png │ │ │ │ │ ├── type.send.png │ │ │ │ │ ├── type.service.png │ │ │ │ │ ├── type.shell.png │ │ │ │ │ └── type.user.png │ │ │ │ ├── subprocess.png │ │ │ │ └── task.png │ │ │ │ ├── artifact │ │ │ │ └── text.annotation.png │ │ │ │ ├── catching │ │ │ │ ├── cancel.png │ │ │ │ ├── compensation.png │ │ │ │ ├── error.png │ │ │ │ ├── message.png │ │ │ │ ├── signal.png │ │ │ │ └── timer.png │ │ │ │ ├── connector │ │ │ │ ├── association.undirected.png │ │ │ │ ├── association.unidirectional.png │ │ │ │ ├── messageflow.png │ │ │ │ └── sequenceflow.png │ │ │ │ ├── dataobject │ │ │ │ └── data.store.png │ │ │ │ ├── diagram.png │ │ │ │ ├── endevent │ │ │ │ ├── cancel.png │ │ │ │ ├── error.png │ │ │ │ ├── none.png │ │ │ │ └── terminate.png │ │ │ │ ├── gateway │ │ │ │ ├── eventbased.png │ │ │ │ ├── exclusive.databased.png │ │ │ │ ├── inclusive.png │ │ │ │ └── parallel.png │ │ │ │ ├── startevent │ │ │ │ ├── error.png │ │ │ │ ├── message.png │ │ │ │ ├── none.png │ │ │ │ ├── signal.png │ │ │ │ └── timer.png │ │ │ │ ├── swimlane │ │ │ │ ├── lane.png │ │ │ │ └── pool.png │ │ │ │ └── throwing │ │ │ │ ├── none.png │ │ │ │ └── signal.png │ │ └── toolbar-controller.js │ └── modeler.html │ └── stencilset.json └── test └── java └── com └── xhh └── ActivitiDemoApplicationTests.java /activitiDemo/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | !.mvn/wrapper/maven-wrapper.jar 3 | 4 | ### STS ### 5 | .apt_generated 6 | .classpath 7 | .factorypath 8 | .project 9 | .settings 10 | .springBeans 11 | .sts4-cache 12 | 13 | ### IntelliJ IDEA ### 14 | .idea 15 | *.iws 16 | *.iml 17 | *.ipr 18 | 19 | ### NetBeans ### 20 | /nbproject/private/ 21 | /build/ 22 | /nbbuild/ 23 | /dist/ 24 | /nbdist/ 25 | /.nb-gradle/ -------------------------------------------------------------------------------- /activitiDemo/.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /activitiDemo/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip 2 | -------------------------------------------------------------------------------- /activitiDemo/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.xhh 7 | activitiDemo 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | activitiDemo 12 | Demo project for Spring Boot 13 | 14 | 15 | org.springframework.boot 16 | spring-boot-starter-parent 17 | 1.5.17.RELEASE 18 | 19 | 20 | 21 | 22 | UTF-8 23 | UTF-8 24 | 1.8 25 | 26 | 27 | 28 | 29 | org.springframework.boot 30 | spring-boot-starter-web 31 | 32 | 33 | 34 | org.mybatis.spring.boot 35 | mybatis-spring-boot-starter 36 | 1.3.2 37 | 38 | 39 | mysql 40 | mysql-connector-java 41 | runtime 42 | 43 | 44 | org.springframework.boot 45 | spring-boot-starter-test 46 | test 47 | 48 | 49 | com.alibaba 50 | druid 51 | 1.1.8 52 | 53 | 54 | org.activiti 55 | activiti-spring-boot-starter-basic 56 | 5.22.0 57 | 58 | 59 | 60 | 61 | org.activiti 62 | activiti-explorer 63 | 5.22.0 64 | 65 | 66 | org.activiti 67 | activiti-modeler 68 | 5.22.0 69 | 70 | 71 | org.activiti 72 | activiti-rest 73 | 5.22.0 74 | 75 | 76 | 77 | org.activiti 78 | activiti-diagram-rest 79 | 5.22.0 80 | 81 | 82 | org.apache.xmlgraphics 83 | batik-rasterizer 84 | 1.8 85 | 86 | 87 | org.apache.xmlgraphics 88 | xmlgraphics-commons 89 | 2.2 90 | 91 | 92 | org.apache.xmlgraphics 93 | batik-codec 94 | 1.8 95 | 96 | 97 | org.apache.xmlgraphics 98 | batik-css 99 | 1.8 100 | 101 | 102 | org.apache.xmlgraphics 103 | batik-svg-dom 104 | 1.7 105 | 106 | 107 | org.apache.xmlgraphics 108 | batik-svggen 109 | 1.7 110 | 111 | 112 | 113 | org.springframework.boot 114 | spring-boot-starter-thymeleaf 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | org.springframework.boot 124 | spring-boot-maven-plugin 125 | 126 | 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/ActivitiDemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 | import org.springframework.boot.autoconfigure.SpringBootApplication; 6 | 7 | @SpringBootApplication 8 | @EnableAutoConfiguration(exclude = { 9 | org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class, 10 | org.activiti.spring.boot.SecurityAutoConfiguration.class 11 | }) 12 | public class ActivitiDemoApplication { 13 | 14 | public static void main(String[] args) { 15 | SpringApplication.run(ActivitiDemoApplication.class, args); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/controller/ItemController.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo.controller; 2 | import com.example.springbootdemo.model.Item; 3 | import com.example.springbootdemo.service.ItemService; 4 | import org.activiti.engine.RepositoryService; 5 | import org.activiti.engine.RuntimeService; 6 | import org.activiti.engine.TaskService; 7 | import org.activiti.engine.repository.Deployment; 8 | import org.activiti.engine.repository.ProcessDefinition; 9 | import org.activiti.engine.runtime.ProcessInstance; 10 | import org.activiti.engine.task.Task; 11 | import org.springframework.beans.factory.annotation.Autowired; 12 | import org.springframework.stereotype.Controller; 13 | import org.springframework.stereotype.Repository; 14 | import org.springframework.web.bind.annotation.RequestMapping; 15 | import org.springframework.web.bind.annotation.RestController; 16 | import java.io.FileInputStream; 17 | import java.io.InputStream; 18 | import java.util.HashMap; 19 | import java.util.List; 20 | import java.util.Map; 21 | @RestController 22 | public class ItemController { 23 | @Autowired 24 | private ItemService itemService; 25 | @Autowired 26 | private RepositoryService repositoryService; 27 | @Autowired 28 | private RuntimeService runtimeService; 29 | @Autowired 30 | private TaskService taskService; 31 | @RequestMapping("/test") 32 | public String Test(){ 33 | return "hello"; 34 | } 35 | @RequestMapping("/DBTest") 36 | public Map DBTest(int id){ 37 | Map map = new HashMap<>(); 38 | try { 39 | Item item = itemService.selectByPrimaryKey(id); 40 | map.put("item",item); 41 | map.put("result",1); 42 | map.put("message","操作成功"); 43 | }catch (Exception e){ 44 | e.printStackTrace(); 45 | map.put("result",0); 46 | map.put("message","操作失败"); 47 | System.out.println("操作失败"); 48 | } 49 | return map; 50 | } 51 | @RequestMapping("/deployment") 52 | public String deployment() throws Exception{ 53 | Map result = new HashMap(); 54 | Deployment deployment = repositoryService.createDeployment().name("请假流程").addClasspathResource("processes/LeaveBill.bpmn").deploy(); 55 | System.out.println("部署Id" + deployment.getId()); 56 | return deployment.getId(); 57 | } 58 | @RequestMapping("/findProcessDefination") 59 | public List findProcessDefination(){ 60 | List list = repositoryService.createProcessDefinitionQuery().deploymentId("1").list(); 61 | return list; 62 | } 63 | @RequestMapping("/startProcess") 64 | public String startProcess(){ 65 | ProcessInstance pi = runtimeService.startProcessInstanceByKey("LeaveBill"); 66 | System.out.println("流程实例Id" + pi.getId()); 67 | return pi.getId(); 68 | } 69 | @RequestMapping("/findUserTask") 70 | public void findUserTask(){ 71 | String assigne = "李四"; 72 | Task task = taskService.createTaskQuery().taskAssignee(assigne).singleResult(); 73 | System.out.println(task.getId()+"有任务"); 74 | } 75 | @RequestMapping("/complteTask") 76 | public void complteTask(){ 77 | String taskId = "5002"; 78 | taskService.complete(taskId); 79 | System.out.println("完成任务"); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/controller/ModelEditorJsonRestResource.java: -------------------------------------------------------------------------------- 1 | /* Licensed under the Apache License, Version 2.0 (the "License"); 2 | * you may not use this file except in compliance with the License. 3 | * You may obtain a copy of the License at 4 | * 5 | * http://www.apache.org/licenses/LICENSE-2.0 6 | * 7 | * Unless required by applicable law or agreed to in writing, software 8 | * distributed under the License is distributed on an "AS IS" BASIS, 9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | * See the License for the specific language governing permissions and 11 | * limitations under the License. 12 | */ 13 | package com.example.springbootdemo.controller; 14 | 15 | import org.activiti.editor.constants.ModelDataJsonConstants; 16 | import org.activiti.engine.ActivitiException; 17 | import org.activiti.engine.RepositoryService; 18 | import org.activiti.engine.repository.Model; 19 | import org.apache.commons.lang3.StringUtils; 20 | import org.slf4j.Logger; 21 | import org.slf4j.LoggerFactory; 22 | import org.springframework.beans.factory.annotation.Autowired; 23 | import org.springframework.web.bind.annotation.PathVariable; 24 | import org.springframework.web.bind.annotation.RequestMapping; 25 | import org.springframework.web.bind.annotation.RequestMethod; 26 | import org.springframework.web.bind.annotation.RestController; 27 | 28 | import com.fasterxml.jackson.databind.ObjectMapper; 29 | import com.fasterxml.jackson.databind.node.ObjectNode; 30 | 31 | /** 32 | * @author Tijs Rademakers 33 | */ 34 | @RestController 35 | @RequestMapping("/service") 36 | public class ModelEditorJsonRestResource implements ModelDataJsonConstants { 37 | 38 | protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class); 39 | 40 | @Autowired 41 | private RepositoryService repositoryService; 42 | 43 | @Autowired 44 | private ObjectMapper objectMapper; 45 | 46 | @RequestMapping(value="/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json") 47 | public ObjectNode getEditorJson(@PathVariable String modelId) { 48 | ObjectNode modelNode = null; 49 | 50 | Model model = repositoryService.getModel(modelId); 51 | 52 | if (model != null) { 53 | try { 54 | if (StringUtils.isNotEmpty(model.getMetaInfo())) { 55 | modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo()); 56 | } else { 57 | modelNode = objectMapper.createObjectNode(); 58 | modelNode.put(MODEL_NAME, model.getName()); 59 | } 60 | modelNode.put(MODEL_ID, model.getId()); 61 | ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree( 62 | new String(repositoryService.getModelEditorSource(model.getId()), "utf-8")); 63 | modelNode.put("model", editorJsonNode); 64 | 65 | } catch (Exception e) { 66 | LOGGER.error("Error creating model JSON", e); 67 | throw new ActivitiException("Error creating model JSON", e); 68 | } 69 | } 70 | return modelNode; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/controller/ModelSaveRestResource.java: -------------------------------------------------------------------------------- 1 | /* Licensed under the Apache License, Version 2.0 (the "License"); 2 | * you may not use this file except in compliance with the License. 3 | * You may obtain a copy of the License at 4 | * 5 | * http://www.apache.org/licenses/LICENSE-2.0 6 | * 7 | * Unless required by applicable law or agreed to in writing, software 8 | * distributed under the License is distributed on an "AS IS" BASIS, 9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | * See the License for the specific language governing permissions and 11 | * limitations under the License. 12 | */ 13 | package com.example.springbootdemo.controller; 14 | 15 | import java.io.ByteArrayInputStream; 16 | import java.io.ByteArrayOutputStream; 17 | import java.io.InputStream; 18 | 19 | import org.activiti.editor.constants.ModelDataJsonConstants; 20 | import org.activiti.engine.ActivitiException; 21 | import org.activiti.engine.RepositoryService; 22 | import org.activiti.engine.repository.Model; 23 | import org.apache.batik.transcoder.TranscoderInput; 24 | import org.apache.batik.transcoder.TranscoderOutput; 25 | import org.apache.batik.transcoder.image.PNGTranscoder; 26 | import org.apache.log4j.LogManager; 27 | import org.apache.log4j.Logger; 28 | import org.slf4j.LoggerFactory; 29 | import org.springframework.beans.factory.annotation.Autowired; 30 | import org.springframework.http.HttpStatus; 31 | import org.springframework.web.bind.annotation.*; 32 | 33 | import com.fasterxml.jackson.databind.ObjectMapper; 34 | import com.fasterxml.jackson.databind.node.ObjectNode; 35 | 36 | /** 37 | * @author Tijs Rademakers 38 | */ 39 | @RestController 40 | @RequestMapping("/service") 41 | public class ModelSaveRestResource implements ModelDataJsonConstants { 42 | private static final Logger LOGGER = LogManager.getLogger(ModelSaveRestResource.class); 43 | @Autowired 44 | private RepositoryService repositoryService; 45 | @Autowired 46 | private ObjectMapper objectMapper; 47 | @RequestMapping(value="/model/{modelId}/save", method = RequestMethod.PUT) 48 | @ResponseStatus(value = HttpStatus.OK) 49 | public void saveModel(@PathVariable String modelId, @RequestParam("name") String name, 50 | @RequestParam("json_xml") String json_xml, @RequestParam("svg_xml") String svg_xml, 51 | @RequestParam("description") String description) { 52 | try { 53 | Model model = repositoryService.getModel(modelId); 54 | ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model.getMetaInfo()); 55 | modelJson.put(MODEL_NAME, name); 56 | modelJson.put(MODEL_DESCRIPTION, description); 57 | model.setMetaInfo(modelJson.toString()); 58 | model.setName(name); 59 | repositoryService.saveModel(model); 60 | repositoryService.addModelEditorSource(model.getId(), json_xml.getBytes("utf-8")); 61 | InputStream svgStream = new ByteArrayInputStream(svg_xml.getBytes("utf-8")); 62 | TranscoderInput input = new TranscoderInput(svgStream); 63 | PNGTranscoder transcoder = new PNGTranscoder(); 64 | // Setup output 65 | ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 66 | TranscoderOutput output = new TranscoderOutput(outStream); 67 | // Do the transformation 68 | transcoder.transcode(input, output); 69 | final byte[] result = outStream.toByteArray(); 70 | repositoryService.addModelEditorSourceExtra(model.getId(), result); 71 | outStream.close(); 72 | } catch (Exception e) { 73 | LOGGER.error("Error saving model", e); 74 | throw new ActivitiException("Error saving model", e); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/controller/StencilsetRestResource.java: -------------------------------------------------------------------------------- 1 | /* Licensed under the Apache License, Version 2.0 (the "License"); 2 | * you may not use this file except in compliance with the License. 3 | * You may obtain a copy of the License at 4 | * 5 | * http://www.apache.org/licenses/LICENSE-2.0 6 | * 7 | * Unless required by applicable law or agreed to in writing, software 8 | * distributed under the License is distributed on an "AS IS" BASIS, 9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | * See the License for the specific language governing permissions and 11 | * limitations under the License. 12 | */ 13 | package com.example.springbootdemo.controller; 14 | 15 | import java.io.InputStream; 16 | 17 | import org.activiti.engine.ActivitiException; 18 | import org.apache.commons.io.IOUtils; 19 | import org.springframework.web.bind.annotation.RequestMapping; 20 | import org.springframework.web.bind.annotation.RequestMethod; 21 | import org.springframework.web.bind.annotation.ResponseBody; 22 | import org.springframework.web.bind.annotation.RestController; 23 | 24 | /** 25 | * @author Tijs Rademakers 26 | */ 27 | @RestController 28 | @RequestMapping("/service") 29 | public class StencilsetRestResource { 30 | 31 | @RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8") 32 | public @ResponseBody String getStencilset() { 33 | InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json"); 34 | try { 35 | return IOUtils.toString(stencilsetStream, "utf-8"); 36 | } catch (Exception e) { 37 | throw new ActivitiException("Error while loading stencil set", e); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/mapper/ItemMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo.mapper; 2 | 3 | import com.example.springbootdemo.model.Item; 4 | import org.apache.ibatis.annotations.Mapper; 5 | 6 | @Mapper 7 | public interface ItemMapper { 8 | public Item selectByPrimaryKey(int id) throws Exception; 9 | } 10 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/mapper/ItemMapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/model/Item.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo.model; 2 | 3 | import java.util.Date; 4 | 5 | public class Item { 6 | private int id; 7 | private String name; 8 | private String detail; 9 | private Date createTime; 10 | 11 | public int getId() { 12 | return id; 13 | } 14 | 15 | public void setId(int id) { 16 | this.id = id; 17 | } 18 | 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | public void setName(String name) { 24 | this.name = name; 25 | } 26 | 27 | public String getDetail() { 28 | return detail; 29 | } 30 | 31 | public void setDetail(String detail) { 32 | this.detail = detail; 33 | } 34 | 35 | public Date getCreateTime() { 36 | return createTime; 37 | } 38 | 39 | public void setCreateTime(Date createTime) { 40 | this.createTime = createTime; 41 | } 42 | 43 | @Override 44 | public String toString() { 45 | return "Item{" + 46 | "id=" + id + 47 | ", name='" + name + '\'' + 48 | ", detail='" + detail + '\'' + 49 | ", createTime=" + createTime + 50 | '}'; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/service/ItemService.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo.service; 2 | 3 | import com.example.springbootdemo.model.Item; 4 | 5 | public interface ItemService { 6 | public Item selectByPrimaryKey(int id) throws Exception; 7 | } 8 | -------------------------------------------------------------------------------- /activitiDemo/src/main/java/com/example/springbootdemo/service/impl/ItemServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.springbootdemo.service.impl; 2 | 3 | import com.example.springbootdemo.mapper.ItemMapper; 4 | import com.example.springbootdemo.model.Item; 5 | import com.example.springbootdemo.service.ItemService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | @Service 10 | public class ItemServiceImpl implements ItemService { 11 | @Autowired 12 | private ItemMapper itemMapper; 13 | @Override 14 | public Item selectByPrimaryKey(int id) throws Exception { 15 | return itemMapper.selectByPrimaryKey(id); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | mybatis: 4 | mapper-locations: classpath:mapper/*/*.xml 5 | spring: 6 | application: 7 | name: ServerPatrol 8 | activiti: 9 | database-schema-update: true 10 | check-process-definitions: false 11 | process-definition-location-prefix: classpath:/processes/ 12 | # check-process-definitions: false #这个比较重要,不配置的话会扫描类路径下的processes下的.xml文件 13 | datasource: #数据库连接信息 14 | type: com.alibaba.druid.pool.DruidDataSource 15 | driver-class-name: com.mysql.jdbc.Driver 16 | url: jdbc:mysql://localhost:3306/activitibootdemo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false 17 | username: root 18 | password: 123456 19 | filters: stat,wall,slf4j 20 | initialSize: 1 21 | minIdle: 3 22 | maxActive: 20 23 | maxWait: 6000 24 | maxPoolPreparedStatementPerConnectionSize: 20 25 | minEvictableIdleTimeMillis: 30000 26 | poolPreparedStatements: true 27 | testOnBorrow: false 28 | testOnReturn: false 29 | testWhileIdle: true 30 | useGlobalDataSourceStat: true 31 | timeBetweenEvictionRunsMillis: 60000 32 | validationQuery: select 'x' 33 | #security: 34 | #basic: 35 | #enabled: false -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/bg.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/breadcrumbs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/breadcrumbs.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/checker-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/checker-bg.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/blue/message_catch.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/business_rule.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/error_catch.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/error_throw.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/manual.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/message_catch.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/message_throw.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/receive.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/script.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/send.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/service.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/signal_catch.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/signal_throw.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/timer.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/images/deployer/user.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/ActivitiRest.js: -------------------------------------------------------------------------------- 1 | var ActivitiRest = { 2 | options: {}, 3 | getProcessDefinitionByKey: function(processDefinitionKey, callback) { 4 | var url = Lang.sub(this.options.processDefinitionByKeyUrl, {processDefinitionKey: processDefinitionKey}); 5 | 6 | $.ajax({ 7 | url: url, 8 | dataType: 'jsonp', 9 | cache: false, 10 | async: true, 11 | success: function(data, textStatus) { 12 | var processDefinition = data; 13 | if (!processDefinition) { 14 | console.error("Process definition '" + processDefinitionKey + "' not found"); 15 | } else { 16 | callback.apply({processDefinitionId: processDefinition.id}); 17 | } 18 | } 19 | }).done(function(data, textStatus) { 20 | console.log("ajax done"); 21 | }).fail(function(jqXHR, textStatus, error){ 22 | console.error('Get diagram layout['+processDefinitionKey+'] failure: ', textStatus, 'error: ', error, jqXHR); 23 | }); 24 | }, 25 | 26 | getProcessDefinition: function(processDefinitionId, callback) { 27 | var url = Lang.sub(this.options.processDefinitionUrl, {processDefinitionId: processDefinitionId}); 28 | 29 | $.ajax({ 30 | url: url, 31 | dataType: 'jsonp', 32 | cache: false, 33 | async: true, 34 | success: function(data, textStatus) { 35 | var processDefinitionDiagramLayout = data; 36 | if (!processDefinitionDiagramLayout) { 37 | console.error("Process definition diagram layout '" + processDefinitionId + "' not found"); 38 | return; 39 | } else { 40 | callback.apply({processDefinitionDiagramLayout: processDefinitionDiagramLayout}); 41 | } 42 | } 43 | }).done(function(data, textStatus) { 44 | console.log("ajax done"); 45 | }).fail(function(jqXHR, textStatus, error){ 46 | console.log('Get diagram layout['+processDefinitionId+'] failure: ', textStatus, jqXHR); 47 | }); 48 | }, 49 | 50 | getHighLights: function(processInstanceId, callback) { 51 | var url = Lang.sub(this.options.processInstanceHighLightsUrl, {processInstanceId: processInstanceId}); 52 | 53 | $.ajax({ 54 | url: url, 55 | dataType: 'jsonp', 56 | cache: false, 57 | async: true, 58 | success: function(data, textStatus) { 59 | console.log("ajax returned data"); 60 | var highLights = data; 61 | if (!highLights) { 62 | console.log("highLights not found"); 63 | return; 64 | } else { 65 | callback.apply({highLights: highLights}); 66 | } 67 | } 68 | }).done(function(data, textStatus) { 69 | console.log("ajax done"); 70 | }).fail(function(jqXHR, textStatus, error){ 71 | console.log('Get HighLights['+processInstanceId+'] failure: ', textStatus, jqXHR); 72 | }); 73 | } 74 | }; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/ActivityImpl.js: -------------------------------------------------------------------------------- 1 | /** * * @author Tom Baeyens * @author (Javascript) Dmitry Farafonov */ var ActivityImpl = function(activityJson){ this.outgoingTransitions = []; this.outgoingTransitions = []; this.incomingTransitions = []; this.activityBehavior = null; this.parent = null; this.isScope = false; this.isAsync = false; this.isExclusive = false; this.x = -1; this.y = -1; this.width = -1; this.height = -1; this.properties = {}; //console.log("activityJson: ", activityJson); if (activityJson != undefined) { this.setId(activityJson.activityId); for (var propertyName in activityJson.properties) { this.setProperty(propertyName, activityJson.properties[propertyName]); } //this.setProperty("name", activityJson.activityName); //this.setProperty("type", activityJson.activityType); this.setX(activityJson.x); this.setY(activityJson.y); this.setWidth(activityJson.width); this.setHeight(activityJson.height); if (activityJson.multiInstance) this.setProperty("multiInstance", activityJson.multiInstance); if (activityJson.collapsed) { this.setProperty("collapsed", activityJson.collapsed); } if (activityJson.isInterrupting != undefined) this.setProperty("isInterrupting", activityJson.isInterrupting); } }; ActivityImpl.prototype = { outgoingTransitions: [], outgoingTransitions: [], incomingTransitions: [], activityBehavior: null, parent: null, isScope: false, isAsync: false, isExclusive: false, id: null, properties: {}, // Graphical information x: -1, y: -1, width: -1, height: -1, setId: function(id){ this.id = id; }, getId: function(){ return this.id; }, setProperty: function(name, value){ this.properties[name] = value; }, getProperty: function(name){ return this.properties[name]; }, createOutgoingTransition: function(transitionId){ }, toString: function(id) { return "Activity("+id+")"; }, getParentActivity: function(){ /* if (parent instanceof ActivityImpl) { 79 return (ActivityImpl) parent; 80 } 81 return null; */ return this.parent; }, // restricted setters /////////////////////////////////////////////////////// setOutgoingTransitions: function(outgoingTransitions){ this.outgoingTransitions = outgoingTransitions; }, setParent: function(parent){ this.parent = parent; }, setIncomingTransitions: function(incomingTransitions){ this.incomingTransitions = incomingTransitions; }, // getters and setters ////////////////////////////////////////////////////// getOutgoingTransitions: function(){ return this.outgoingTransitions; }, getActivityBehavior: function(){ return this.activityBehavior; }, setActivityBehavior: function(activityBehavior){ this.activityBehavior = activityBehavior; }, getParent: function(){ return this.parent; }, getIncomingTransitions: function(){ return this.incomingTransitions; }, isScope: function(){ return this.isScope; }, setScope: function(isScope){ this.isScope = isScope; }, getX: function(){ return this.x; }, setX: function(x){ this.x = x; }, getY: function(){ return this.y; }, setY: function(y){ this.y = y; }, getWidth: function(){ return this.width; }, setWidth: function(width){ this.width = width; }, getHeight: function(){ return this.height; }, setHeight: function(height){ this.height = height; }, isAsync: function() { return this.isAsync; }, setAsync: function(isAsync) { this.isAsync = isAsync; }, isExclusive: function() { return this.isExclusive; }, setExclusive: function(isExclusive) { this.isExclusive = isExclusive; }, vvoid: function(){} }; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/Polyline.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/diagram-viewer/js/Polyline.js -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/jquery/jquery.asyncqueue.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the jquery plugin "asyncQueue". 3 | * 4 | * (c) Sebastien Roch 5 | * @author (parallel) Dmitry Farafonov 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | (function($){ 11 | $.AsyncQueue = function() { 12 | var that = this, 13 | queue = [], 14 | completeFunc, 15 | failureFunc, 16 | paused = false, 17 | lastCallbackData, 18 | _run, 19 | _complete, 20 | inQueue = 0, 21 | defaultTimeOut = 10; 22 | 23 | _run = function() { 24 | var f = queue.shift(); 25 | 26 | if (f) { 27 | inQueue++; 28 | setTimeout(function(){ 29 | f.fn.apply(that, [that]); 30 | 31 | if (!f.isParallel) 32 | if (paused === false) { 33 | _run(); 34 | } 35 | inQueue --; 36 | if (inQueue == 0 && queue.length == 0) 37 | _complete(); 38 | }, f.timeOut); 39 | 40 | if (f.isParallel) 41 | if (paused === false) { 42 | _run(); 43 | } 44 | } 45 | }; 46 | 47 | _complete = function(){ 48 | if (completeFunc) 49 | completeFunc.apply(that, [that]); 50 | }; 51 | 52 | this.onComplete = function(func) { 53 | completeFunc = func; 54 | }; 55 | 56 | this.onFailure = function(func) { 57 | failureFunc = func; 58 | }; 59 | 60 | this.add = function(func) { 61 | // TODO: add callback for queue[i] complete 62 | 63 | var obj = arguments[0]; 64 | if (obj && Object.prototype.toString.call(obj) === "[object Array]") { 65 | var fn = arguments[1]; 66 | var timeOut = (typeof(arguments[2]) != "undefined")? arguments[2] : defaultTimeOut; 67 | if (typeof(fn) == "function") { 68 | for(var i = 0; i < obj.length; i++) { 69 | var f = function(objx){ 70 | queue.push({isParallel: true, fn: function(){fn.apply(that, [that, objx]);}, timeOut: timeOut}); 71 | }(obj[i]) 72 | } 73 | } 74 | } else { 75 | var fn = arguments[0]; 76 | var timeOut = (typeof(arguments[1]) != "undefined")? arguments[2] : defaultTimeOut; 77 | queue.push({isParallel: false, fn: func, timeOut: timeOut}); 78 | } 79 | return this; 80 | }; 81 | 82 | this.addParallel = function(func, timeOut) { 83 | // TODO: add callback for queue[i] complete 84 | 85 | queue.push({isParallel: true, fn: func, timeOut: timeOut}); 86 | return this; 87 | }; 88 | 89 | this.storeData = function(dataObject) { 90 | lastCallbackData = dataObject; 91 | return this; 92 | }; 93 | 94 | this.lastCallbackData = function () { 95 | return lastCallbackData; 96 | }; 97 | 98 | this.run = function() { 99 | paused = false; 100 | _run(); 101 | }; 102 | 103 | this.pause = function () { 104 | paused = true; 105 | return this; 106 | }; 107 | 108 | this.failure = function() { 109 | paused = true; 110 | if (failureFunc) { 111 | var args = [that]; 112 | for(i = 0; i < arguments.length; i++) { 113 | args.push(arguments[i]); 114 | } 115 | failureFunc.apply(that, args); 116 | } 117 | }; 118 | 119 | this.size = function(){ 120 | return queue.length; 121 | }; 122 | 123 | return this; 124 | } 125 | })(jQuery); 126 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/jquery/jquery.progressbar.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @ Dmitry Farafonov 3 | */ 4 | 5 | (function($){ 6 | $.ProgressBar = function(options) { 7 | this.element = $(options.boundingBox); 8 | if (options.on && options.on.complete){ 9 | this.onComplete = options.on.complete; 10 | } 11 | if (options.on && options.on.valueChange){ 12 | this.onValueChange = options.on.valueChange; 13 | } 14 | 15 | this._create(); 16 | 17 | if (options.label) 18 | this.set("label", options.label); 19 | if (options.value) 20 | this.value(options.value); 21 | if (options.max) 22 | this.set("max", options.max); 23 | }; 24 | $.ProgressBar.prototype = { 25 | options: { 26 | value: 0, 27 | max: 100 28 | }, 29 | 30 | min: 0, 31 | 32 | _create: function() { 33 | this.element 34 | .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) 35 | .attr({ 36 | role: "progressbar", 37 | "aria-valuemin": this.min, 38 | "aria-valuemax": this.options.max, 39 | "aria-valuenow": this._value() 40 | }); 41 | 42 | this.valueDiv = $( "
" ) 43 | .appendTo( this.element ); 44 | 45 | this.valueDiv = $( "
" ) 46 | .appendTo( this.element ); 47 | 48 | this.oldValue = this._value(); 49 | this._refreshValue(); 50 | }, 51 | 52 | _destroy: function() { 53 | this.element 54 | .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) 55 | .removeAttr( "role" ) 56 | .removeAttr( "aria-valuemin" ) 57 | .removeAttr( "aria-valuemax" ) 58 | .removeAttr( "aria-valuenow" ); 59 | 60 | this.valueDiv.remove(); 61 | }, 62 | 63 | value: function( newValue ) { 64 | if ( newValue === undefined ) { 65 | return this._value(); 66 | } 67 | 68 | this._setOption( "value", newValue ); 69 | return this; 70 | }, 71 | 72 | _setOption: function( key, value ) { 73 | if ( key === "value" ) { 74 | //var oldVal = this.options.value; 75 | this.options.value = value; 76 | this._refreshValue(); 77 | 78 | if (this.onValueChange) 79 | this.onValueChange.apply(this, [{oldVal: this.oldValue, newVal: value}]); 80 | 81 | if ( this._value() === this.options.max ) { 82 | //this._trigger( "complete" ); 83 | if (this.onComplete) 84 | this.onComplete.apply(this); 85 | } 86 | } else if (key === "label") { 87 | $(this.element).find(".ui-progressbar-label").html(value); 88 | } else if (key === "max") { 89 | this.options.max = value; 90 | } 91 | 92 | //this._super( key, value ); 93 | }, 94 | 95 | _value: function() { 96 | var val = this.options.value; 97 | // normalize invalid value 98 | if ( typeof val !== "number" ) { 99 | val = 0; 100 | } 101 | return Math.min( this.options.max, Math.max( this.min, val ) ); 102 | }, 103 | 104 | _percentage: function() { 105 | return 100 * this._value() / this.options.max; 106 | }, 107 | 108 | _refreshValue: function() { 109 | var value = this.value(), 110 | percentage = this._percentage(); 111 | 112 | if ( this.oldValue !== value ) { 113 | this.oldValue = value; 114 | //this._trigger( "change" ); 115 | } 116 | 117 | this.valueDiv 118 | .toggle( value > this.min ) 119 | .toggleClass( "ui-corner-right", value === this.options.max ) 120 | .width( percentage.toFixed(0) + "%" ); 121 | this.element.attr( "aria-valuenow", value ); 122 | 123 | //$(this.element).find(".ui-progressbar-label").html(value + "%"); 124 | }, 125 | 126 | set: function(key, value){ 127 | this._setOption(key, value); 128 | } 129 | }; 130 | 131 | })( jQuery ); -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/js/jstools.js: -------------------------------------------------------------------------------- 1 | if (typeof(console) == "undefined") { 2 | var console = { 3 | info: function(){}, 4 | warn: function(){}, 5 | error: function(){}, 6 | log: function(){}, 7 | time: function(){}, 8 | timeEnd: function(){} 9 | }; 10 | } 11 | 12 | if(!Array.isArray) { 13 | Array.isArray = function (vArg) { 14 | return Object.prototype.toString.call(vArg) === "[object Array]"; 15 | }; 16 | } 17 | 18 | if (!Object.isSVGElement) { 19 | Object.isSVGElement = function(vArg) { 20 | var str = Object.prototype.toString.call(vArg); 21 | return (str.indexOf("[object SVG") == 0); 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/diagram-viewer/style.css: -------------------------------------------------------------------------------- 1 | body { background: #fafafa; color: #708090; /* font: 300 100.1% "Helvetica Neue", Helvetica, "Arial Unicode MS", Arial, sans-serif; */ font-family: Verdana, sans-serif, Arial; font-size: 10px; } .wrapper{ height: 100%; position: relative; width: 100%; } /* #holder { height: 480px; width: 640px; b_ackground: #F8F8FF; -moz-border-radius: 10px; -webkit-border-radius: 10px; -webkit-box-shadow: 0 1px 3px #666; background: #DDD url(./images/bg.png); /* background: #DDD url(./images/checker-bg.png); * / b_order:0px solid #dedede; } */ div.diagramHolder { float:left; } div.diagram{ border:1px solid #dedede; margin: 5px; padding: 5px; background: #FFF; } div.diagram.hidden{ display:none; } svg { background: #DDD url(./images/bg.png); } div.diagram-info { float:left; position: relative; padding: 5px; } /* Breadcrumbs */ #diagramBreadCrumbs { margin-left: 2px; margin-right: 2px; margin-top: 10px; } #diagramBreadCrumbs ul { list-style: none; background-color: white; border: 1px solid #DEDEDE; border-color: #C0C2C5; margin: 0; margin-bottom: 10px; margin-left: 0; -webkit-padding-start: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } #diagramBreadCrumbs li { /*text-decoration: underline;*/ display: inline-block; vertical-align: middle; padding-left: .75em; padding-right: 0; cursor: pointer; } #diagramBreadCrumbs li.selected { color: #9370DB; color: #4876FF; color: #4F94CD; font-weight: bold; } #diagramBreadCrumbs li span { background: url(images/breadcrumbs.png) no-repeat 100% 50%; display: block; padding: .5em 15px .5em 0; } /* Progress bar */ .ui-progressbar { height: 25px; /*height:2em; text-align: left; overflow: hidden; */ background: white; border: 1px solid #949DAD; margin: 2px; overflow: hidden; padding: 1px; position: relative; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .ui-progressbar .ui-progressbar-value { m_argin: -1px; height:100%; background: #D4E4FF; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .ui-widget-header a { color: #222222/*{fcHeader}*/; } .ui-progressbar .ui-progressbar-label{ position: absolute; margin-top: 7px; border:0px solid red; width: 100%; text-align: center; } -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/app-cfg.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 'use strict'; 20 | 21 | var ACTIVITI = ACTIVITI || {}; 22 | 23 | ACTIVITI.CONFIG = { 24 | 'contextRoot' : '/service', 25 | }; 26 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-assignment-controller.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* 21 | * Assignment 22 | */ 23 | var KisBpmAssignmentCtrl = [ '$scope', '$modal', function($scope, $modal) { 24 | 25 | // Config for the modal window 26 | var opts = { 27 | template: 'editor-app/configuration/properties/assignment-popup.html?version=' + Date.now(), 28 | scope: $scope 29 | }; 30 | 31 | // Open the dialog 32 | $modal(opts); 33 | }]; 34 | 35 | var KisBpmAssignmentPopupCtrl = [ '$scope', function($scope) { 36 | 37 | // Put json representing assignment on scope 38 | if ($scope.property.value !== undefined && $scope.property.value !== null 39 | && $scope.property.value.assignment !== undefined 40 | && $scope.property.value.assignment !== null) 41 | { 42 | $scope.assignment = $scope.property.value.assignment; 43 | } else { 44 | $scope.assignment = {}; 45 | } 46 | 47 | if ($scope.assignment.candidateUsers == undefined || $scope.assignment.candidateUsers.length == 0) 48 | { 49 | $scope.assignment.candidateUsers = [{value: ''}]; 50 | } 51 | 52 | // Click handler for + button after enum value 53 | var userValueIndex = 1; 54 | $scope.addCandidateUserValue = function(index) { 55 | $scope.assignment.candidateUsers.splice(index + 1, 0, {value: 'value ' + userValueIndex++}); 56 | }; 57 | 58 | // Click handler for - button after enum value 59 | $scope.removeCandidateUserValue = function(index) { 60 | $scope.assignment.candidateUsers.splice(index, 1); 61 | }; 62 | 63 | if ($scope.assignment.candidateGroups == undefined || $scope.assignment.candidateGroups.length == 0) 64 | { 65 | $scope.assignment.candidateGroups = [{value: ''}]; 66 | } 67 | 68 | var groupValueIndex = 1; 69 | $scope.addCandidateGroupValue = function(index) { 70 | $scope.assignment.candidateGroups.splice(index + 1, 0, {value: 'value ' + groupValueIndex++}); 71 | }; 72 | 73 | // Click handler for - button after enum value 74 | $scope.removeCandidateGroupValue = function(index) { 75 | $scope.assignment.candidateGroups.splice(index, 1); 76 | }; 77 | 78 | $scope.save = function() { 79 | 80 | $scope.property.value = {}; 81 | handleAssignmentInput($scope); 82 | $scope.property.value.assignment = $scope.assignment; 83 | 84 | $scope.updatePropertyInModel($scope.property); 85 | $scope.close(); 86 | }; 87 | 88 | // Close button handler 89 | $scope.close = function() { 90 | handleAssignmentInput($scope); 91 | $scope.property.mode = 'read'; 92 | $scope.$hide(); 93 | }; 94 | 95 | var handleAssignmentInput = function($scope) { 96 | if ($scope.assignment.candidateUsers) 97 | { 98 | var emptyUsers = true; 99 | var toRemoveIndexes = []; 100 | for (var i = 0; i < $scope.assignment.candidateUsers.length; i++) 101 | { 102 | if ($scope.assignment.candidateUsers[i].value != '') 103 | { 104 | emptyUsers = false; 105 | } 106 | else 107 | { 108 | toRemoveIndexes[toRemoveIndexes.length] = i; 109 | } 110 | } 111 | 112 | for (var i = 0; i < toRemoveIndexes.length; i++) 113 | { 114 | $scope.assignment.candidateUsers.splice(toRemoveIndexes[i], 1); 115 | } 116 | 117 | if (emptyUsers) 118 | { 119 | $scope.assignment.candidateUsers = undefined; 120 | } 121 | } 122 | 123 | if ($scope.assignment.candidateGroups) 124 | { 125 | var emptyGroups = true; 126 | var toRemoveIndexes = []; 127 | for (var i = 0; i < $scope.assignment.candidateGroups.length; i++) 128 | { 129 | if ($scope.assignment.candidateGroups[i].value != '') 130 | { 131 | emptyGroups = false; 132 | } 133 | else 134 | { 135 | toRemoveIndexes[toRemoveIndexes.length] = i; 136 | } 137 | } 138 | 139 | for (var i = 0; i < toRemoveIndexes.length; i++) 140 | { 141 | $scope.assignment.candidateGroups.splice(toRemoveIndexes[i], 1); 142 | } 143 | 144 | if (emptyGroups) 145 | { 146 | $scope.assignment.candidateGroups = undefined; 147 | } 148 | } 149 | }; 150 | }]; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-condition-expression-controller.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* 21 | * Condition expression 22 | */ 23 | 24 | var KisBpmConditionExpressionCtrl = [ '$scope', '$modal', function($scope, $modal) { 25 | 26 | // Config for the modal window 27 | var opts = { 28 | template: 'editor-app/configuration/properties/condition-expression-popup.html?version=' + Date.now(), 29 | scope: $scope 30 | }; 31 | 32 | // Open the dialog 33 | $modal(opts); 34 | }]; 35 | 36 | var KisBpmConditionExpressionPopupCtrl = [ '$scope', '$translate', '$http', function($scope, $translate, $http) { 37 | 38 | // Put json representing condition on scope 39 | if ($scope.property.value !== undefined && $scope.property.value !== null) { 40 | 41 | $scope.conditionExpression = {value: $scope.property.value}; 42 | 43 | } else { 44 | $scope.conditionExpression = {value: ''}; 45 | } 46 | 47 | $scope.save = function() { 48 | $scope.property.value = $scope.conditionExpression.value; 49 | $scope.updatePropertyInModel($scope.property); 50 | $scope.close(); 51 | }; 52 | 53 | // Close button handler 54 | $scope.close = function() { 55 | $scope.property.mode = 'read'; 56 | $scope.$hide(); 57 | }; 58 | }]; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-custom-controllers.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-default-controllers.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* 21 | * String controller 22 | */ 23 | 24 | var KisBpmStringPropertyCtrl = [ '$scope', function ($scope) { 25 | 26 | $scope.shapeId = $scope.selectedShape.id; 27 | $scope.valueFlushed = false; 28 | /** Handler called when input field is blurred */ 29 | $scope.inputBlurred = function() { 30 | $scope.valueFlushed = true; 31 | if ($scope.property.value) { 32 | $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,""); 33 | } 34 | $scope.updatePropertyInModel($scope.property); 35 | }; 36 | 37 | $scope.enterPressed = function(keyEvent) { 38 | if (keyEvent && keyEvent.which === 13) { 39 | keyEvent.preventDefault(); 40 | $scope.inputBlurred(); // we want to do the same as if the user would blur the input field 41 | } 42 | }; 43 | 44 | $scope.$on('$destroy', function controllerDestroyed() { 45 | if(!$scope.valueFlushed) { 46 | if ($scope.property.value) { 47 | $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,""); 48 | } 49 | $scope.updatePropertyInModel($scope.property, $scope.shapeId); 50 | } 51 | }); 52 | 53 | }]; 54 | 55 | /* 56 | * Boolean controller 57 | */ 58 | 59 | var KisBpmBooleanPropertyCtrl = ['$scope', function ($scope) { 60 | 61 | $scope.changeValue = function() { 62 | if ($scope.property.key === 'oryx-defaultflow' && $scope.property.value) { 63 | var selectedShape = $scope.selectedShape; 64 | if (selectedShape) { 65 | var incomingNodes = selectedShape.getIncomingShapes(); 66 | if (incomingNodes && incomingNodes.length > 0) { 67 | // get first node, since there can be only one for a sequence flow 68 | var rootNode = incomingNodes[0]; 69 | var flows = rootNode.getOutgoingShapes(); 70 | if (flows && flows.length > 1) { 71 | // in case there are more flows, check if another flow is already defined as default 72 | for (var i = 0; i < flows.length; i++) { 73 | if (flows[i].resourceId != selectedShape.resourceId) { 74 | var defaultFlowProp = flows[i].properties['oryx-defaultflow']; 75 | if (defaultFlowProp) { 76 | flows[i].setProperty('oryx-defaultflow', false, true); 77 | } 78 | } 79 | } 80 | } 81 | } 82 | } 83 | } 84 | $scope.updatePropertyInModel($scope.property); 85 | }; 86 | 87 | }]; 88 | 89 | /* 90 | * Text controller 91 | */ 92 | 93 | var KisBpmTextPropertyCtrl = [ '$scope', '$modal', function($scope, $modal) { 94 | 95 | var opts = { 96 | template: 'editor-app/configuration/properties/text-popup.html?version=' + Date.now(), 97 | scope: $scope 98 | }; 99 | 100 | // Open the dialog 101 | $modal(opts); 102 | }]; 103 | 104 | var KisBpmTextPropertyPopupCtrl = ['$scope', function($scope) { 105 | 106 | $scope.save = function() { 107 | $scope.updatePropertyInModel($scope.property); 108 | $scope.close(); 109 | }; 110 | 111 | $scope.close = function() { 112 | $scope.property.mode = 'read'; 113 | $scope.$hide(); 114 | }; 115 | }]; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-message-scope-controller.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | angular.module('activitiModeler').controller('ActivitiMessageRefCtrl', [ '$scope', function($scope) { 21 | 22 | // Find the parent shape on which the message definitions are defined 23 | var messageDefinitionsProperty = undefined; 24 | var parent = $scope.selectedShape; 25 | while (parent !== null && parent !== undefined && messageDefinitionsProperty === undefined) { 26 | if (parent.properties && parent.properties['oryx-messagedefinitions']) { 27 | messageDefinitionsProperty = parent.properties['oryx-messagedefinitions']; 28 | } else { 29 | parent = parent.parent; 30 | } 31 | } 32 | 33 | try { 34 | messageDefinitionsProperty = JSON.parse(messageDefinitionsProperty); 35 | if (typeof messageDefinitionsProperty == 'string') { 36 | messageDefinitionsProperty = JSON.parse(messageDefinitionsProperty); 37 | } 38 | } catch (err) { 39 | // Do nothing here, just to be sure we try-catch it 40 | } 41 | 42 | $scope.messageDefinitions = messageDefinitionsProperty; 43 | 44 | 45 | $scope.messageChanged = function() { 46 | $scope.updatePropertyInModel($scope.property); 47 | }; 48 | }]); -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-multiinstance-controller.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* 21 | * Execution listeners 22 | */ 23 | 24 | var KisBpmMultiInstanceCtrl = [ '$scope', function($scope) { 25 | 26 | if ($scope.property.value == undefined && $scope.property.value == null) 27 | { 28 | $scope.property.value = 'None'; 29 | } 30 | 31 | $scope.multiInstanceChanged = function() { 32 | $scope.updatePropertyInModel($scope.property); 33 | }; 34 | }]; -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties-signal-scope-controller.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Activiti Modeler component part of the Activiti project 3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Lesser General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2.1 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | 15 | * You should have received a copy of the GNU Lesser General Public 16 | * License along with this library; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | angular.module('activitiModeler').controller('ActivitiSignalRefCtrl', [ '$scope', function($scope) { 20 | 21 | // Find the parent shape on which the signal definitions are defined 22 | var signalDefinitionsProperty = undefined; 23 | var parent = $scope.selectedShape; 24 | while (parent !== null && parent !== undefined && signalDefinitionsProperty === undefined) { 25 | if (parent.properties && parent.properties['oryx-signaldefinitions']) { 26 | signalDefinitionsProperty = parent.properties['oryx-signaldefinitions']; 27 | } else { 28 | parent = parent.parent; 29 | } 30 | } 31 | 32 | try { 33 | signalDefinitionsProperty = JSON.parse(signalDefinitionsProperty); 34 | if (typeof signalDefinitionsProperty == 'string') { 35 | signalDefinitionsProperty = JSON.parse(signalDefinitionsProperty); 36 | } 37 | } catch (err) { 38 | // Do nothing here, just to be sure we try-catch it 39 | } 40 | 41 | $scope.signalDefinitions = signalDefinitionsProperty; 42 | 43 | 44 | $scope.signalChanged = function() { 45 | $scope.updatePropertyInModel($scope.property); 46 | }; 47 | }]); -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/assignment-display-template.html: -------------------------------------------------------------------------------- 1 | {{'PROPERTY.ASSIGNMENT.ASSIGNEE_DISPLAY' | translate:property.value.assignment }} 2 | {{'PROPERTY.ASSIGNMENT.CANDIDATE_USERS_DISPLAY' | translate:property.value.assignment.candidateUsers}} 3 | {{'PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS_DISPLAY' | translate:property.value.assignment.candidateGroups}} 4 | PROPERTY.ASSIGNMENT.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/assignment-popup.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/assignment-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/boolean-property-template.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
-------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/condition-expression-display-template.html: -------------------------------------------------------------------------------- 1 | {{property.value|limitTo:20}} 2 | {{'PROPERTY.SEQUENCEFLOW.CONDITION.NO-CONDITION-DISPLAY' | translate}} -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/condition-expression-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 62 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/fields-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/form-properties-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{'PROPERTY.FORMPROPERTIES.VALUE' | translate:property.value.formProperties}} 3 | PROPERTY.FORMPROPERTIES.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/form-properties-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/in-parameters-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{'PROPERTY.INPARAMETERS.VALUE' | translate:property.value.inParameters}} 3 | PROPERTY.INPARAMETERS.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/in-parameters-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 54 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/in-parameters-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/message-definitions-display-template.html: -------------------------------------------------------------------------------- 1 | {{'PROPERTY.MESSAGEDEFINITIONS.DISPLAY' | translate:property.value}} 2 | PROPERTY.MESSAGEDEFINITIONS.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/message-definitions-popup.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/message-definitions-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/message-property-write-template.html: -------------------------------------------------------------------------------- 1 |
2 | 4 |
-------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/multiinstance-property-write-template.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 8 |
-------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/out-parameters-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{'PROPERTY.OUTPARAMETERS.VALUE' | translate:property.value.outParameters}} 3 | PROPERTY.OUTPARAMETERS.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/out-parameters-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 54 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/out-parameters-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | PROPERTY.SEQUENCEFLOW.ORDER.NOT.EMPTY 3 | PROPERTY.SEQUENCEFLOW.ORDER.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 48 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/sequenceflow-order-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/signal-definitions-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{'PROPERTY.SIGNALDEFINITIONS.DISPLAY' | translate:property.value}} 3 | PROPERTY.SIGNALDEFINITIONS.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/signal-definitions-popup.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/signal-definitions-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/signal-property-write-template.html: -------------------------------------------------------------------------------- 1 |
2 | 4 |
-------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/string-property-write-mode-template.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 8 |
-------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{property.value.name}} 3 | PROPERTY.SUBPROCESSREFERENCE.EMPTY 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 44 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/subprocess-reference-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/task-listeners-display-template.html: -------------------------------------------------------------------------------- 1 | 2 | {{'PROPERTY.TASKLISTENERS.VALUE' | translate:property.value.taskListeners}} 3 | PROPERTY.TASKLISTENERS.EMPTY -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/task-listeners-write-template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/configuration/properties/text-popup.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/popups/select-shape.html: -------------------------------------------------------------------------------- 1 | 2 | 21 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/popups/unsaved-changes.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/activity/task.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/error.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/message.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/diagram.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png -------------------------------------------------------------------------------- /activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vandeter/springboot-Activiti-Modeler-/642514b5174bab8afe92bc4ae320fba838e01f15/activitiDemo/src/main/resources/static/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png -------------------------------------------------------------------------------- /activitiDemo/src/test/java/com/xhh/ActivitiDemoApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xhh; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | @RunWith(SpringRunner.class) 9 | @SpringBootTest 10 | public class ActivitiDemoApplicationTests { 11 | 12 | @Test 13 | public void contextLoads() { 14 | } 15 | 16 | } 17 | --------------------------------------------------------------------------------