/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
\r
import java.awt.*;\r
import java.awt.event.*;\r
-import jalview.appletgui.TreePanel;\r
+import jalview.appletgui.FeatureSettings;\r
\r
\r
/**\r
\r
//The currentAlignFrame is static, it will change\r
//if and when the user selects a new window\r
- static AlignFrame currentAlignFrame;\r
+ public static AlignFrame currentAlignFrame;\r
\r
//This is the first frame to be displayed, and does not change\r
AlignFrame initialAlignFrame;\r
\r
file = getParameter("file");\r
\r
+ if(file==null)\r
+ {\r
+ //Maybe the sequences are added as parameters\r
+ StringBuffer data = new StringBuffer("PASTE");\r
+ int i=1;\r
+ while( (file=getParameter("sequence"+i))!=null)\r
+ {\r
+ data.append(file.toString()+"\n");\r
+ i++;\r
+ }\r
+ if(data.length()>5)\r
+ file = data.toString();\r
+ }\r
+\r
final JalviewLite applet = this;\r
if(getParameter("embedded")!=null\r
&& getParameter("embedded").equalsIgnoreCase("true"))\r
{\r
embedded = true;\r
- LoadingThread loader = new LoadingThread(file,\r
- AppletFormatAdapter.URL,\r
- applet);\r
+ LoadingThread loader = new LoadingThread(file, applet);\r
loader.start();\r
}\r
else if (file != null)\r
public void actionPerformed(ActionEvent e)\r
{\r
LoadingThread loader = new LoadingThread(file,\r
- AppletFormatAdapter.URL,\r
applet);\r
loader.start();\r
}\r
}\r
if ( (sequences != null) && (sequences.length > 0))\r
{\r
- AlignFrame af = new AlignFrame(new Alignment(sequences), null, args[0]);\r
+ AlignFrame af = new AlignFrame(new Alignment(sequences), null, args[0], false);\r
af.statusBar.setText("Successfully loaded file " + args[0]);\r
}\r
}\r
{\r
public void windowClosing(WindowEvent e)\r
{\r
+ if(frame instanceof AlignFrame)\r
+ ((AlignFrame)frame).closeMenuItem_actionPerformed();\r
if(currentAlignFrame == frame)\r
{\r
currentAlignFrame = null;\r
JalviewLite applet;\r
\r
public LoadingThread(String _file,\r
- String _protocol,\r
JalviewLite _applet)\r
{\r
file = _file;\r
- if(inArchive(file))\r
+ if(file.startsWith("PASTE"))\r
+ {\r
+ file = file.substring(5);\r
+ protocol = AppletFormatAdapter.PASTE;\r
+ }\r
+ else if(inArchive(file))\r
protocol = AppletFormatAdapter.CLASSLOADER;\r
else\r
- protocol = _protocol;\r
-\r
+ {\r
+ file = addProtocol(file);\r
+ protocol = AppletFormatAdapter.URL;\r
+ }\r
format = new jalview.io.IdentifyFile().Identify(file, protocol);\r
applet = _applet;\r
}\r
if ((sequences != null) && (sequences.length > 0))\r
{\r
currentAlignFrame = new AlignFrame(new Alignment(sequences),\r
- applet, file);\r
+ applet,\r
+ file,\r
+ embedded);\r
\r
- initialAlignFrame = currentAlignFrame;\r
+ if(protocol==jalview.io.AppletFormatAdapter.PASTE)\r
+ currentAlignFrame.setTitle("Sequences from "+getDocumentBase());\r
\r
- if (embedded)\r
- currentAlignFrame.setEmbedded();\r
+ initialAlignFrame = currentAlignFrame;\r
\r
currentAlignFrame.statusBar.setText("Successfully loaded file " + file);\r
\r
\r
- String treeFile = applet.getParameter("treeFile");\r
+ String treeFile = applet.getParameter("tree");\r
+ if(treeFile==null)\r
+ treeFile = applet.getParameter("treeFile");\r
+\r
if (treeFile != null)\r
{\r
try\r
\r
if (fin.getTree() != null)\r
{\r
- TreePanel tp = null;\r
- tp = new TreePanel(currentAlignFrame.viewport,\r
- currentAlignFrame.viewport.getAlignment().getSequences(),\r
- fin, "FromFile", treeFile);\r
- addFrame(tp, treeFile, 600, 500);\r
- currentAlignFrame.addTreeMenuItem(tp, treeFile);\r
+ currentAlignFrame.loadTree(fin, treeFile);\r
}\r
}\r
catch (Exception ex)\r
if( !inArchive(param) )\r
param = addProtocol( param );\r
\r
- currentAlignFrame.parseFeaturesFile(param);\r
+ currentAlignFrame.parseFeaturesFile(param, protocol);\r
+ }\r
+\r
+ param = getParameter("showFeatureSettings");\r
+ if(param !=null && param.equalsIgnoreCase("true"))\r
+ {\r
+ currentAlignFrame.viewport.showSequenceFeatures(true);\r
+ new FeatureSettings(currentAlignFrame.alignPanel);\r
}\r
\r
param = getParameter("annotations");\r
if( !inArchive(param) )\r
param = addProtocol( param );\r
\r
- new AnnotationReader().readAnnotationFile(\r
+ new AnnotationFile().readAnnotationFile(\r
currentAlignFrame.viewport.getAlignment(),\r
param);\r
\r
currentAlignFrame.alignPanel.fontChanged();\r
+ currentAlignFrame.alignPanel.setScrollValues(0,0);\r
+\r
+ }\r
+\r
+ param = getParameter("jnetfile");\r
+ if (param != null)\r
+ {\r
+ try\r
+ {\r
+ if (inArchive(param))\r
+ protocol = AppletFormatAdapter.CLASSLOADER;\r
+ else\r
+ {\r
+ protocol = AppletFormatAdapter.URL;\r
+ param = addProtocol(param);\r
+ }\r
+\r
+ jalview.io.JPredFile predictions = new jalview.io.JPredFile(\r
+ param, protocol);\r
+ new JnetAnnotationMaker().add_annotation(predictions,\r
+ currentAlignFrame.viewport.getAlignment(),\r
+ 0,false); // do not add sequence profile from concise output\r
+ currentAlignFrame.alignPanel.fontChanged();\r
+ currentAlignFrame.alignPanel.setScrollValues(0, 0);\r
+ } catch (Exception ex) {\r
+ ex.printStackTrace();\r
+ }\r
}\r
\r
\r
*/\r
boolean inArchive(String file)\r
{\r
- return ( getClass().getResourceAsStream("/" + file) != null );\r
+ //This might throw a security exception in certain browsers\r
+ //Netscape Communicator for instance.\r
+ try{\r
+ return (getClass().getResourceAsStream("/" + file) != null);\r
+ }catch(Exception ex)\r
+ {\r
+ System.out.println("Exception checking resources: "+file+" "+ex);\r
+ return false;\r
+ }\r
}\r
\r
String addProtocol(String file)\r