Xcos: fix split-block from link creation 55/18255/1
Clément DAVID [Fri, 17 Jun 2016 09:42:42 +0000 (11:42 +0200)]
Change-Id: Ie84c1ca394f8186f1bd816ec6dc6bd40f5b326b7

scilab/modules/xcos/src/java/org/scilab/modules/xcos/graph/XcosDiagram.java

index 6c6120b..d1df4db 100644 (file)
@@ -112,6 +112,7 @@ import com.mxgraph.util.mxUndoableEdit.mxUndoableChange;
 import com.mxgraph.view.mxGraphSelectionModel;
 import com.mxgraph.view.mxMultiplicity;
 import java.lang.reflect.Constructor;
+import java.rmi.server.UID;
 import java.util.Hashtable;
 import org.scilab.modules.types.ScilabList;
 import org.scilab.modules.types.ScilabString;
@@ -669,11 +670,10 @@ public class XcosDiagram extends ScilabGraph {
 
             try {
                 Class<? extends BasicLink> klass = src.getClass();
-                Constructor<? extends BasicLink> cstr = klass.getConstructor(Long.TYPE);
-                link = cstr.newInstance(controller.createObject(Kind.LINK));
 
-                // allocate the associated geometry
-                link.setGeometry(new mxGeometry());
+                // call XXXXLink(JavaController controller, long uid, Kind kind, Object value, mxGeometry geometry, String style, String id)
+                Constructor<? extends BasicLink> cstr = klass.getConstructor(JavaController.class, Long.TYPE, Kind.class, Object.class, mxGeometry.class, String.class, String.class);
+                link = cstr.newInstance(controller, controller.createObject(Kind.LINK), src.getKind(), null, new mxGeometry(), src.getStyle(), new UID().toString());
             } catch (ReflectiveOperationException e) {
                 LOG.severe(e.toString());
             }
@@ -682,8 +682,7 @@ public class XcosDiagram extends ScilabGraph {
         }
 
         if (ret == null) {
-            ret = super.createEdge(parent, id, value, source, target, style);
-            LOG.warning("Creating a non typed edge");
+            LOG.warning("Unable to create an edge");
         }
 
         return ret;