* Bug #12031 fixed - Changes in context of superblock did not always have effect 83/9983/7
Alexandre HERISSE [Mon, 10 Dec 2012 15:28:19 +0000 (16:28 +0100)]
Change-Id: I64c70c5a97ca8db0f1dc090d031a1c845cf3adc5

scilab/CHANGES_5.4.X
scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/SetContextAction.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/SetupAction.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/dialog/SetContextDialog.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/actions/dialog/SetupDialog.java

index cc875ff..a05a44b 100644 (file)
@@ -80,6 +80,9 @@ Xcos
 
 * Bug #12014 fixed - dep_ut help was wrongly detailed.
 
+* Bug #12031 fixed - Changes in context of superblock
+                     did not always have effect.
+
 
 Documentation
 ==============
index 0f5969b..71f6557 100644 (file)
@@ -75,7 +75,7 @@ public final class SetContextAction extends SimulationNotRunningAction {
         }
         
         final SetContextDialog dialog = new SetContextDialog(
-                comp, graph.getScicosParameters());
+                comp, graph, graph.getScicosParameters());
 
         dialog.pack();
         dialog.setVisible(true);
index 4e08d0d..32d4e94 100644 (file)
@@ -75,7 +75,7 @@ public final class SetupAction extends SimulationNotRunningAction {
         }
         
         final SetupDialog dialog = new SetupDialog(comp,
-                graph.getScicosParameters());
+                graph, graph.getScicosParameters());
 
         dialog.pack();
         dialog.setVisible(true);
index 16ba259..98302d4 100644 (file)
@@ -39,6 +39,8 @@ import org.scilab.modules.action_binding.highlevel.ScilabInterpreterManagement;
 import org.scilab.modules.gui.utils.ScilabSwingUtilities;
 import org.scilab.modules.xcos.actions.SetContextAction;
 import org.scilab.modules.xcos.graph.ScicosParameters;
+import org.scilab.modules.xcos.graph.XcosDiagram;
+import org.scilab.modules.xcos.graph.SuperBlockDiagram;
 import org.scilab.modules.xcos.io.scicos.ScilabDirectHandler;
 import org.scilab.modules.xcos.utils.XcosMessages;
 
@@ -58,6 +60,7 @@ public class SetContextDialog extends JDialog {
     private static final String SHARED_NEW_LINE = "\n";
 
     private final ScicosParameters parameters;
+    private final XcosDiagram rootGraph;
 
     private JTextArea contextArea;
 
@@ -69,7 +72,7 @@ public class SetContextDialog extends JDialog {
      * @param parameters
      *            the Scicos parameters
      */
-    public SetContextDialog(Component parent, ScicosParameters parameters) {
+    public SetContextDialog(Component parent, XcosDiagram graph, ScicosParameters parameters) {
         this.parameters = parameters;
 
         ImageIcon scilabIcon = new ImageIcon(ScilabSwingUtilities.findIcon("scilab"));
@@ -79,6 +82,7 @@ public class SetContextDialog extends JDialog {
         setTitle(XcosMessages.SET_CONTEXT);
         setModal(true);
         setLocationRelativeTo(parent);
+        rootGraph = graph;
         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
         ScilabSwingUtilities.closeOnEscape(this);
 
@@ -195,6 +199,14 @@ public class SetContextDialog extends JDialog {
                     } catch (PropertyVetoException e2) {
                         Logger.getLogger(SetContextAction.class.getName()).severe(e2.toString());
                     }
+
+                    /*
+                     * if superblock is concerned, then regenerate child diagram.
+                     */
+                    if (rootGraph instanceof SuperBlockDiagram) {
+                        SuperBlockDiagram superBlockDiagram = (SuperBlockDiagram) rootGraph;
+                        superBlockDiagram.getContainer().invalidateRpar();
+                    }
                 }
             });
     }
index 4a6cb9c..702d43b 100644 (file)
@@ -41,6 +41,7 @@ import javax.swing.SpinnerNumberModel;
 import org.scilab.modules.gui.utils.ScilabSwingUtilities;
 import org.scilab.modules.xcos.actions.SetupAction;
 import org.scilab.modules.xcos.graph.ScicosParameters;
+import org.scilab.modules.xcos.graph.XcosDiagram;
 import org.scilab.modules.xcos.utils.XcosMessages;
 
 /**
@@ -97,6 +98,7 @@ public class SetupDialog extends JDialog {
     }
 
     private final ScicosParameters parameters;
+    private final XcosDiagram rootGraph;
 
     private JFormattedTextField integration;
     private JFormattedTextField rts;
@@ -115,7 +117,7 @@ public class SetupDialog extends JDialog {
      * @param parameters
      *            the current parameters
      */
-    public SetupDialog(Component parent, ScicosParameters parameters) {
+    public SetupDialog(Component parent, XcosDiagram graph, ScicosParameters parameters) {
         super();
 
         this.parameters = parameters;
@@ -127,6 +129,7 @@ public class SetupDialog extends JDialog {
         setTitle(XcosMessages.SETUP_TITLE);
         setModal(false);
         setLocationRelativeTo(parent);
+        rootGraph = graph;
         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
         ScilabSwingUtilities.closeOnEscape(this);
 
@@ -374,7 +377,7 @@ public class SetupDialog extends JDialog {
         setContextButton.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
-                final SetContextDialog dialog = new SetContextDialog(SetupDialog.this, parameters);
+                final SetContextDialog dialog = new SetContextDialog(SetupDialog.this, rootGraph, parameters);
 
                 dialog.pack();
                 dialog.setVisible(true);