* Bug #14416 fixed - The file extension filter in Scinotes "Save as" window now match... 58/17858/2
Guilherme Gonçalves [Tue, 8 Mar 2016 08:26:10 +0000 (09:26 +0100)]
Change-Id: I999bf1df52df4e2f606256043c2b6d77c1ed9b91

scilab/CHANGES
scilab/modules/scinotes/src/java/org/scilab/modules/scinotes/SciNotes.java

index 176c052..1dd8156 100644 (file)
@@ -310,6 +310,8 @@ In 6.0.0:
 
 * Bug #14359 fixed - Black Hole demo updated. Stop and Clear buttons did not have priority tag set. Callback_type property has been added and set to 10.
 
+* Bug #14416 fixed - The file extension filter in Scinotes "Save as" window did not re-used the active file's extension when applicable.
+
 * Bug #14423 fixed - bench_run did not have a return value, export file was not configurable
 
 * Bug #14433 fixed - acoth (which call atanh) crash scilab
index f5a2fc7..ea1f906 100644 (file)
@@ -57,6 +57,7 @@ import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
+import javax.swing.filechooser.FileFilter;
 import javax.swing.text.BadLocationException;
 import javax.swing.text.EditorKit;
 import javax.swing.text.View;
@@ -1259,11 +1260,21 @@ public class SciNotes extends SwingScilabDockablePanel {
         fileChooser.addChoosableFileFilter(allFilter);
         fileChooser.addChoosableFileFilter(allScilabFilter);
 
-        // select default file type
-        fileChooser.setFileFilter(sceFilter);
+        String name = getTextPane().getName();
+        File tempFile = new File(name);
+
+        // Select default file type
+        SciFileFilter fileFilter = sceFilter;
+        // Look for a supported extension
+        for (FileFilter filter : fileChooser.getChoosableFileFilters()) {
+            if (((SciFileFilter) filter).accept(tempFile)) {
+                fileFilter = (SciFileFilter) filter;
+                break;
+            }
+        }
+        fileChooser.setFileFilter(fileFilter);
         fileChooser.setTitle(title);
 
-        String name = getTextPane().getName();
         if (name == null) {
             name = ((ScilabDocument) getTextPane().getDocument()).getFirstFunctionName();
             if (name != null) {