jalview 2.5 release banner
[jalview.git] / src / jalview / bin / Jalview.java
index 624ac58..b36ac18 100755 (executable)
@@ -1,20 +1,19 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, 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 file is part of Jalview.
  * 
- * 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.
+ * Jalview 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 3 of the License, or (at your option) any later version.
  * 
- * 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
+ * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
  */
 package jalview.bin;
 
@@ -223,8 +222,8 @@ public class Jalview
     String groovyscript = null; // script to execute after all loading is
     // completed one way or another
     // extract groovy argument and execute if necessary
-    groovyscript = aparser.getValue("groovy",true);
-    file = aparser.getValue("open",true);
+    groovyscript = aparser.getValue("groovy", true);
+    file = aparser.getValue("open", true);
 
     if (file == null && desktop == null)
     {
@@ -307,10 +306,10 @@ public class Jalview
           // session at the user's leisure.
           Cache.log
                   .info("Skipping Push for import of data into existing vamsas session."); // TODO:
-                                                                                           // enable
-                                                                                           // this
-                                                                                           // when
-                                                                                           // debugged
+          // enable
+          // this
+          // when
+          // debugged
           // desktop.getVamsasApplication().push_update();
         }
       }
@@ -344,7 +343,7 @@ public class Jalview
         return;
       }
 
-      data = aparser.getValue("colour",true);
+      data = aparser.getValue("colour", true);
       if (data != null)
       {
         data.replaceAll("%20", " ");
@@ -365,20 +364,20 @@ public class Jalview
       }
 
       // Must maintain ability to use the groups flag
-      data = aparser.getValue("groups",true);
+      data = aparser.getValue("groups", true);
       if (data != null)
       {
         af.parseFeaturesFile(data, checkProtocol(data));
         System.out.println("Added " + data);
       }
-      data = aparser.getValue("features",true);
+      data = aparser.getValue("features", true);
       if (data != null)
       {
         af.parseFeaturesFile(data, checkProtocol(data));
         System.out.println("Added " + data);
       }
 
-      data = aparser.getValue("annotations",true);
+      data = aparser.getValue("annotations", true);
       if (data != null)
       {
         af.loadJalviewDataFile(data);
@@ -393,7 +392,7 @@ public class Jalview
       {
         af.getViewport().setSortByTree(false);
       }
-      data = aparser.getValue("tree",true);
+      data = aparser.getValue("tree", true);
       if (data != null)
       {
         jalview.io.NewickFile fin = null;
@@ -412,26 +411,26 @@ public class Jalview
           ex.printStackTrace(System.err);
         }
       }
-      // todo - load PDB structure to alignment 
-      // (associate with identical sequence in alignment, or a specified sequence)
-      
-      
+      // todo - load PDB structure to alignment
+      // (associate with identical sequence in alignment, or a specified
+      // sequence)
+
       getFeatures = checkDasArguments(aparser);
       if (af != null && getFeatures != null)
       {
         FeatureFetcher ff = startFeatureFetching(getFeatures);
-        if (ff!=null)
+        if (ff != null)
           while (!ff.allFinished() || af.operationInProgress())
           {
             // wait around until fetching is finished.
-          try
-          {
-            Thread.sleep(100);
-          } catch (Exception e)
-          {
+            try
+            {
+              Thread.sleep(100);
+            } catch (Exception e)
+            {
 
+            }
           }
-        }
         getFeatures = null; // have retrieved features - forget them now.
       }
       if (groovyscript != null)
@@ -526,9 +525,9 @@ public class Jalview
       getFeatures = checkDasArguments(aparser);
       // extract groovy arguments before anything else.
     }
-    // If the user has specified features to be retrieved, 
+    // If the user has specified features to be retrieved,
     // or a groovy script to be executed, do them if they
-    // haven't been done already 
+    // haven't been done already
     // fetch features for the default alignment
     if (getFeatures != null)
     {
@@ -537,7 +536,7 @@ public class Jalview
         startFeatureFetching(getFeatures);
       }
     }
-    // execute a groovy script.  
+    // execute a groovy script.
     if (groovyscript != null)
     {
       if (jalview.bin.Cache.groovyJarsPresent())
@@ -566,8 +565,8 @@ public class Jalview
             "USAGESTATS",
             "Jalview Usage Statistics",
             "Do you want to help make Jalview better by enabling "
-            +"the collection of usage statistics with Google Analytics ?"
-            +"\n\n(you can enable or disable usage tracking in the preferences)",
+                    + "the collection of usage statistics with Google Analytics ?"
+                    + "\n\n(you can enable or disable usage tracking in the preferences)",
             new Runnable()
             {
               public void run()
@@ -711,7 +710,7 @@ public class Jalview
     Vector source = null;
     String data;
     String locsources = Cache.getProperty(Cache.DAS_LOCAL_SOURCE);
-    while ((data = aparser.getValue("dasserver",true)) != null)
+    while ((data = aparser.getValue("dasserver", true)) != null)
     {
       String nickname = null;
       String url = null;
@@ -756,7 +755,7 @@ public class Jalview
               + locsources);
       Cache.setProperty(Cache.DAS_LOCAL_SOURCE, locsources);
     }
-    while ((data = aparser.getValue("fetchfrom",true)) != null)
+    while ((data = aparser.getValue("fetchfrom", true)) != null)
     {
       System.out.println("adding source '" + data + "'");
       if (source == null)
@@ -787,6 +786,7 @@ public class Jalview
     }
     return ff;
   }
+
   private static String checkProtocol(String file)
   {
     String protocol = jalview.io.FormatAdapter.FILE;
@@ -836,19 +836,21 @@ class ArgsParser
   {
     return getValue(arg, false);
   }
+
   public String getValue(String arg, boolean utf8decode)
   {
     int index = vargs.indexOf(arg);
-    String dc=null,ret = null;
+    String dc = null, ret = null;
     if (index != -1)
     {
       ret = vargs.elementAt(index + 1).toString();
       vargs.removeElementAt(index);
       vargs.removeElementAt(index);
-      if (utf8decode && ret!=null)
+      if (utf8decode && ret != null)
       {
-        try {
-          dc = URLDecoder.decode(ret,"UTF-8");
+        try
+        {
+          dc = URLDecoder.decode(ret, "UTF-8");
           ret = dc;
         } catch (Exception e)
         {
@@ -889,48 +891,59 @@ class ArgsParser
   }
 
 }
+
 /**
  * keep track of feature fetching tasks.
+ * 
  * @author JimP
- *
+ * 
  */
-class FeatureFetcher {
+class FeatureFetcher
+{
   /*
-   *  TODO: generalise to track all jalview events to orchestrate batch processing events.
+   * TODO: generalise to track all jalview events to orchestrate batch
+   * processing events.
    */
 
-  private int queued=0;
-  private int running=0;
+  private int queued = 0;
+
+  private int running = 0;
+
   public FeatureFetcher()
   {
-    
+
   }
+
   public void addFetcher(final AlignFrame af, final Vector dasSources)
   {
-    final long id = System.currentTimeMillis(); 
+    final long id = System.currentTimeMillis();
     queued++;
-    final FeatureFetcher us=this;
+    final FeatureFetcher us = this;
     new Thread(new Runnable()
     {
 
       public void run()
       {
-        synchronized (us) {
-        queued--;
-        running++;
+        synchronized (us)
+        {
+          queued--;
+          running++;
         }
-        
+
         af.setProgressBar("DAS features being retrieved...", id);
         af.featureSettings_actionPerformed(null);
         af.featureSettings.fetchDasFeatures(dasSources, true);
         af.setProgressBar(null, id);
-        synchronized (us) {
-          running --;
+        synchronized (us)
+        {
+          running--;
         }
       }
     }).start();
   }
-  public synchronized boolean allFinished() {
-    return queued==0 && running==0;
+
+  public synchronized boolean allFinished()
+  {
+    return queued == 0 && running == 0;
   }
 };