Bug 6615 fixed: ui(get|put)file did not center the file dialog on the last focused... 69/13169/2
Calixte DENIZET [Mon, 18 Nov 2013 11:33:16 +0000 (12:33 +0100)]
Change-Id: Ibb9c76f72a06486f1d2b7bede8fd5a784bc3498e

scilab/CHANGES_5.5.X
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/filechooser/SwingScilabExportFileChooser.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/filechooser/SwingScilabFileChooser.java

index 8208e43..2a4d3ea 100644 (file)
@@ -20,6 +20,8 @@ Scilab Bug Fixes
 
 * Bug #5016 fixed - condestsp could return different results when repeated calls were performed.
 
+* Bug #6615 fixed - ui(get|put)file did not center the file dialog on the last focused window.
+
 * Bug #6689 & #6690 fixed - grand now works with complexes, polynomials, booleans, integers, sparses and strings,
                             and can take row vectors, matrices and hypermatrices of thoses types.
 
index ab6858d..c62749e 100644 (file)
@@ -25,6 +25,8 @@ import javax.swing.SwingUtilities;
 import javax.swing.border.TitledBorder;
 
 import org.scilab.modules.graphic_export.FileExporter;
+import org.scilab.modules.gui.SwingView;
+import org.scilab.modules.gui.bridge.tab.SwingScilabTab;
 import org.scilab.modules.gui.tab.SimpleTab;
 import org.scilab.modules.gui.utils.ConfigManager;
 import org.scilab.modules.localization.Messages;
@@ -76,6 +78,8 @@ public class SwingScilabExportFileChooser extends SwingScilabFileChooser {
     public SwingScilabExportFileChooser(Integer figureUID) {
         super();
         this.figureUID = figureUID;
+        SwingScilabTab tab = (SwingScilabTab) SwingView.getFromId(figureUID);
+        setParentFrame(tab.getParentWindow());
         exportCustomFileChooser(figureUID);
     }
 
index 45fd940..405d13c 100644 (file)
@@ -13,6 +13,8 @@
 
 package org.scilab.modules.gui.bridge.filechooser;
 
+import java.awt.Component;
+import java.awt.KeyboardFocusManager;
 import java.io.File;
 import java.util.StringTokenizer;
 
@@ -20,6 +22,7 @@ import javax.swing.ImageIcon;
 import javax.swing.JFileChooser;
 import javax.swing.JFrame;
 import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
 
 import org.scilab.modules.gui.filechooser.FileChooserInfos;
 import org.scilab.modules.gui.filechooser.SimpleFileChooser;
@@ -137,10 +140,15 @@ public class SwingScilabFileChooser extends JFileChooser implements SimpleFileCh
      */
     @Override
     public void displayAndWait() {
-        JFrame parentFrame;
+        JFrame parentFrame = null;
         if (parent == null) {
-            parentFrame = new JFrame();
-            parentFrame.setIconImage(new ImageIcon(ScilabSwingUtilities.findIcon("scilab", "256x256")).getImage());
+            Component focused = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
+            if (focused != null) {
+                parentFrame = (JFrame) SwingUtilities.getAncestorOfClass(JFrame.class, focused);
+            }
+            if (parentFrame == null) {
+                parentFrame = new JFrame();
+            }
         } else {
             parentFrame = parent;
         }