Put transparency back
[jalview.git] / src / jalview / io / FileLoader.java
index 1785e89..dc18cb7 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
 * Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
 *\r
 * This program is free software; you can redistribute it and/or\r
 * modify it under the terms of the GNU General Public License\r
@@ -22,9 +22,9 @@ package jalview.io;
 import jalview.gui.AlignFrame;\r
 import jalview.gui.Jalview2XML;\r
 import javax.swing.JOptionPane;\r
+\r
+import jalview.gui.*;\r
 import jalview.datamodel.*;\r
-import jalview.gui.Desktop;\r
-import jalview.datamodel.SequenceI;\r
 import java.util.Vector;\r
 import java.util.StringTokenizer;\r
 \r
@@ -33,11 +33,11 @@ public class FileLoader
   String file;\r
   String protocol;\r
   String format;\r
-  AlignmentI alignment;\r
+  AlignViewport viewport;\r
 \r
-  public void LoadFile(AlignmentI alignment, String file, String protocol, String format)\r
+  public void LoadFile(AlignViewport viewport, String file, String protocol, String format)\r
   {\r
-    this.alignment = alignment;\r
+    this.viewport = viewport;\r
     LoadFile(file, protocol, format);\r
   }\r
 \r
@@ -122,8 +122,12 @@ public class FileLoader
     AlignFrame af;\r
 \r
 \r
+\r
     public void run()\r
     {\r
+      if (Desktop.instance != null)\r
+        Desktop.instance.startLoading(file);\r
+\r
       SequenceI[] sequences = null;\r
 \r
       if (format.equalsIgnoreCase("Jalview"))\r
@@ -132,9 +136,9 @@ public class FileLoader
       }\r
       else\r
       {\r
-        String errorMessage = AppletFormatAdapter.SUPPORTED_FORMATS;\r
+        String error = AppletFormatAdapter.SUPPORTED_FORMATS;\r
 \r
-        if (FormatAdapter.formats.contains(format))\r
+        if (FormatAdapter.isValidFormat(format))\r
         {\r
           try\r
           {\r
@@ -142,16 +146,18 @@ public class FileLoader
           }\r
           catch (java.io.IOException ex)\r
           {\r
-            errorMessage = ex.getMessage();\r
+            error = ex.getMessage();\r
           }\r
         }\r
 \r
         if ( (sequences != null) && (sequences.length > 0))\r
         {\r
-          if(alignment!=null)\r
+          if(viewport!=null)\r
           {\r
             for(int i=0; i<sequences.length; i++)\r
-              alignment.addSequence(sequences[i]);\r
+              viewport.getAlignment().addSequence(sequences[i]);\r
+\r
+              viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());\r
           }\r
           else\r
           {\r
@@ -170,16 +176,24 @@ public class FileLoader
             {\r
             }\r
           }\r
-\r
         }\r
         else\r
         {\r
-          JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
-                                                "Couldn't load file " + file +\r
-                                                "\n"\r
-                                                + errorMessage,\r
-                                                "Error loading file",\r
-                                                JOptionPane.WARNING_MESSAGE);\r
+          if (Desktop.instance != null)\r
+            Desktop.instance.stopLoading();\r
+\r
+          final String errorMessage = "Couldn't load file "+file+"\n"+error;\r
+\r
+          javax.swing.SwingUtilities.invokeLater(new Runnable()\r
+          {\r
+            public void run()\r
+            {\r
+              JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+                                                    errorMessage,\r
+                                                    "Error loading file",\r
+                                                    JOptionPane.WARNING_MESSAGE);\r
+            }\r
+          });\r
         }\r
       }\r
 \r
@@ -187,6 +201,10 @@ public class FileLoader
       {\r
         updateRecentlyOpened();\r
       }\r
+\r
+      if (Desktop.instance != null)\r
+        Desktop.instance.stopLoading();\r
+\r
     }\r
   }\r
 \r