X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=c11d051a49d4daef9f8343b0246e4fb98221ff70;hb=29779ec313172ec2f5b4594f33ebee8fff264915;hp=be0440a8ba6ab9d613a059613f059320f30aefcd;hpb=740623d8f15a4edaa7c1c6383c06cc6fc194a3c4;p=jalview.git diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index be0440a..c11d051 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -1,53 +1,159 @@ -/******************** - * 2004 Jalview Reengineered - * Barton Group - * Dundee University - * - * AM Waterhouse - *******************/ - - +/* +* Jalview - A Sequence Alignment Editor and Viewer +* Copyright (C) 2005 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.bin; import jalview.gui.*; + +import jalview.io.*; + +import org.apache.log4j.*; + +import java.awt.event.*; + import javax.swing.*; -public class Jalview -{ - public static void main(String[] args) { - try{ - UIManager.setLookAndFeel( - // "javax.swing.plaf.metal.MetalLookAndFeel" - // "javax.swing.plaf.multi.MultiLookAndFeel" - UIManager.getCrossPlatformLookAndFeelClassName() - // "com.sun.java.swing.plaf.gtk.GTKLookAndFeel" - // "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" - // "com.sun.java.swing.plaf.motif.MotifLookAndFeel" - ); - } - catch (Exception ex) - {} +public class Jalview extends JApplet { + public static JApplet applet; + Desktop frame; + + public void init() { + applet = this; + Cache.loadProperties(); + jalview.gui.Preferences.initPreferences(); + + frame = new Desktop(); + frame.setResizable(true); + frame.setVisible(true); + frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + frame.addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + applet.stop(); + applet.destroy(); + } + }); + + String file = getParameter("alignment"); + + if (file != null) { + jalview.bin.Cache.setProperty("LAST_DIRECTORY", file); + + String protocol = "File"; + + if (file.indexOf("http:") > -1) { + protocol = "URL"; + } + + String format = jalview.io.IdentifyFile.Identify(file, protocol); + + frame.LoadFile(file, protocol, format); + } + } + + public void destroy() { + if (applet != null) { + applet.stop(); + } else { + System.exit(0); + } + + frame.setVisible(false); + } + + private static void initLogger() { + Logger laxis = Logger.getLogger("org.apache.axis"); + Logger lcastor = Logger.getLogger("org.exolab.castor"); + if (Cache.getProperty("logs.Axis.Level") == null) { + Cache.setProperty("logs.Axis.Level", Level.INFO.toString()); + } + if (Cache.getProperty("logs.Castor.Level") == null) { + Cache.setProperty("logs.Castor.Level", Level.INFO.toString()); + } + + laxis.setLevel(Level.toLevel(Cache.getProperty("logs.Axis.Level"))); + lcastor.setLevel(Level.toLevel(Cache.getProperty("logs.Castor.Level"))); + + ConsoleAppender ap = new ConsoleAppender(new SimpleLayout(), + "System.err"); + ap.setName("JalviewLogger"); + laxis.addAppender(ap); + lcastor.addAppender(ap); + } + + public static void main(String[] args) { + Cache.loadProperties(); + jalview.gui.Preferences.initPreferences(); + + try { + initLogger(); + } catch (Exception e) { + System.err.println("Problems initializing the log4j system\n"); + e.printStackTrace(); + } + + try { + UIManager.setLookAndFeel( + // "javax.swing.plaf.metal.MetalLookAndFeel" + // "javax.swing.plaf.multi.MultiLookAndFeel" + UIManager.getSystemLookAndFeelClassName()); + } catch (Exception ex) { + } + + Desktop frame = new Desktop(); + frame.setResizable(true); + frame.setVisible(true); + + if ((args != null) && (args.length > 0)) { + String file = null; + + if (args[0].equals("-open")) { + file = args[1]; + } else { + file = args[0]; + } - // JFrame.setDefaultLookAndFeelDecorated(true); - Desktop frame = new Desktop(); - frame.setResizable(true); - frame.setVisible(true); + String protocol = "File"; + if (file.indexOf("http:") > -1) { + protocol = "URL"; + } - if(args!=null && args.length>0) - { - String file = args[0]; - jalview.bin.Cache.LAST_DIRECTORY = file; - String protocol = "File"; - if(file.indexOf("http:")>-1) - protocol = "URL"; + String format = jalview.io.IdentifyFile.Identify(file, protocol); - String format = jalview.io.IdentifyFile.Identify(file, protocol); + frame.LoadFile(file, protocol, format); + } - frame.LoadFile(file, protocol, format); - } + if (jalview.gui.Preferences.showStartupFile && + (jalview.gui.Preferences.startupFile != null)) { + String file = jalview.gui.Preferences.startupFile; + String protocol = "File"; - } + if (file.indexOf("http:") > -1) { + protocol = "URL"; + } + if (file.endsWith(".jar")) { + Jalview2XML.LoadJalviewAlign(file); + } else { + String format = jalview.io.IdentifyFile.Identify(file, protocol); + frame.LoadFile(file, protocol, format); + } + } + } }