Java源码示例:org.activiti.image.impl.DefaultProcessDiagramGenerator
示例1
/**
* Look up the process definition by key. For example,
* this is <A href="http://localhost:8080/activiti/processes/fulfillmentProcess">process-diagram for</A>
* a process definition named {@code fulfillmentProcess}.
*/
@RequestMapping(value = "/processes/{processDefinitionKey:.*}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public ResponseEntity processDefinitionDiagram(@PathVariable String processDefinitionKey) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(processDefinitionKey)
.latestVersion()
.singleResult();
if (processDefinition == null) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
if (bpmnModel.getLocationMap().size() == 0) {
BpmnAutoLayout autoLayout = new BpmnAutoLayout(bpmnModel);
autoLayout.execute();
}
InputStream is = processDiagramGenerator.generateJpgDiagram(bpmnModel);
return ResponseEntity.ok(new InputStreamResource(is));
}
示例2
/**
* {@inheritDoc}
*/
public InputStream getWorkflowImage(String workflowInstanceId)
{
String processInstanceId = createLocalId(workflowInstanceId);
ExecutionEntity pi = (ExecutionEntity) runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId).singleResult();
// If the process is finished, there is no diagram available
if (pi != null)
{
// Fetch the bpmn model
BpmnModel model = repoService.getBpmnModel(pi.getProcessDefinitionId());
if (model != null && model.getLocationMap().size() > 0)
{
ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
return generator.generateDiagram(model,
ActivitiConstants.PROCESS_INSTANCE_IMAGE_FORMAT,
runtimeService.getActiveActivityIds(processInstanceId));
}
}
return null;
}
示例3
protected void generateImage(BpmnModel bpmnModel, double scaleFactor) throws Exception {
ProcessDiagramGenerator diagramGenerator = new DefaultProcessDiagramGenerator(scaleFactor);
InputStream diagramStream = diagramGenerator.generatePngDiagram(bpmnModel, scaleFactor);
FileOutputStream fileStream = new FileOutputStream("test.png");
IOUtils.copy(diagramStream, fileStream);
fileStream.flush();
fileStream.close();
assertNotNull(ImageIO.read(new File("test.png")));
}
示例4
private static byte[] getDiagramByte(ProcessInstance pi) throws Exception {
byte[] data = null;
ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator();
BpmnModel model = repositoryService.getBpmnModel(pi.getProcessDefinitionId());
InputStream is = processDiagramGenerator.generateDiagram(
model,
"png",
runtimeService.getActiveActivityIds(pi.getId()));
data = IOUtils.toByteArray(is);
is.close();
is = null;
return data;
}
示例5
public InputStream execute(CommandContext commandContext) {
ProcessDefinitionEntity processDefinition = new GetDeploymentProcessDefinitionCmd(
processDefinitionId).execute(commandContext);
String diagramResourceName = processDefinition.getDiagramResourceName();
String deploymentId = processDefinition.getDeploymentId();
if (deploymentId != null) {
byte[] bytes = commandContext
.getResourceEntityManager()
.findResourceByDeploymentIdAndResourceName(deploymentId,
diagramResourceName).getBytes();
InputStream inputStream = new ByteArrayInputStream(bytes);
return inputStream;
}
GetBpmnModelCmd getBpmnModelCmd = new GetBpmnModelCmd(
processDefinitionId);
BpmnModel bpmnModel = getBpmnModelCmd.execute(commandContext);
ProcessEngineConfiguration processEngineConfiguration = Context
.getProcessEngineConfiguration();
InputStream is = new DefaultProcessDiagramGenerator().generateDiagram(
bpmnModel, "png",
processEngineConfiguration.getActivityFontName(),
processEngineConfiguration.getLabelFontName(), null);
return is;
}
示例6
public static BufferedImage createImage(BpmnModel bpmnModel) {
ProcessDiagramGenerator diagramGenerator = new DefaultProcessDiagramGenerator();
BufferedImage diagramImage = diagramGenerator.generatePngImage(bpmnModel, 1.0);
return diagramImage;
}
示例7
public static BufferedImage createImage(BpmnModel bpmnModel, double scaleFactor) {
ProcessDiagramGenerator diagramGenerator = new DefaultProcessDiagramGenerator(scaleFactor);
BufferedImage diagramImage = diagramGenerator.generatePngImage(bpmnModel, scaleFactor);
return diagramImage;
}
示例8
@Override
public BinaryResource getProcessImage(String processId)
{
validateIfUserAllowedToWorkWithProcess(processId);
ProcessInstance processInstance = activitiProcessEngine.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId(processId)
.singleResult();
if (processInstance == null)
{
throw new EntityNotFoundException(processId);
}
try
{
BpmnModel model = activitiProcessEngine.getRepositoryService().getBpmnModel(processInstance.getProcessDefinitionId());
if(model != null && model.getLocationMap().size() > 0)
{
List<String> activeActivities = activitiProcessEngine.getRuntimeService().getActiveActivityIds(processId);
ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();
InputStream generateDiagram = generator.generateDiagram(model, "png", activeActivities);
File file = TempFileProvider.createTempFile(processId + UUID.randomUUID(), ".png");
FileOutputStream fos = new FileOutputStream(file);
IOUtils.copy(generateDiagram, fos);
fos.close();
return new FileBinaryResource(file);
}
else
{
throw new EntityNotFoundException(processId + "/image");
}
}
catch (IOException error)
{
throw new ApiException("Error while getting process image.");
}
}