Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2015-05-26 15:07:41 +0000
committerChristian W. Damus2015-05-26 16:13:41 +0000
commit1ab54f51adad5d77caa331cb9f6a1ca1f7c9fe2b (patch)
treeae79bac3b9c4bc5b379eaacc400192257fb152f0 /plugins/developer
parent4e199a413f3091232f1786d1c93222450f7b32c2 (diff)
downloadorg.eclipse.papyrus-1ab54f51adad5d77caa331cb9f6a1ca1f7c9fe2b.tar.gz
org.eclipse.papyrus-1ab54f51adad5d77caa331cb9f6a1ca1f7c9fe2b.tar.xz
org.eclipse.papyrus-1ab54f51adad5d77caa331cb9f6a1ca1f7c9fe2b.zip
Bug 468079: [Developer] Design documentation generator limitations
https://bugs.eclipse.org/bugs/show_bug.cgi?id=468079 Ensure unique file names for images generated from diagrams that have the same name.
Diffstat (limited to 'plugins/developer')
-rw-r--r--plugins/developer/org.eclipse.papyrus.uml.developer.mde/src/org/eclipse/papyrus/uml/developper/mde/command/CreateDocumentModelCommand.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.uml.developer.mde/src/org/eclipse/papyrus/uml/developper/mde/command/CreateDocumentModelCommand.java b/plugins/developer/org.eclipse.papyrus.uml.developer.mde/src/org/eclipse/papyrus/uml/developper/mde/command/CreateDocumentModelCommand.java
index 7aa64ac7a22..f0151a6c91c 100644
--- a/plugins/developer/org.eclipse.papyrus.uml.developer.mde/src/org/eclipse/papyrus/uml/developper/mde/command/CreateDocumentModelCommand.java
+++ b/plugins/developer/org.eclipse.papyrus.uml.developer.mde/src/org/eclipse/papyrus/uml/developper/mde/command/CreateDocumentModelCommand.java
@@ -18,6 +18,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -74,8 +75,12 @@ import org.eclipse.uml2.uml.util.UMLUtil;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
+import com.google.common.base.Strings;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
/**
* this command transform a model to document model
@@ -101,6 +106,8 @@ public class CreateDocumentModelCommand extends RecordingCommand {
private LinkUtil linkUtil;
+ private BiMap<Diagram, String> diagramFileNames = HashBiMap.create();
+
/**
*
* Constructor to transform model into document model
@@ -189,6 +196,8 @@ public class CreateDocumentModelCommand extends RecordingCommand {
// Generate content of the Table of Contents package
generateTableOfContents(documentModel);
+
+ diagramFileNames.clear();
}
@@ -880,7 +889,7 @@ public class CreateDocumentModelCommand extends RecordingCommand {
* @param currentDiagram
*/
protected void generateImg(CopyToImageUtil copyImageUtil, Package currentModel, Diagram currentDiagram) {
- Path imagePath = new Path("" + directoryPath + File.separator + "imgDOC" + File.separator + currentDiagram.getName().replaceAll(" ", "_") + ".png"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ Path imagePath = new Path("" + directoryPath + File.separator + "imgDOC" + File.separator + getDiagramImageFileName(currentDiagram)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
try {
copyImageUtil.copyToImage(currentDiagram,
@@ -905,6 +914,21 @@ public class CreateDocumentModelCommand extends RecordingCommand {
commentImg.setBody(currentDiagram.getName());
}
+ protected String getDiagramImageFileName(Diagram diagram) {
+ String result = diagramFileNames.get(diagram);
+
+ if (result == null) {
+ String base = Strings.nullToEmpty(diagram.getName()).replaceAll(" ", "_");
+ result = base;
+ for (int i = 1; diagramFileNames.containsValue(result); i++) {
+ result = base + '_' + i;
+ }
+ diagramFileNames.put(diagram, result);
+ }
+
+ return result + ".png";
+ }
+
/**
*
* @param source

Back to the top