JAL-653 JAL-966 TODO and avoid NPE when desktop instance unavailable
[jalview.git] / src / jalview / io / FileLoader.java
index 38033ff..aa76da5 100755 (executable)
@@ -30,7 +30,6 @@ import jalview.gui.Jalview2XML;
 import jalview.structure.StructureSelectionManager;
 import jalview.util.MessageManager;
 
-import java.util.List;
 import java.util.StringTokenizer;
 import java.util.Vector;
 
@@ -297,7 +296,7 @@ public class FileLoader implements Runnable
               // open a new source and read from it
               FormatAdapter fa = new FormatAdapter();
               al = fa.readFile(file, protocol, format);
-              source = fa.afile; // keep reference for later if necessary.
+              source = fa.getAlignFile(); // keep reference for later if necessary.
             }
           } catch (java.io.IOException ex)
           {
@@ -323,7 +322,7 @@ public class FileLoader implements Runnable
             }
             if (sq.getPDBId() != null)
             {
-              for (PDBEntry pdbe : (List<PDBEntry>) sq.getPDBId())
+              for (PDBEntry pdbe : sq.getPDBId())
               {
                 StructureSelectionManager.getStructureSelectionManager(
                         Desktop.instance).registerPDBEntry(pdbe);
@@ -332,13 +331,7 @@ public class FileLoader implements Runnable
           }
           if (viewport != null)
           {
-            // TODO: create undo object for this JAL-1101
-            for (int i = 0; i < al.getHeight(); i++)
-            {
-              viewport.getAlignment().addSequence(al.getSequenceAt(i));
-            }
-            viewport.firePropertyChange("alignment", null, viewport
-                    .getAlignment().getSequences());
+            viewport.addAlignment(al, title);
           }
           else
           {
@@ -355,9 +348,13 @@ public class FileLoader implements Runnable
             }
             if (source instanceof HtmlFile)
             {
-              ((HtmlFile) source).LoadAlignmentFeatures(alignFrame);
-
+              ((HtmlFile) source).applySettingsToAlignFrame(alignFrame);
             }
+            else if (source instanceof JSONFile)
+            {
+              ((JSONFile) source).applySettingsToAlignFrame(alignFrame);
+            }
+
             if (raiseGUI)
             {
               // add the window to the GUI
@@ -387,7 +384,9 @@ public class FileLoader implements Runnable
 
           final String errorMessage = "Couldn't load file " + title + "\n"
                   + error;
-          if (raiseGUI)
+          // TODO: refactor FileLoader to be independent of Desktop / Applet GUI
+          // bits ?
+          if (raiseGUI && Desktop.desktop != null)
           {
             javax.swing.SwingUtilities.invokeLater(new Runnable()
             {