盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

activiti流程图连线名称不显示bug修复

Activiti 分享牛 9163℃
使用activiti生成流程图的时候,如果使用modeler设计器,那么连线的名称不会绘制出来,究其原因是activiti框架中的一个bug。本文在上文的基础之上,修复该BUG。本文使用的activiti版本为5.22.0。
DefaultProcessDiagramGenerator类中的第132如下所示:
// Draw sequenceflow label
GraphicInfo labelGraphicInfo = bpmnModel.getLabelGraphicInfo(sequenceFlow.getId());
if (labelGraphicInfo != null) {
processDiagramCanvas.drawLabel(sequenceFlow.getName(), labelGraphicInfo, false);
}
判断非空情况下应该不需要去获取连线的中间点,直接使用设置的label坐标,所以这里做一个修改
。修改的代码如下:
// Draw sequenceflow label
GraphicInfo labelGraphicInfo = bpmnModel.getLabelGraphicInfo(sequenceFlow.getId());
if (labelGraphicInfo != null) {
processDiagramCanvas.drawLabel(sequenceFlow.getName(), labelGraphicInfo, false);
}else {
GraphicInfo lineCenter = getLineCenter(graphicInfoList);
processDiagramCanvas.drawLabel(sequenceFlow.getName(), lineCenter, false);
}
改成 没有设置label的时候用连线的中间点做坐标,有设置就直接用设置的,这样也可以防止modeler设计的没有label标签也能正常显示了
为了测试效果,需要修改连线的字体大小。默认是斜体和蓝色,我们直接将其修改为粗体黑色。
HMProcessDiagramCanvas类修改如下:
public void initialize(String imageType) {
LABEL_FONT = new Font(labelFontName, Font.BOLD, 14);
}
经过这2个类的修改,在进行查看流程图的时候就可以再直线上面显示了,效果如下:
 
demo下载可进qq群129123599
作者:分享牛
Activiti qq交流群:129123599
本文版权归作者和分享牛共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载请注明:分享牛 » activiti流程图连线名称不显示bug修复