Xcos: clear warnings on start or compile 83/18983/2
Clément DAVID [Fri, 27 Jan 2017 08:54:29 +0000 (09:54 +0100)]
Change-Id: Ifc52a9a375fda3fb35a1110b71084b9881bd34e4

scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/CompileAction.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/StartAction.java

index e65d0de..f7ee4ba 100644 (file)
@@ -34,7 +34,9 @@ import org.scilab.modules.graph.actions.base.OneBlockDependantAction;
 import org.scilab.modules.gui.menuitem.MenuItem;
 import org.scilab.modules.xcos.JavaController;
 import org.scilab.modules.xcos.ObjectProperties;
+import org.scilab.modules.xcos.Xcos;
 import org.scilab.modules.xcos.graph.XcosDiagram;
+import org.scilab.modules.xcos.graph.model.ScicosObjectOwner;
 import org.scilab.modules.xcos.utils.XcosMessages;
 
 /**
@@ -98,10 +100,14 @@ public final class CompileAction extends OneBlockDependantAction {
             return;
         }
 
+        // clear warnings
+        ScicosObjectOwner root = Xcos.findRoot(graph);
+        Xcos.getInstance().openedDiagrams(root).stream().forEach( d ->  d.getAsComponent().clearCellOverlays());
+
         updateUI(true);
         displayTimer.start();
 
-        final String cmd = createCompilationCommand(graph);
+        final String cmd = createCompilationCommand(root);
         final ActionListener action = new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
@@ -121,11 +127,11 @@ public final class CompileAction extends OneBlockDependantAction {
     /**
      * Create the command String
      *
-     * @param diagram
-     *            the working diagram
+     * @param root
+     *            the root diagram
      * @return the command string
      */
-    private String createCompilationCommand(final XcosDiagram diagram) {
+    private String createCompilationCommand(final ScicosObjectOwner root) {
         String cmd;
         final StringBuilder command = new StringBuilder();
 
@@ -137,13 +143,13 @@ public final class CompileAction extends OneBlockDependantAction {
 
         JavaController controller = new JavaController();
         int[] debugLevel = new int[1];
-        controller.getObjectProperty(diagram.getUID(), diagram.getKind(), ObjectProperties.DEBUG_LEVEL, debugLevel);
+        controller.getObjectProperty(root.getUID(), root.getKind(), ObjectProperties.DEBUG_LEVEL, debugLevel);
         command.append(buildCall("scicos_debug", debugLevel[0])).append("; ");
 
         /*
          * Export the schema on `scs_m`
          */
-        command.append("scs_m = scicos_new(\"0x").append(Long.toHexString(diagram.getUID())).append("\"); ");
+        command.append("scs_m = scicos_new(\"0x").append(Long.toHexString(root.getUID())).append("\"); ");
         command.append("cpr = xcos_compile(scs_m); ");
 
         cmd = command.toString();
index 8f3ece8..16691b4 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright (C) 2009 - DIGITEO - Bruno JOFRET
  * Copyright (C) 2009 - DIGITEO - Vincent COUVERT
  * Copyright (C) 2010 - DIGITEO - Clement DAVID
- * Copyright (C) 2011-2015 - Scilab Enterprises - Clement DAVID
+ * Copyright (C) 2011-2017 - Scilab Enterprises - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
@@ -38,6 +38,8 @@ import org.scilab.modules.xcos.utils.XcosMessages;
 
 import static org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement.asynchronousScilabExec;
 import static org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement.buildCall;
+import org.scilab.modules.xcos.Xcos;
+import org.scilab.modules.xcos.graph.model.ScicosObjectOwner;
 
 /**
  * Start the simulation
@@ -109,10 +111,14 @@ public final class StartAction extends OneBlockDependantAction {
             return;
         }
 
+        // clear warnings
+        ScicosObjectOwner root = Xcos.findRoot(graph);
+        Xcos.getInstance().openedDiagrams(root).stream().forEach( d ->  d.getAsComponent().clearCellOverlays());
+
         updateUI(true);
         displayTimer.start();
 
-        final String cmd = createSimulationCommand(graph);
+        final String cmd = createSimulationCommand(root);
         final ActionListener action = new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
@@ -132,11 +138,11 @@ public final class StartAction extends OneBlockDependantAction {
     /**
      * Create the command String
      *
-     * @param diagram
-     *            the working diagram
+     * @param root
+     *            the root diagram
      * @return the command string
      */
-    private String createSimulationCommand(final XcosDiagram diagram) {
+    private String createSimulationCommand(final ScicosObjectOwner root) {
         String cmd;
         final StringBuilder command = new StringBuilder();
 
@@ -148,13 +154,13 @@ public final class StartAction extends OneBlockDependantAction {
 
         JavaController controller = new JavaController();
         int[] debugLevel = new int[1];
-        controller.getObjectProperty(diagram.getUID(), diagram.getKind(), ObjectProperties.DEBUG_LEVEL, debugLevel);
+        controller.getObjectProperty(root.getUID(), root.getKind(), ObjectProperties.DEBUG_LEVEL, debugLevel);
         command.append(buildCall("scicos_debug", debugLevel[0])).append("; ");
 
         /*
          * Export the schema on `scs_m` and simulate
          */
-        command.append("scs_m = scicos_new(\"0x").append(Long.toHexString(diagram.getUID())).append("\"); ");
+        command.append("scs_m = scicos_new(\"0x").append(Long.toHexString(root.getUID())).append("\"); ");
         command.append("xcos_simulate(scs_m, 4); ");
 
         cmd = command.toString();