* Bug #6733 fixed - Each call to xcos created an empty diagram. 16/5816/3
Clément DAVID [Thu, 5 Jan 2012 08:21:36 +0000 (09:21 +0100)]
Change-Id: I11f83a9da0c2e7f746abdf394616ddbfe0ae6be8

scilab/CHANGES_5.4.X
scilab/modules/xcos/src/java/org/scilab/modules/xcos/Xcos.java

index c0353f4..2e373fb 100644 (file)
@@ -28,6 +28,8 @@ Xcos
   - SELECT_m - Selector block
   - NEGTOPOS_f - Threshold negative to positive
 
+* Bug #6733 fixed - Each call to xcos created an empty diagram.
+
 * Bug #8744 fixed - Solving the initialization problem more than once crash
                     Scilab.
 
index d8c5c73..03bef4e 100644 (file)
@@ -414,14 +414,19 @@ public final class Xcos {
 
         if (filename != null && filename.exists()) {
             configuration.addToRecentFiles(filename);
+        }
 
-            /*
-             * looking for an already opened diagram
-             */
-            final Collection<XcosDiagram> diags = diagrams.get(filename);
-            if (diags != null && !diags.isEmpty()) {
-                diag = diags.iterator().next();
-            }
+        /*
+         * looking for an already opened diagram
+         */
+        final Collection<XcosDiagram> diags = diagrams.get(filename);
+        if (diags != null && !diags.isEmpty()) {
+            diag = diags.iterator().next();
+        }
+        // if unsaved and empty, reuse it. Allocate otherwise.
+        if (filename == null && diag != null && 
+                       diag.getModel().getChildCount(diag.getDefaultParent()) > 0) {
+            diag = null;
         }
 
         if (diag == null) {