JAL-1988 Added a saves in progress check for quit
[jalview.git] / src / jalview / io / BackupFiles.java
index 05a1ac4..529e1b2 100644 (file)
@@ -29,6 +29,7 @@ import java.nio.file.StandardCopyOption;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
@@ -105,27 +106,27 @@ public class BackupFiles
 
   private static final String oldTempFileSuffix = "_oldfile_tobedeleted";
 
-  private static ArrayList<File> savesInProgress = new ArrayList<>();
+  private static List<BackupFiles> savesInProgress = new ArrayList<>();
 
   private boolean addSaveInProgress()
   {
-    if (savesInProgress.contains(file))
+    if (savesInProgress.contains(this))
     {
       return false;
     }
     else
     {
-      savesInProgress.add(file);
+      savesInProgress.add(this);
       return true;
     }
   }
 
   private boolean removeSaveInProgress()
   {
-    if (savesInProgress.contains(file))
+    if (savesInProgress.contains(this))
     {
       // remove all occurrences
-      while (savesInProgress.remove(file))
+      while (savesInProgress.remove(this))
       {
       }
       return true;
@@ -136,6 +137,21 @@ public class BackupFiles
     }
   }
 
+  public static boolean hasSavesInProgress()
+  {
+    return savesInProgress.size() > 0;
+  }
+
+  public static List<File> savesInProgressFiles()
+  {
+    List<File> files = new ArrayList<>();
+    for (BackupFiles bfile : savesInProgress)
+    {
+      files.add(bfile.getFile());
+    }
+    return files;
+  }
+
   public BackupFiles(String filename)
   {
     this(new File(filename));
@@ -928,6 +944,11 @@ public class BackupFiles
     return ret;
   }
 
+  public File getFile()
+  {
+    return file;
+  }
+
   public static boolean moveFileToFile(File oldFile, File newFile)
   {
     Console.initLogger();