public void addOverlay(final GC imageGC, String modelFileName, BpmnMemoryModel model) { if (PreferencesUtil.getBooleanPreference( Preferences.SAVE_IMAGE_ADD_OVERLAY, ActivitiPlugin.getDefault())) { final ImageOverlayCreator creator = new ImageOverlayCreator(imageGC); creator.addOverlay(modelFileName, model); } }
private void doSaveImage(final String diagramFileString, BpmnMemoryModel model) { boolean saveImage = PreferencesUtil.getBooleanPreference(Preferences.SAVE_IMAGE, ActivitiPlugin.getDefault()); if (saveImage) { List<String> languages = PreferencesUtil.getStringArray( Preferences.ACTIVITI_LANGUAGES, ActivitiPlugin.getDefault()); if (languages != null && languages.size() > 0) { for (String language : languages) { for (Process process : model.getBpmnModel().getProcesses()) { fillContainerWithLanguage(process, language); } ProcessDiagramGenerator processDiagramGenerator = new DefaultProcessDiagramGenerator(); InputStream imageStream = processDiagramGenerator.generatePngDiagram(model.getBpmnModel()); if (imageStream != null) { String imageFileName = null; if (diagramFileString.endsWith(".bpmn20.xml")) { imageFileName = diagramFileString.substring(0, diagramFileString.length() - 11) + "_" + language + ".png"; } else { imageFileName = diagramFileString.substring(0, diagramFileString.lastIndexOf(".")) + "_" + language + ".png"; } File imageFile = new File(imageFileName); FileOutputStream outStream = null; ByteArrayOutputStream baos = null; try { outStream = new FileOutputStream(imageFile); baos = new ByteArrayOutputStream(); IOUtils.copy(imageStream, baos); baos.writeTo(outStream); } catch (Exception e) { e.printStackTrace(); } finally { if (outStream != null) { IOUtils.closeQuietly(outStream); } if (baos != null) { IOUtils.closeQuietly(baos); } } } } } else { marshallImage(model, diagramFileString); } } }