merge from 2_4_Release branch
[jalview.git] / src / jalview / io / FileLoader.java
index 584840e..6cb1212 100755 (executable)
@@ -1,22 +1,21 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
- *
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
+ * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * 
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+ * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+ * 
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  */
-
 package jalview.io;
 
 import java.util.*;
@@ -47,15 +46,20 @@ public class FileLoader implements Runnable
   long memused;
 
   boolean raiseGUI = true;
+
   /**
-   * default constructor always raised errors in GUI dialog boxes 
+   * default constructor always raised errors in GUI dialog boxes
    */
-  public FileLoader() {
+  public FileLoader()
+  {
     this(true);
   }
+
   /**
-   * construct a Fileloader that may raise errors non-interactively 
-   * @param raiseGUI true if errors are to be raised as GUI dialog boxes
+   * construct a Fileloader that may raise errors non-interactively
+   * 
+   * @param raiseGUI
+   *                true if errors are to be raised as GUI dialog boxes
    */
   public FileLoader(boolean raiseGUI)
   {
@@ -236,7 +240,10 @@ public class FileLoader implements Runnable
       if (Desktop.desktop != null && Desktop.desktop.isShowMemoryUsage())
       {
         System.gc();
-        memused = (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()); // free memory before load
+        memused = (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()); // free
+                                                                          // memory
+                                                                          // before
+                                                                          // load
       }
       loadtime = -System.currentTimeMillis();
       Alignment al = null;
@@ -351,10 +358,9 @@ public class FileLoader implements Runnable
 
       updateRecentlyOpened();
 
-    }
-    catch (Exception er)
+    } catch (Exception er)
     {
-      System.err.println("Exception whilst opening file '"+file);
+      System.err.println("Exception whilst opening file '" + file);
       er.printStackTrace();
       if (raiseGUI)
       {
@@ -362,20 +368,15 @@ public class FileLoader implements Runnable
         {
           public void run()
           {
-            javax.swing.JOptionPane
-                    .showInternalMessageDialog(
-                            Desktop.desktop,
-                            "Encountered problems opening "
-                                    + file
-                                    + "!!"
-                                    , "File open error",
-                            javax.swing.JOptionPane.WARNING_MESSAGE);
+            javax.swing.JOptionPane.showInternalMessageDialog(
+                    Desktop.desktop, "Encountered problems opening " + file
+                            + "!!", "File open error",
+                    javax.swing.JOptionPane.WARNING_MESSAGE);
           }
         });
       }
       alignFrame = null;
-    }
-    catch (OutOfMemoryError er)
+    } catch (OutOfMemoryError er)
     {
 
       er.printStackTrace();
@@ -398,15 +399,19 @@ public class FileLoader implements Runnable
           }
         });
       }
-      else
-      {
-        System.err.println("Out of memory loading file " + file + "!!");
-      }
+      System.err.println("Out of memory loading file " + file + "!!");
+
     }
     loadtime += System.currentTimeMillis();
-
+    // TODO: Estimate percentage of memory used by a newly loaded alignment -
+    // warn if more memory will be needed to work with it
     // System.gc();
-    memused = memused - (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()); // difference in free memory after load
+    memused = memused
+            - (rt.maxMemory() - rt.totalMemory() + rt.freeMemory()); // difference
+                                                                      // in free
+                                                                      // memory
+                                                                      // after
+                                                                      // load
     if (Desktop.desktop != null && Desktop.desktop.isShowMemoryUsage())
     {
       if (alignFrame != null)
@@ -417,11 +422,15 @@ public class FileLoader implements Runnable
                 + (loadtime / 1000.0) + "s, took an additional "
                 + (1.0 * memused / (1024.0 * 1024.0)) + " MB ("
                 + al.getHeight() + " seqs by " + al.getWidth() + " cols)");
-      } else {
-        // report that we didn't load anything probably due to an out of memory error
-        System.out.println("Failed to load '"+title+"' in "
+      }
+      else
+      {
+        // report that we didn't load anything probably due to an out of memory
+        // error
+        System.out.println("Failed to load '" + title + "' in "
                 + (loadtime / 1000.0) + "s, took an additional "
-                + (1.0 * memused / (1024.0 * 1024.0)) + " MB (alignment is null)");
+                + (1.0 * memused / (1024.0 * 1024.0))
+                + " MB (alignment is null)");
       }
     }
     // remove the visual delay indicator