Allow for -open arg
[jalview.git] / src / jalview / bin / Jalview.java
1 /********************\r
2  * 2004 Jalview Reengineered\r
3  * Barton Group\r
4  * Dundee University\r
5  *\r
6  * AM Waterhouse\r
7  *******************/\r
8 \r
9 \r
10 package jalview.bin;\r
11 \r
12 import jalview.gui.*;\r
13 import javax.swing.*;\r
14 import java.awt.event.*;\r
15 import jalview.io.*;\r
16 \r
17 import org.apache.log4j.*;\r
18 \r
19 public class Jalview extends JApplet\r
20 {\r
21   public static JApplet applet;\r
22   Desktop frame;\r
23   public void init()\r
24   {\r
25     applet = this;\r
26 \r
27     frame = new Desktop();\r
28     frame.setResizable(true);\r
29     frame.setVisible(true);\r
30     frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);\r
31     frame.addWindowListener(new WindowAdapter()\r
32     {\r
33       public void windowClosing(WindowEvent e)\r
34       {\r
35           applet.stop();\r
36           applet.destroy();\r
37       }\r
38     });\r
39 \r
40     String file = getParameter("alignment");\r
41 \r
42     if(file!=null)\r
43     {\r
44       jalview.bin.Cache.setProperty("LAST_DIRECTORY", file);\r
45       String protocol = "File";\r
46       if (file.indexOf("http:") > -1)\r
47         protocol = "URL";\r
48 \r
49       String format = jalview.io.IdentifyFile.Identify(file, protocol);\r
50 \r
51       frame.LoadFile(file, protocol, format);\r
52     }\r
53   }\r
54 \r
55   public void destroy()\r
56   {\r
57     if(applet!=null)\r
58       applet.stop();\r
59     else\r
60       System.exit(0);\r
61     frame.setVisible(false);\r
62   }\r
63 \r
64   private static void initLogger() {\r
65     Logger l = Logger.getLogger("org.apache.axis");\r
66     if (Cache.getProperty("logs.Axis.Level")==null) {\r
67       Cache.setProperty("logs.Axis.Level", Level.INFO.toString());\r
68     }\r
69 \r
70     l.setLevel(Level.toLevel(Cache.getProperty("logs.Axis.Level")));\r
71     ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(),"System.err");\r
72     ap.setName("Axis");\r
73     l.addAppender(ap);\r
74   }\r
75    public static void main(String[] args) {\r
76 \r
77     Cache.loadProperties();\r
78     try {\r
79       initLogger();\r
80     } catch (Exception e) {\r
81       System.out.println("Problems initializing the log4j system\n"+e);\r
82     }\r
83     try{\r
84        UIManager.setLookAndFeel(\r
85    //   "javax.swing.plaf.metal.MetalLookAndFeel"\r
86     //  "javax.swing.plaf.multi.MultiLookAndFeel"\r
87          UIManager.getSystemLookAndFeelClassName()\r
88      //    UIManager.getCrossPlatformLookAndFeelClassName()\r
89        // "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"\r
90        //   "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"\r
91        //  "com.sun.java.swing.plaf.motif.MotifLookAndFeel"\r
92      );\r
93      }\r
94      catch (Exception ex)\r
95      {}\r
96 \r
97      Desktop frame = new Desktop();\r
98      frame.setResizable(true);\r
99      frame.setVisible(true);\r
100 \r
101 \r
102 \r
103      if(args!=null && args.length>0)\r
104      {\r
105          String file=null;\r
106          if(args[0].equals("-open"))\r
107            file = args[1];\r
108          else\r
109            file = args[0];\r
110 \r
111          String protocol = "File";\r
112          if(file.indexOf("http:")>-1)\r
113            protocol = "URL";\r
114 \r
115          String format = jalview.io.IdentifyFile.Identify(file, protocol);\r
116 \r
117          frame.LoadFile(file, protocol, format);\r
118      }\r
119 \r
120    }\r
121 \r
122 }\r
123 \r