Merge branch 'develop' into features/r2_11_2_alphafold/JAL-629
[jalview.git] / src / jalview / io / FileLoader.java
index c7ade20..449c685 100755 (executable)
@@ -33,8 +33,6 @@ import jalview.api.FeaturesDisplayedI;
 import jalview.api.FeaturesSourceI;
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentAnnotation.TFType;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.PDBEntry;
@@ -43,6 +41,7 @@ import jalview.gui.AlignFrame;
 import jalview.gui.AlignViewport;
 import jalview.gui.Desktop;
 import jalview.gui.JvOptionPane;
+import jalview.gui.QuitHandler;
 import jalview.json.binding.biojson.v1.ColourSchemeMapper;
 import jalview.project.Jalview2XML;
 import jalview.schemes.ColourSchemeI;
@@ -75,8 +74,6 @@ public class FileLoader implements Runnable
 
   private File selectedFile;
 
-  private AlignmentAnnotation.TFType temperatureFactorType = null;
-
   /**
    * default constructor always raised errors in GUI dialog boxes
    */
@@ -162,26 +159,9 @@ public class FileLoader implements Runnable
   public AlignFrame LoadFileWaitTillLoaded(String file,
           DataSourceType sourceType, FileFormatI format)
   {
-    return LoadFileWaitTillLoaded(file, sourceType, format, null);
-  }
-
-  /**
-   * Load alignment from (file, protocol) of type format with specified
-   * temperature factor type and wait till loaded
-   * 
-   * @param file
-   * @param sourceType
-   * @param format
-   * @param tempfacType
-   * @return alignFrame constructed from file contents
-   */
-  public AlignFrame LoadFileWaitTillLoaded(String file,
-          DataSourceType sourceType, FileFormatI format, AlignmentAnnotation.TFType tempfacType)
-  {
     this.file = file;
     this.protocol = sourceType;
     this.format = format;
-    this.temperatureFactorType = tempfacType;
     return _LoadFileWaitTillLoaded();
   }
 
@@ -333,6 +313,7 @@ public class FileLoader implements Runnable
                   MessageManager.getString("label.couldnt_read_data"),
                   JvOptionPane.WARNING_MESSAGE);
         }
+        this.setShouldBeSaved();
         return;
       }
       // TODO: cache any stream datasources as a temporary file (eg. PDBs
@@ -400,14 +381,12 @@ public class FileLoader implements Runnable
             {
               if (selectedFile == null)
               {
-                al = fa.readFile(null, file, protocol, format,
-                        temperatureFactorType);
+                al = fa.readFile(null, file, protocol, format);
 
               }
               else
               {
-                al = fa.readFile(selectedFile, null, protocol, format,
-                        temperatureFactorType);
+                al = fa.readFile(selectedFile, null, protocol, format);
               }
               source = fa.getAlignFile(); // keep reference for later if
 
@@ -508,6 +487,12 @@ public class FileLoader implements Runnable
               // that perform queries to find the 'current working alignment'
               Desktop.addInternalFrame(alignFrame, title,
                       AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+
+              /*
+               * for an Overview automatically opened with alignment,
+               * set its title now alignFrame title has been set
+               */
+              alignFrame.alignPanel.setOverviewTitle(alignFrame);
             }
 
             try
@@ -636,6 +621,7 @@ public class FileLoader implements Runnable
       Desktop.instance.stopLoading();
     }
 
+    this.setShouldBeSaved();
   }
 
   /**
@@ -661,4 +647,21 @@ public class FileLoader implements Runnable
     return tempStructFile.toString();
   }
 
+  /*
+   * set whether quit should ask to save when just loaded this source
+   */
+  private void setShouldBeSaved()
+  {
+    if (protocol == null)
+      return;
+    AlignFrame af = this.alignFrame;
+    if (af == null)
+      return;
+    AlignViewport avp = af.getViewport();
+    if (avp == null)
+      return;
+    avp.setSavedUpToDate(!protocol.isDynamic(),
+            QuitHandler.Message.UNSAVED_ALIGNMENTS);
+  }
+
 }