JAL-3048 AlignFrame -> Save dialog refactored - patched ‘File exists - Overwrite...
[jalview.git] / src / jalview / gui / AlignFrame.java
index 2587866..e45dc5d 100644 (file)
@@ -88,6 +88,7 @@ import jalview.schemes.ColourSchemes;
 import jalview.schemes.ResidueColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
 import jalview.util.MessageManager;
+import jalview.util.dialogrunner.RunResponse;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.viewmodel.ViewportRanges;
 import jalview.ws.DBRefFetcher;
@@ -1118,44 +1119,45 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   public void saveAs_actionPerformed(ActionEvent e)
   {
+    // TODO: JAL-3048 JalviewFileChooser - Save option
+
     String format = currentFileFormat == null ? null
             : currentFileFormat.getName();
-    JalviewFileChooser chooser = JalviewFileChooser
+    final JalviewFileChooser chooser = JalviewFileChooser
             .forWrite(Cache.getProperty("LAST_DIRECTORY"), format);
-
+    final AlignFrame us = this;
     chooser.setFileView(new JalviewFileView());
     chooser.setDialogTitle(
             MessageManager.getString("label.save_alignment_to_file"));
     chooser.setToolTipText(MessageManager.getString("action.save"));
 
-    int value = chooser.showSaveDialog(this);
-
-
-    if (value == JalviewFileChooser.APPROVE_OPTION)
+    chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
     {
-      currentFileFormat = chooser.getSelectedFormat();
-      while (currentFileFormat == null)
-      {
-        JvOptionPane.showInternalMessageDialog(Desktop.desktop,
-                MessageManager.getString(
-                        "label.select_file_format_before_saving"),
-                MessageManager.getString("label.file_format_not_specified"),
-                JvOptionPane.WARNING_MESSAGE);
+      @Override
+      public void run()
+        {
         currentFileFormat = chooser.getSelectedFormat();
-        value = chooser.showSaveDialog(this);
-        if (value != JalviewFileChooser.APPROVE_OPTION)
+        while (currentFileFormat == null)
         {
-          return;
+          JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+                  MessageManager.getString(
+                          "label.select_file_format_before_saving"),
+                  MessageManager
+                          .getString("label.file_format_not_specified"),
+                  JvOptionPane.WARNING_MESSAGE);
+          currentFileFormat = chooser.getSelectedFormat();
+          chooser.showSaveDialog(us);
         }
-      }
 
-      fileName = chooser.getSelectedFile().getPath();
+        fileName = chooser.getSelectedFile().getPath();
 
-      Cache.setProperty("DEFAULT_FILE_FORMAT", currentFileFormat.getName());
+        Cache.setProperty("DEFAULT_FILE_FORMAT",
+                currentFileFormat.getName());
 
-      Cache.setProperty("LAST_DIRECTORY", fileName);
-      saveAlignment(fileName, currentFileFormat);
-    }
+        Cache.setProperty("LAST_DIRECTORY", fileName);
+        saveAlignment(fileName, currentFileFormat);
+      }
+    }).showSaveDialog(this);
   }
 
   public boolean saveAlignment(String file, FileFormatI format)
@@ -1422,7 +1424,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   public void associatedData_actionPerformed(ActionEvent e)
   {
-    // Pick the tree file
     JalviewFileChooser chooser = new JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
     chooser.setFileView(new JalviewFileView());
@@ -3904,6 +3905,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   protected void loadTreeMenuItem_actionPerformed(ActionEvent e)
   {
+    // TODO: JAL-3048 JalviewFileChooser
     // Pick the tree file
     JalviewFileChooser chooser = new JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
@@ -3913,33 +3915,40 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     chooser.setToolTipText(
             MessageManager.getString("label.load_tree_file"));
 
-    int value = chooser.showOpenDialog(null);
-
-    if (value == JalviewFileChooser.APPROVE_OPTION)
-    {
-      String filePath = chooser.getSelectedFile().getPath();
-      Cache.setProperty("LAST_DIRECTORY", filePath);
-      NewickFile fin = null;
-      try
-      {
-        fin = new NewickFile(filePath, DataSourceType.FILE);
-        viewport.setCurrentTree(showNewickTree(fin, filePath).getTree());
-      } catch (Exception ex)
-      {
-        JvOptionPane.showMessageDialog(Desktop.desktop, ex.getMessage(),
-                MessageManager.getString("label.problem_reading_tree_file"),
-                JvOptionPane.WARNING_MESSAGE);
-        ex.printStackTrace();
-      }
-      if (fin != null && fin.hasWarningMessage())
-      {
-        JvOptionPane.showMessageDialog(Desktop.desktop,
-                fin.getWarningMessage(),
-                MessageManager
-                        .getString("label.possible_problem_with_tree_file"),
-                JvOptionPane.WARNING_MESSAGE);
-      }
-    }
+    chooser.response(
+            new jalview.util.dialogrunner.RunResponse(JalviewFileChooser.APPROVE_OPTION)
+            {
+              @Override
+              public void run()
+              {
+                String filePath = chooser.getSelectedFile().getPath();
+                Cache.setProperty("LAST_DIRECTORY", filePath);
+                NewickFile fin = null;
+                try
+                {
+                  fin = new NewickFile(new FileParse(
+                          chooser.getSelectedFile(), DataSourceType.FILE));
+                  viewport.setCurrentTree(
+                          showNewickTree(fin, filePath).getTree());
+                } catch (Exception ex)
+                {
+                  JvOptionPane.showMessageDialog(Desktop.desktop,
+                          ex.getMessage(),
+                          MessageManager.getString(
+                                  "label.problem_reading_tree_file"),
+                          JvOptionPane.WARNING_MESSAGE);
+                  ex.printStackTrace();
+                }
+                if (fin != null && fin.hasWarningMessage())
+                {
+                  JvOptionPane.showMessageDialog(Desktop.desktop,
+                          fin.getWarningMessage(),
+                          MessageManager.getString(
+                                  "label.possible_problem_with_tree_file"),
+                          JvOptionPane.WARNING_MESSAGE);
+                }
+              }
+            }).openDialog(this);
   }
 
   public TreePanel showNewickTree(NewickFile nf, String treeTitle)
@@ -4550,7 +4559,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                  */
                 for (Object[] o : filesmatched)
                 {
-                  filesnotmatched.add((String) o[0]);
+                  filesnotmatched.add(o[0]);
                 }
               }
             }
@@ -5633,6 +5642,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   protected void loadVcf_actionPerformed()
   {
+    // TODO: JAL-3048 - No VCF support in JsJalview
     JalviewFileChooser chooser = new JalviewFileChooser(
             Cache.getProperty("LAST_DIRECTORY"));
     chooser.setFileView(new JalviewFileView());