\r
import jalview.gui.*;\r
\r
-import org.apache.log4j.*;\r
-\r
import javax.swing.*;\r
\r
import java.util.Vector;\r
*/\r
public class Jalview\r
{\r
- /**\r
- * Initialises the Apache Axis logger\r
- */\r
- private static void initLogger()\r
- {\r
- Logger laxis = Logger.getLogger("org.apache.axis");\r
- Logger lcastor = Logger.getLogger("org.exolab.castor");\r
-\r
- if (Cache.getProperty("logs.Axis.Level") == null)\r
- {\r
- Cache.setProperty("logs.Axis.Level", Level.INFO.toString());\r
- }\r
-\r
- if (Cache.getProperty("logs.Castor.Level") == null)\r
- {\r
- Cache.setProperty("logs.Castor.Level", Level.INFO.toString());\r
- }\r
-\r
- laxis.setLevel(Level.toLevel(Cache.getProperty("logs.Axis.Level")));\r
- lcastor.setLevel(Level.toLevel(Cache.getProperty("logs.Castor.Level")));\r
-\r
- ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),\r
- "System.err");\r
- ap.setName("JalviewLogger");\r
- laxis.addAppender(ap);\r
- lcastor.addAppender(ap);\r
- }\r
\r
/**\r
* main class for Jalview application\r
System.out.println("Usage: jalview -open [FILE] [OUTPUT_FORMAT] [OUTPUT_FILE]\n\n"\r
+"-nodisplay\tRun Jalview without User Interface.\n"\r
+"-props FILE\tUse the given Jalview properties file instead of users default.\n"\r
- +"-groups FILE\tUse the given file to mark groups on the alignment. \nGroups file is in the following tab delimited format\n"\r
- +"TEXT<tab>SEQUENCE_ID<tab>SEQUENCE_INDEX<tab>START_RESIDUE<tab>END_RESIDUE<tab>COLOUR\n"\r
- +"SequenceID is used in preference to SequenceIndex if both are provided.\n"\r
- +"Enter ID_NOT_SPECIFIED for SEQUENCE_ID or -1 for SEQUENCE_INDEX if unknown.\n"\r
- +"COLOUR can be hexadecimal RGB or 'red', 'blue' etc.\n\n"\r
+ +"-annotations FILE\tAdd precalculated annotations to the alignment.\n"\r
+ +"-features FILE\tUse the given file to mark features on the alignment.\n"\r
+"-fasta FILE\tCreate alignment file FILE in Fasta format.\n"\r
+"-clustal FILE\tCreate alignment file FILE in Clustal format.\n"\r
+"-pfam FILE\tCreate alignment file FILE in PFAM format.\n"\r
+"-jalview FILE\tCreate alignment file FILE in Jalview format.\n"\r
+"-png FILE\tCreate PNG image FILE from alignment.\n"\r
+"-imgMap FILE\tCreate HTML file FILE with image map of PNG image.\n"\r
- +"-eps FILE\tCreate EPS file FILE from alignment.");\r
+ +"-eps FILE\tCreate EPS file FILE from alignment."\r
+ +"\n\n~Read documentation in Application or visit http://www.jalview.org for description of Features and Annotations file~\n\n");\r
System.exit(0);\r
}\r
\r
+ Cache.loadProperties(aparser.getValue("props")); // must do this before anything else!\r
\r
if (aparser.contains("nodisplay"))\r
+ {\r
System.setProperty("java.awt.headless", "true");\r
-\r
+ }\r
if (System.getProperty("java.awt.headless") != null\r
&& System.getProperty("java.awt.headless").equals("true"))\r
{\r
headless = true;\r
}\r
\r
- Cache.loadProperties(aparser.getValue("props"));\r
-\r
- try\r
- {\r
- initLogger();\r
- }\r
- catch (Exception e)\r
- {\r
- System.err.println("Problems initializing the log4j system\n");\r
- }\r
-\r
+ try\r
+ {\r
+ Cache.initLogger();\r
+ }\r
+ catch (java.lang.NoClassDefFoundError error)\r
+ {\r
+ error.printStackTrace();\r
+ System.out.println(\r
+ "\nEssential logging libraries not found."\r
+ +"\nUse: java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview");\r
+ System.exit(0);\r
+ }\r
\r
Desktop desktop = null;\r
if( !headless )\r
{\r
UIManager.setLookAndFeel(\r
UIManager.getSystemLookAndFeelClassName()\r
+ // UIManager.getCrossPlatformLookAndFeelClassName()\r
+//"com.sun.java.swing.plaf.gtk.GTKLookAndFeel"\r
+//"javax.swing.plaf.metal.MetalLookAndFeel"\r
+//"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"\r
+//"com.sun.java.swing.plaf.motif.MotifLookAndFeel"\r
+\r
);\r
}\r
catch (Exception ex)\r
\r
desktop = new Desktop();\r
desktop.setVisible(true);\r
+ desktop.discoverer.start();\r
}\r
\r
\r
- String file = null, protocol = null, format = null, groups=null;\r
+ String file = null, protocol = null, format = null, data=null;\r
jalview.io.FileLoader fileLoader = new jalview.io.FileLoader();\r
\r
file = aparser.getValue("open");\r
if (! (new java.io.File(file)).exists())\r
{\r
System.out.println("Can't find " + file);\r
- System.exit(1);\r
+ if(headless)\r
+ System.exit(1);\r
}\r
}\r
\r
protocol = "File";\r
\r
- if (file.indexOf("http:") > -1)\r
+ if (file.indexOf("http:") > -1 || file.indexOf("file:") >-1)\r
{\r
protocol = "URL";\r
}\r
if (file.endsWith(".jar"))\r
format = "Jalview";\r
else\r
- format = jalview.io.IdentifyFile.Identify(file, protocol);\r
+ format = new jalview.io.IdentifyFile().Identify(file, protocol);\r
\r
System.out.println("Opening: " + format + " file " + file);\r
\r
AlignFrame af = fileLoader.LoadFileWaitTillLoaded(file, protocol, format);\r
\r
- groups = aparser.getValue("groups");\r
- if (groups != null)\r
+ data = aparser.getValue("colour");\r
+ if(data!=null)\r
+ {\r
+ data.replaceAll("%20", " ");\r
+\r
+ jalview.schemes.ColourSchemeI cs =\r
+ jalview.schemes.ColourSchemeProperty.getColour(af.getViewport().\r
+ getAlignment(), data);\r
+\r
+ if(cs == null)\r
+ {\r
+ jalview.schemes.UserColourScheme ucs\r
+ = new jalview.schemes.UserColourScheme("white");\r
+ ucs.parseAppletParameter(data);\r
+ cs = ucs;\r
+ }\r
+\r
+ System.out.println("colour is " + data);\r
+ af.changeColour( cs );\r
+ }\r
+\r
+\r
+ // Must maintain ability to use the groups flag\r
+ data = aparser.getValue("groups");\r
+ if (data != null)\r
+ {\r
+ af.parseFeaturesFile(data, protocol);\r
+ System.out.println("Added "+data);\r
+ }\r
+ data = aparser.getValue("features");\r
+ if (data != null)\r
+ {\r
+ af.parseFeaturesFile(data, protocol);\r
+ System.out.println("Added "+data);\r
+ }\r
+\r
+ data = aparser.getValue("annotations");\r
+ if (data != null)\r
{\r
- af.parseGroupsFile(groups);\r
+ af.loadJalviewDataFile(data);\r
+ System.out.println("Added "+data);\r
}\r
\r
+\r
String imageName = "unnamed.png";\r
while (aparser.getSize() > 1)\r
{\r
}\r
\r
// We'll only open the default file if the desktop is visible.\r
+ // And the user\r
//////////////////////\r
if (\r
- !headless &&\r
- jalview.bin.Cache.getProperty("SHOW_STARTUP_FILE").equals("true") &&\r
- jalview.bin.Cache.getProperty("STARTUP_FILE") != null)\r
+ !headless\r
+ && file==null\r
+ && jalview.bin.Cache.getDefault("SHOW_STARTUP_FILE", true)\r
+ )\r
{\r
\r
- file = jalview.bin.Cache.getProperty("STARTUP_FILE");\r
+ file = jalview.bin.Cache.getDefault("STARTUP_FILE",\r
+ "http://www.jalview.org/examples/exampleFile.jar");\r
+\r
protocol = "File";\r
\r
if (file.indexOf("http:") > -1)\r
\r
if (file.endsWith(".jar"))\r
{\r
- Jalview2XML.LoadJalviewAlign(file);\r
+ new Jalview2XML().LoadJalviewAlign(file);\r
}\r
else\r
{\r
- format = jalview.io.IdentifyFile.Identify(file, protocol);\r
- desktop.LoadFile(file, protocol, format);\r
+ format = new jalview.io.IdentifyFile().Identify(file, protocol);\r
+ new jalview.io.FileLoader().LoadFile(file, protocol, format);\r
}\r
}\r
-\r
-\r
- if (desktop==null)\r
- System.exit(0);\r
}\r
}\r
\r