Browse Source

Fixed Exception when using Notes

Andreas Mülder 14 years ago
parent
commit
b7d1aaf7e7

+ 11 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/policies/RegionCompartmentCanonicalEditPolicy.java

@@ -16,8 +16,10 @@ import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewType;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalConnectionEditPolicy;
+import org.eclipse.gmf.runtime.notation.View;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
@@ -82,6 +84,15 @@ public class RegionCompartmentCanonicalEditPolicy extends
 		String factoryHint = SemanticHintUtil.getSemanticHint(modelElement);
 		return factoryHint;
 	}
+	
+	protected boolean shouldDeleteView(View view) {
+		  if (ViewType.NOTE.equals(view.getType())
+		      | ViewType.NOTEATTACHMENT.equals(view.getType())
+		       || ViewType.TEXT.equals(view.getType())) {
+		    return false;
+		   }
+		   return true;
+		}
 
 	@Override
 	protected String getDefaultFactoryHint() {

+ 11 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/policies/StateCompartmentCanonicalEditPolicy.java

@@ -14,8 +14,10 @@ import java.util.List;
 
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewType;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.notation.View;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.ui.editor.utils.SemanticHintUtil;
 
@@ -47,4 +49,13 @@ public class StateCompartmentCanonicalEditPolicy extends CanonicalEditPolicy {
 		String factoryHint = SemanticHintUtil.getSemanticHint(modelElement);
 		return factoryHint;
 	}
+
+	protected boolean shouldDeleteView(View view) {
+		if (ViewType.NOTE.equals(view.getType())
+				| ViewType.NOTEATTACHMENT.equals(view.getType())
+				|| ViewType.TEXT.equals(view.getType())) {
+			return false;
+		}
+		return true;
+	}
 }

+ 1 - 6
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/providers/StatechartDiagramViewProvider.java

@@ -75,12 +75,7 @@ public class StatechartDiagramViewProvider extends AbstractViewProvider
 	}
 
 	private Class<?> getClass(String semanticHint) {
-		Class<?> factory = factories.get(semanticHint);
-		if (factory == null) {
-			throw new IllegalStateException(
-					"No factory found for semantic hint " + semanticHint);
-		}
-		return factory;
+		return factories.get(semanticHint);
 	}
 
 	@Override