never reset filename
authorKonstantin Bulenkov <kb@jetbrains.com>
Fri, 5 Mar 2010 14:20:23 +0000 (17:20 +0300)
committerKonstantin Bulenkov <kb@jetbrains.com>
Fri, 5 Mar 2010 14:20:23 +0000 (17:20 +0300)
platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileSaverDialogImpl.java

index 23ceff4d2f565a6115416ea932612f7fda4f7490..99d23d3e6aceaa3f5629b9bd1282c7bfbe241e2a 100644 (file)
@@ -36,12 +36,16 @@ import java.util.List;
  */
 public class FileSaverDialogImpl extends FileChooserDialogImpl implements FileSaverDialog {
   protected final JTextField myFileName = new JTextField(20);
+  protected final JComboBox myExtentions = new JComboBox();
   protected final FileSaverDescriptor myDescriptor;
 
   public FileSaverDialogImpl(FileSaverDescriptor chooserDescriptor, Project project) {
     super(chooserDescriptor, project);
     myDescriptor = chooserDescriptor;
     setTitle(UIBundle.message("file.chooser.save.dialog.default.title"));
+    for (String ext : chooserDescriptor.getFileExtentions()) {
+      myExtentions.addItem(ext);
+    }
   }
 
   @Nullable
@@ -92,7 +96,7 @@ public class FileSaverDialogImpl extends FileChooserDialogImpl implements FileSa
     }
 
     if (!correctExt) {
-      path += "." + myDescriptor.getFileExtentions()[0];
+      path += "." + myExtentions.getSelectedItem();
     }
 
     return new File(path);
@@ -110,9 +114,6 @@ public class FileSaverDialogImpl extends FileChooserDialogImpl implements FileSa
         }
       }
     }
-    if (selection.size() == 0) {
-      myFileName.setText("");
-    }
     updateOkButton();
   }
 
@@ -137,6 +138,10 @@ public class FileSaverDialogImpl extends FileChooserDialogImpl implements FileSa
     });
 
     panel.add(myFileName, BorderLayout.CENTER);
+    if (myExtentions.getModel().getSize() > 0) {
+      myExtentions.setSelectedIndex(0);
+      panel.add(myExtentions, BorderLayout.EAST);
+    }
     return panel;
   }