Merge branch 'Jalview-BH/JAL-3026' into
[jalview.git] / src / jalview / gui / Desktop.java
index 855ccbc..6c1ed3a 100644 (file)
@@ -1649,13 +1649,10 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     chooser.setFileView(new JalviewFileView());
     chooser.setDialogTitle(MessageManager.getString("label.save_state"));
-    // TODO: JAL-3048 Dialog runner refactoring here
-    int value = chooser.showSaveDialog(this);
-
-    if (value == JalviewFileChooser.APPROVE_OPTION)
+    int option = chooser.showSaveDialog(this);
+    if (option == JalviewFileChooser.APPROVE_OPTION)
     {
-      final Desktop me = this;
-      final java.io.File choice = chooser.getSelectedFile();
+      File choice = chooser.getSelectedFile();
       setProjectFile(choice);
 
       new Thread(new Runnable()
@@ -1691,7 +1688,7 @@ public class Desktop extends jalview.jbgui.GDesktop
             Cache.log.error(
                     "Problems whilst trying to save to " + choice.getName(),
                     ex);
-            JvOptionPane.showMessageDialog(me,
+            JvOptionPane.showMessageDialog(Desktop.this,
                     MessageManager.formatMessage(
                             "label.error_whilst_saving_current_state_to",
                             new Object[]
@@ -1702,10 +1699,10 @@ public class Desktop extends jalview.jbgui.GDesktop
           setProgressBar(null, choice.hashCode());
         }
       }).start();
-    }
+      }
   }
 
-  private void setProjectFile(File choice)
+  void setProjectFile(File choice)
   {
     this.projectFile = choice;
   }
@@ -1736,38 +1733,34 @@ public class Desktop extends jalview.jbgui.GDesktop
             "Jalview Project");
     chooser.setFileView(new JalviewFileView());
     chooser.setDialogTitle(MessageManager.getString("label.restore_state"));
-
-    int value = chooser.showOpenDialog(this);
-
-    if (value == JalviewFileChooser.APPROVE_OPTION)
+    chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
     {
-      final File selectedFile = chooser.getSelectedFile();
-      setProjectFile(selectedFile);
-      final String choice = selectedFile.getAbsolutePath();
-      Cache.setProperty("LAST_DIRECTORY", selectedFile.getParent());
-      new Thread(new Runnable()
+      @Override
+      public void run()
       {
-        @Override
-        public void run()
+        File selectedFile = chooser.getSelectedFile();
+        setProjectFile(selectedFile);
+        final String choice = selectedFile.getAbsolutePath();
+        Cache.setProperty("LAST_DIRECTORY", selectedFile.getParent());
+        new Thread(new Runnable()
         {
-          setProgressBar(MessageManager.formatMessage(
-                  "label.loading_jalview_project", new Object[]
-                  { choice }), choice.hashCode());
-          try
+          @Override
+          public void run()
           {
-            if (asCastor)
-            {
-              new Jalview2XML().loadJalviewAlign(choice);
-            }
-            else
+               try {
+              if (asCastor)
+              {
+                new Jalview2XML().loadJalviewAlign(choice);
+              }
+              else
+              {
+                new jalview.project.Jalview2XML().loadJalviewAlign(choice);
+              }
+            } catch (OutOfMemoryError oom)
             {
-              new jalview.project.Jalview2XML().loadJalviewAlign(choice);
-            }
-          } catch (OutOfMemoryError oom)
-          {
             new OOMWarning("Whilst loading project from " + choice, oom);
-          } catch (Exception ex)
-          {
+            } catch (Exception ex)
+            {
             Cache.log.error(
                     "Problems whilst loading project from " + choice, ex);
             JvOptionPane.showMessageDialog(Desktop.desktop,
@@ -1777,11 +1770,13 @@ public class Desktop extends jalview.jbgui.GDesktop
                             { choice }),
                     MessageManager.getString("label.couldnt_load_project"),
                     JvOptionPane.WARNING_MESSAGE);
+            }
           }
-          setProgressBar(null, choice.hashCode());
-        }
-      }).start();
-    }
+        }).start();
+      }
+    });
+    
+    chooser.showOpenDialog(this);
   }
 
   @Override