Class names of Figures generated as inner classes may clash with well-known classes, thus we have to make sure we avoid that
diff --git a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/LinkEditPartGenerator.java b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/LinkEditPartGenerator.java
index fcfc916..c61876c 100644
--- a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/LinkEditPartGenerator.java
+++ b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/LinkEditPartGenerator.java
@@ -66,7 +66,11 @@
stringBuffer.append(TEXT_5);
ImportUtil importManager = new ImportUtil(genDiagram.getEditPartsPackageName());
stringBuffer.append(TEXT_6);
- importManager.markImportLocation(stringBuffer);
+
+if (genLink.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genLink.getViewmap()).getClassName());
+}
+importManager.markImportLocation(stringBuffer);
stringBuffer.append(TEXT_7);
stringBuffer.append(genLink.getEditPartClassName());
stringBuffer.append(TEXT_8);
diff --git a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java
index 4a84309..59cea44 100644
--- a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java
+++ b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeEditPartGenerator.java
@@ -254,6 +254,9 @@
importManager.addImport("org.eclipse.gmf.runtime.notation.View");
importManager.addImport("org.eclipse.emf.ecore.EAnnotation");
importManager.addImport("org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ImageFigureEx");
+if (genNode.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genNode.getViewmap()).getClassName());
+}
importManager.markImportLocation(stringBuffer);
stringBuffer.append(TEXT_6);
diff --git a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeLabelEditPartGenerator.java b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeLabelEditPartGenerator.java
index 5023496..d9c6f8e 100644
--- a/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeLabelEditPartGenerator.java
+++ b/plugins/org.eclipse.gmf.codegen/src-templates/org/eclipse/gmf/codegen/templates/parts/NodeLabelEditPartGenerator.java
@@ -204,7 +204,11 @@
stringBuffer.append(TEXT_4);
stringBuffer.append(genDiagram.getEditPoliciesPackageName());
stringBuffer.append(TEXT_5);
- importManager.markImportLocation(stringBuffer);
+
+if (genLabel.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genLabel.getViewmap()).getClassName());
+}
+importManager.markImportLocation(stringBuffer);
stringBuffer.append(TEXT_6);
stringBuffer.append(genLabel.getEditPartClassName());
stringBuffer.append(TEXT_7);
diff --git a/plugins/org.eclipse.gmf.codegen/templates/parts/LinkEditPart.javajet b/plugins/org.eclipse.gmf.codegen/templates/parts/LinkEditPart.javajet
index a25fd60..e6d6e75 100644
--- a/plugins/org.eclipse.gmf.codegen/templates/parts/LinkEditPart.javajet
+++ b/plugins/org.eclipse.gmf.codegen/templates/parts/LinkEditPart.javajet
@@ -12,7 +12,11 @@
import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.notation.View;
-<%importManager.markImportLocation(stringBuffer);%>
+<%
+if (genLink.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genLink.getViewmap()).getClassName());
+}
+importManager.markImportLocation(stringBuffer);%>
/**
* @generated
diff --git a/plugins/org.eclipse.gmf.codegen/templates/parts/NodeEditPart.javajet b/plugins/org.eclipse.gmf.codegen/templates/parts/NodeEditPart.javajet
index e2018c9..f2b1bc2 100644
--- a/plugins/org.eclipse.gmf.codegen/templates/parts/NodeEditPart.javajet
+++ b/plugins/org.eclipse.gmf.codegen/templates/parts/NodeEditPart.javajet
@@ -24,6 +24,9 @@
importManager.addImport("org.eclipse.gmf.runtime.notation.View");
importManager.addImport("org.eclipse.emf.ecore.EAnnotation");
importManager.addImport("org.eclipse.gmf.runtime.draw2d.ui.internal.figures.ImageFigureEx");
+if (genNode.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genNode.getViewmap()).getClassName());
+}
importManager.markImportLocation(stringBuffer);
%>
diff --git a/plugins/org.eclipse.gmf.codegen/templates/parts/NodeLabelEditPart.javajet b/plugins/org.eclipse.gmf.codegen/templates/parts/NodeLabelEditPart.javajet
index 240401f..4e40e96 100644
--- a/plugins/org.eclipse.gmf.codegen/templates/parts/NodeLabelEditPart.javajet
+++ b/plugins/org.eclipse.gmf.codegen/templates/parts/NodeLabelEditPart.javajet
@@ -15,7 +15,11 @@
//import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
import <%=genDiagram.getEditPoliciesPackageName()%>.LabelDirectEditPolicy;
import org.eclipse.gmf.runtime.notation.View;
-<%importManager.markImportLocation(stringBuffer);%>
+<%
+if (genLabel.getViewmap() instanceof InnerClassViewmap) {
+importManager.registerInnerClass(((InnerClassViewmap) genLabel.getViewmap()).getClassName());
+}
+importManager.markImportLocation(stringBuffer);%>
/**
* @generated
diff --git a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportAssistant.java b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportAssistant.java
index 8005e54..be4d0b9 100644
--- a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportAssistant.java
+++ b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportAssistant.java
@@ -22,4 +22,5 @@
void emitSortedImports();
String getImportedName(String qualifiedName);
void addImport(String qualifiedName);
+ void registerInnerClass(String innerClassName);
}
diff --git a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportUtil.java b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportUtil.java
index b2e3e60..1461e82 100644
--- a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportUtil.java
+++ b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/ImportUtil.java
@@ -89,6 +89,10 @@
myImportManager.addImport(qualifiedName);
}
+ public void registerInnerClass(String innerClassName) {
+ myImportManager.addPseudoImport(innerClassName);
+ }
+
public void addImport(String packageName, String shortName) {
myImportManager.addImport(packageName, shortName);
}
diff --git a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/NullImportAssistant.java b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/NullImportAssistant.java
index 888a0c7..05e2ee8 100644
--- a/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/NullImportAssistant.java
+++ b/plugins/org.eclipse.gmf.common/src/org/eclipse/gmf/common/codegen/NullImportAssistant.java
@@ -68,4 +68,9 @@
public void addImport(String qualifiedName) {
}
+ /*
+ * NO-OP
+ */
+ public void registerInnerClass(String innerClassName) {
+ }
}