]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/element/ElementUtils.java
Don't assume that Element provides TerminalTopology
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / element / ElementUtils.java
index 74934321739daa9dc59e20ffa0f02a96ab25b65f..465db5e934d7efe01fe5e5bae3778c9187a8f7c3 100644 (file)
@@ -49,6 +49,7 @@ import org.simantics.g2d.element.handler.Hover;
 import org.simantics.g2d.element.handler.InternalSize;
 import org.simantics.g2d.element.handler.Move;
 import org.simantics.g2d.element.handler.Outline;
+import org.simantics.g2d.element.handler.Parameters;
 import org.simantics.g2d.element.handler.Parent;
 import org.simantics.g2d.element.handler.Pick;
 import org.simantics.g2d.element.handler.Resize;
@@ -257,8 +258,10 @@ public class ElementUtils {
     public static Collection<Terminal> getTerminals(IElement e, Collection<Terminal> result, boolean clearResult) {
         if (clearResult)
             result.clear();
-        TerminalTopology tt = e.getElementClass().getSingleItem(TerminalTopology.class);
-        tt.getTerminals(e, result);
+        TerminalTopology tt = e.getElementClass().getAtMostOneItemOfClass(TerminalTopology.class);
+        if (tt != null) {
+            tt.getTerminals(e, result);
+        }
         return result;
     }
 
@@ -350,6 +353,18 @@ public class ElementUtils {
         e.getElementClass().getSingleItem(Transform.class).setTransform(e, at);
     }
 
+    public static void setParameters(IElement e, Map<String,Object> parameters)
+    {
+        Parameters ps = e.getElementClass().getSingleItem(Parameters.class);
+        if(ps != null) ps.setParameters(e, parameters);
+    }
+
+    public static Map<String,Object> getParameters(IElement e)
+    {
+        Parameters ps = e.getElementClass().getAtMostOneItemOfClass(Parameters.class);
+        return ps != null ? ps.getParameters(e) : null;
+    }
+
     public static AffineTransform getInvTransform(IElement e)
     {
         try {