JAL-2629 fix file loading issues on Mac
[jalview.git] / src / jalview / io / FileLoader.java
index f04b88d..088e384 100755 (executable)
@@ -29,6 +29,8 @@ import jalview.bin.Jalview;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.Profile;
+import jalview.datamodel.Profiles;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
@@ -200,6 +202,32 @@ public class FileLoader implements Runnable
     return alignFrame;
   }
 
+  public void LoadFileOntoAlignmentWaitTillLoaded(AlignViewport viewport,
+          String file, DataSourceType sourceType, FileFormatI format)
+  {
+    this.viewport = viewport;
+    this.file = file;
+    this.protocol = sourceType;
+    this.format = format;
+    _LoadAlignmentFileWaitTillLoaded();
+  }
+
+  protected void _LoadAlignmentFileWaitTillLoaded()
+  {
+    Thread loader = new Thread(this);
+    loader.start();
+
+    while (loader.isAlive())
+    {
+      try
+      {
+        Thread.sleep(500);
+      } catch (Exception ex)
+      {
+      }
+    }
+  }
+
   public void updateRecentlyOpened()
   {
     Vector recent = new Vector();
@@ -413,17 +441,11 @@ public class FileLoader implements Runnable
               }
               else
               {
-                  for (int i = 0; i < alignment.getAbsoluteHeight(); i++)
-                  {
-                    if (!alignment.getSequenceAt(i).isHMMConsensusSequence())
-                    {
-                      alignment.getSequences().add(i, seq);
-                      break;
-                    }
-                }
+                alignment.insertSequenceAt(0, seq);
               }
-              viewport.setAlignment(alignment);
               viewport.initInformation();
+              viewport.setSequenceInformationHash(
+                      new Profiles(new Profile[1]), 0);
               viewport.updateInformation(viewport.getAlignPanel());
               viewport.getAlignPanel().adjustAnnotationHeight();
               viewport.updateSequenceIdColours();
@@ -433,10 +455,8 @@ public class FileLoader implements Runnable
                 viewport.getAlignPanel().alignFrame
                         .setSelectedHMM(seq.getHMM());
               }
-              viewport.getAlignPanel().repaint();
               viewport.alignmentChanged(viewport.getAlignPanel());
 
-
             }
           }
           else