JBPM显示流程图
来源:互联网 发布:如何在淘宝网上买课件 编辑:程序博客网 时间:2024/06/14 16:14
1.编辑流程定义文件,并将*.jpdl.xml及生成的png图片打成zip包,使用zip包发布流程。
2.获取流程图代码如下:
JbpmProcess.java
public BufferedImage getProcessStateImage(String processInstanceId) throws IOException{// 获取流程实例ProcessInstance processInstance = executionService.findProcessInstanceById(processInstanceId);// 获取流程定义 idString processDefinitionId = processInstance.getProcessDefinitionId();// 获取流程定义ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).uniqueResult();// 获取原始流程图片输入流InputStream in = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getName() + ".png");// 将原始图片载入BufferedImage中 以便处理Image i = ImageIO.read(in);BufferedImage img = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_RGB);Graphics2D g = img.createGraphics();g.drawImage(i, null, null);g.setColor(Color.RED);// 获取当前活动节点, 并在流程图上画红色的框Set<String> activityNames = processInstance.findActiveActivityNames();Iterator<String> iter = activityNames.iterator();while(iter.hasNext()){String name = iter.next();ActivityCoordinates ac = repositoryService.getActivityCoordinates(processDefinitionId, name);if(ac != null){g.drawRect(ac.getX(), ac.getY(), ac.getWidth(), ac.getHeight());}}return img;}
该方法返回标出活动节点之后的流程图图片。
3.调用方法
ProcessAction.java
public void getProcessPic() throws IOException{BufferedImage img = jbpmProcess.getProcessStateImage(processInstanceId);// 禁止图像缓存。response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);response.setContentType("image/png");ImageIO.write(img, "png", response.getOutputStream());}
test.html
<img src="process/process_getProcessPic.action?processInstanceId=xxxx"/>
4.效果如下
单活动节点
多活动节点
更多代码:https://github.com/pengkan90
0 0
- JBPM显示流程图
- 利用jbpm制作流程图
- JBPM流程图详解总结
- JBPM实践系列(二)jsp页面中流程图的显示
- 传智播客--JBPM流程图详解总结
- JBPM学习(六):详解流程图
- JBPM(七)详解流程图
- JBPM4-显示流程图
- activiti5显示流程图
- jbpm 当前流程实例图显示问题
- jbpm显示当前流程执行到那里
- 流程图:如何在连接线上方显示文字
- activiti学习资料(实例流程图的显示)
- latex绘制流程图及中文显示问题
- 关于JBPM4.4显示流程图详解
- activiti5.17.0流程图及节点显示
- Activiti 历史流程图高亮显示
- Activiti 历史流程图高亮显示
- Linux内核设计与实现 学习笔记(3)虚拟文件系统
- 程序员必修的中文MOOC汇总
- Netflix是怎么火起来的
- 4-2-1 循环控制-判断素数
- Linux内核设计与实现 学习笔记(4)块I/O层
- JBPM显示流程图
- C++类中使用表驱动
- 数据平台调度系统的设计
- hoj 1081 Scramble Sort
- dell md3200i 磁盘阵列
- 守护进程与僵尸进程
- VS之动态库实现和调用
- 基于Android的计步器(Pedometer)的讲解(一)——Fragment页面跳转
- Leetcode -- 3sum