comand line support for svg generation
[jalview.git] / src / jalview / bin / Jalview.java
index bfa7b11..184c267 100755 (executable)
@@ -1,22 +1,32 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * 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.
- * 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
  * 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/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.bin;
 
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -24,7 +34,6 @@ import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
-import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.net.URLDecoder;
@@ -33,12 +42,11 @@ import java.security.CodeSource;
 import java.security.PermissionCollection;
 import java.security.Permissions;
 import java.security.Policy;
-import java.util.*;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Vector;
 
-import javax.swing.*;
-
-import jalview.gui.*;
-import jalview.util.Platform;
+import javax.swing.UIManager;
 
 /**
  * Main class for Jalview Application <br>
@@ -69,6 +77,11 @@ public class Jalview
   }
 
   /**
+   * Put protein=true for get a protein example
+   */
+  private static boolean protein = false;
+
+  /**
    * main class for Jalview application
    * 
    * @param args
@@ -129,6 +142,12 @@ public class Jalview
                       + "\n~Read documentation in Application or visit http://www.jalview.org for description of Features and Annotations file~\n\n");
       System.exit(0);
     }
+    if (aparser.contains("nodisplay") || aparser.contains("nogui")
+            || aparser.contains("headless"))
+    {
+      System.setProperty("java.awt.headless", "true");
+      headless = true;
+    }
     Cache.loadProperties(aparser.getValue("props")); // must do this before
     // anything else!
     String defs = aparser.getValue("setprop");
@@ -148,16 +167,13 @@ public class Jalview
       }
       defs = aparser.getValue("setprop");
     }
-    if (aparser.contains("nodisplay"))
-    {
-      System.setProperty("java.awt.headless", "true");
-    }
     if (System.getProperty("java.awt.headless") != null
             && System.getProperty("java.awt.headless").equals("true"))
     {
       headless = true;
     }
-
+    System.setProperty("http.agent",
+            "Jalview Desktop/" + Cache.getDefault("VERSION", "Unknown"));
     try
     {
       Cache.initLogger();
@@ -326,7 +342,7 @@ public class Jalview
     {
       if (!headless)
       {
-        desktop.setProgressBar("Processing commandline arguments...",
+        desktop.setProgressBar(MessageManager.getString("status.processing_commandline_args"),
                 progress = System.currentTimeMillis());
       }
       System.out.println("Opening file: " + file);
@@ -436,6 +452,7 @@ public class Jalview
         {
           FeatureFetcher ff = startFeatureFetching(getFeatures);
           if (ff != null)
+          {
             while (!ff.allFinished() || af.operationInProgress())
             {
               // wait around until fetching is finished.
@@ -447,6 +464,7 @@ public class Jalview
 
               }
             }
+          }
           getFeatures = null; // have retrieved features - forget them now.
         }
         if (groovyscript != null)
@@ -480,6 +498,14 @@ public class Jalview
             System.out.println("Creating PNG image: " + file);
             continue;
           }
+          else if (format.equalsIgnoreCase("svg"))
+          {
+            File imageFile = new java.io.File(file);
+            imageName = imageFile.getName();
+            af.createSVG(imageFile);
+            System.out.println("Creating SVG image: " + file);
+            continue;
+          }
           else if (format.equalsIgnoreCase("imgMap"))
           {
             af.createImageMap(new java.io.File(file), imageName);
@@ -516,8 +542,10 @@ public class Jalview
     // We'll only open the default file if the desktop is visible.
     // And the user
     // ////////////////////
+
     if (!headless && file == null && vamsasImport == null
-            && jalview.bin.Cache.getDefault("SHOW_STARTUP_FILE", true))
+            && jalview.bin.Cache.getDefault("SHOW_STARTUP_FILE", true)
+            && protein == true)
     {
       file = jalview.bin.Cache.getDefault(
               "STARTUP_FILE",
@@ -902,6 +930,24 @@ public class Jalview
  * @author Andrew Waterhouse and JBP documented.
  * 
  */
+
+class rnabuttonlistener implements ActionListener
+{
+  public void actionPerformed(ActionEvent arg0)
+  {
+    System.out.println("Good idea ! ");
+
+  }
+}
+
+class pbuttonlistener implements ActionListener
+{
+  public void actionPerformed(ActionEvent arg0)
+  {
+
+  }
+}
+
 class ArgsParser
 {
   Vector vargs = null;
@@ -1024,7 +1070,7 @@ class FeatureFetcher
           running++;
         }
 
-        af.setProgressBar("DAS features being retrieved...", id);
+        af.setProgressBar(MessageManager.getString("status.das_features_being_retrived"), id);
         af.featureSettings_actionPerformed(null);
         af.featureSettings.fetchDasFeatures(dasSources, true);
         af.setProgressBar(null, id);
@@ -1040,4 +1086,5 @@ class FeatureFetcher
   {
     return queued == 0 && running == 0;
   }
+
 };