X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalviewLite.java;h=157c22bf6615bd9c42448f62b8af31eea26ff359;hb=153dd62dc91da13ae732600e6ea55ddbe15eab39;hp=af6e1a55645266b744b2e2b9a8736625f28795ce;hpb=a8ce6286d9ca83c6fa044cc8584f2256c0235db3;p=jalview.git diff --git a/src/jalview/bin/JalviewLite.java b/src/jalview/bin/JalviewLite.java index af6e1a5..157c22b 100755 --- a/src/jalview/bin/JalviewLite.java +++ b/src/jalview/bin/JalviewLite.java @@ -1,34 +1,53 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) + * Copyright (C) 2010 J Procter, AM Waterhouse, 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 file is part of Jalview. * - * 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. + * 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. * - * 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 + * 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 . */ package jalview.bin; -import java.applet.*; - -import java.awt.*; -import java.awt.event.*; +import jalview.api.SequenceStructureBinding; +import jalview.appletgui.AlignFrame; +import jalview.appletgui.AppletJmol; +import jalview.appletgui.EmbmenuFrame; +import jalview.appletgui.FeatureSettings; +import jalview.datamodel.Alignment; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceI; +import jalview.io.AnnotationFile; +import jalview.io.AppletFormatAdapter; +import jalview.io.FileParse; +import jalview.io.IdentifyFile; +import jalview.io.JnetAnnotationMaker; + +import java.applet.Applet; +import java.awt.Button; +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Graphics; +import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.InputStreamReader; -import java.util.*; - -import jalview.appletgui.*; -import jalview.datamodel.*; -import jalview.io.*; +import java.lang.reflect.Method; +import java.util.Enumeration; +import java.util.StringTokenizer; +import java.util.Vector; /** * Jalview Applet. Runs in Java 1.18 runtime @@ -281,9 +300,9 @@ public class JalviewLite extends Applet // ////////////////////////////////////////////// // ////////////////////////////////////////////// - static int lastFrameX = 200; + public static int lastFrameX = 200; - static int lastFrameY = 200; + public static int lastFrameY = 200; boolean fileFound = true; @@ -310,10 +329,13 @@ public class JalviewLite extends Applet private boolean checkForJmol = true; private boolean checkedForJmol = false; // ensure we don't check for jmol - // every time the app is re-inited + + // every time the app is re-inited public boolean jmolAvailable = false; + private boolean alignPdbStructures=false; + public static boolean debug = false; static String builddate = null, version = null; @@ -380,10 +402,10 @@ public class JalviewLite extends Applet } if (debug) { - - System.err.println("JalviewLite Version "+getVersion()); - System.err.println("Build Date : "+getBuildDate()); - + + System.err.println("JalviewLite Version " + getVersion()); + System.err.println("Build Date : " + getBuildDate()); + } /** * if true disable the check for jmol @@ -878,7 +900,11 @@ public class JalviewLite extends Applet ex.printStackTrace(); } } - + /* + * + * Undocumented for 2.6 - related to JAL-434 + */ + applet.setAlignPdbStructures(getDefaultParameter("alignpdbfiles",false)); /* * @@ -887,8 +913,10 @@ public class JalviewLite extends Applet * * */ - + int pdbFileCount = 0; + // Accumulate pdbs here if they are heading for the same view (if alignPdbStructures is true) + Vector pdbs=new Vector(); do { if (pdbFileCount > 0) @@ -955,7 +983,7 @@ public class JalviewLite extends Applet // the local pdb file was identified in the class loader protocol = AppletFormatAdapter.URL; // this is probably NOT // CORRECT! - param = addProtocol(param); // + param = addProtocol(param); // } pdb.setFile(param); @@ -980,23 +1008,35 @@ public class JalviewLite extends Applet } } } - - if (jmolAvailable) - { - new jalview.appletgui.AppletJmol(pdb, seqs, chains, - newAlignFrame.alignPanel, protocol); - lastFrameX += 40; - lastFrameY += 40; + + if (!alignPdbStructures) { + newAlignFrame.newStructureView(applet, pdb, seqs, chains, + protocol); + } else { + pdbs.addElement(new Object[] { pdb, seqs, chains, new String(protocol)}); } - else - new MCview.AppletPDBViewer(pdb, seqs, chains, - newAlignFrame.alignPanel, protocol); } } pdbFileCount++; } while (pdbFileCount < 10); - + if (pdbs.size()>0) + { + SequenceI[][] seqs = new SequenceI[pdbs.size()][]; + PDBEntry[] pdb = new PDBEntry[pdbs.size()]; + String[][] chains = new String[pdbs.size()][]; + String[] protocols = new String[pdbs.size()]; + for (int pdbsi=0,pdbsiSize=pdbs.size(); pdbsi0) { for (int i = 0, iSize = list.length - 1; i < iSize; i++) { @@ -1291,4 +1331,84 @@ public class JalviewLite extends Applet } return false; } + + /** + * bind a pdb file to a sequence in the given alignFrame. + * + * @param alFrame + * - null or specific alignFrame. This specifies the dataset that + * will be searched for a seuqence called sequenceId + * @param sequenceId + * - sequenceId within the dataset. + * @param pdbEntryString + * - the short name for the PDB file + * @param pdbFile + * - pdb file - either a URL or a valid PDB file. + * @return true if binding was as success TODO: consider making an exception + * structure for indicating when PDB parsing or seqeunceId location + * fails. + */ + public boolean addPdbFile(AlignFrame alFrame, String sequenceId, + String pdbEntryString, String pdbFile) + { + return alFrame.addPdbFile(sequenceId, pdbEntryString, pdbFile); + } + + protected void setAlignPdbStructures(boolean alignPdbStructures) + { + this.alignPdbStructures = alignPdbStructures; + } + + public boolean isAlignPdbStructures() + { + return alignPdbStructures; + } + + /** + * get all components associated with the applet of the given type + * @param class1 + * @return + */ + public Vector getAppletWindow(Class class1) + { + Vector wnds = new Vector(); + Component[] cmp = getComponents(); + if (cmp!=null) + { + for (int i=0;i 0) + { + return alFrame.addStructureViewInstance(viewer, + separatorListToArray(sequenceIds)); + } + else + { + return alFrame.addStructureViewInstance(viewer, null); + } + // return null; + } + */ }