X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fjmol%2FPDBFileWithJmol.java;h=159955a8e3327e24c6a682a5725082ba04c33338;hb=3325395b33ef3b52b4a62327621c5bddf12ee4e0;hp=962fe3cbf80e2fc4d93e85cc25a535866cb0e887;hpb=5d559ba1007072cbf2e7065a3a32356a188fea7f;p=jalview.git diff --git a/src/jalview/ext/jmol/PDBFileWithJmol.java b/src/jalview/ext/jmol/PDBFileWithJmol.java index 962fe3c..159955a 100644 --- a/src/jalview/ext/jmol/PDBFileWithJmol.java +++ b/src/jalview/ext/jmol/PDBFileWithJmol.java @@ -1,32 +1,41 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * * 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. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * 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 . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.ext.jmol; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.Annotation; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceI; +import jalview.io.AlignFile; +import jalview.io.FileParse; +import jalview.util.MessageManager; + import java.io.IOException; +import java.util.Hashtable; import java.util.Map; -import javax.xml.parsers.ParserConfigurationException; - import org.jmol.api.JmolStatusListener; import org.jmol.api.JmolViewer; import org.jmol.constant.EnumCallback; -import org.jmol.constant.EnumStructure; -import org.jmol.modelset.Chain; import org.jmol.modelset.Group; import org.jmol.modelset.Model; import org.jmol.modelset.ModelSet; @@ -34,18 +43,6 @@ import org.jmol.modelset.Polymer; import org.jmol.modelsetbio.BioPolymer; import org.jmol.viewer.Viewer; import org.openscience.jmol.app.JmolApp; -import org.xml.sax.SAXException; - -import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax; -import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed; -import fr.orsay.lri.varna.exceptions.ExceptionPermissionDenied; -import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses; -import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.Annotation; -import jalview.datamodel.PDBEntry; -import jalview.datamodel.Sequence; -import jalview.datamodel.SequenceI; -import jalview.io.AlignFile; /** * Import and process PDB files with Jmol @@ -61,15 +58,16 @@ public class PDBFileWithJmol extends AlignFile implements Viewer viewer = null; - public PDBFileWithJmol(String inFile, String type) - throws ExceptionUnmatchedClosingParentheses, IOException, - ExceptionFileFormatOrSyntax, ParserConfigurationException, - SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed, - InterruptedException + public PDBFileWithJmol(String inFile, String type) throws IOException { super(inFile, type); } + public PDBFileWithJmol(FileParse fp) throws IOException + { + super(fp); + } + public PDBFileWithJmol() { // TODO Auto-generated constructor stub @@ -98,10 +96,7 @@ public class PDBFileWithJmol extends AlignFile implements jmolApp.startViewer(viewer, null); } catch (ClassCastException x) { - throw new Error( - "Jmol version " - + JmolViewer.getJmolVersion() - + " is not compatible with this version of Jalview. Report this problem at issues.jalview.org", + throw new Error(MessageManager.formatMessage("error.jmol_version_not_compatible_with_jalview_version", new String[]{JmolViewer.getJmolVersion()}), x); } } @@ -128,10 +123,7 @@ public class PDBFileWithJmol extends AlignFile implements * @see jalview.io.AlignFile#parse() */ @Override - public void parse() throws IOException, ExceptionFileFormatOrSyntax, - ParserConfigurationException, SAXException, - ExceptionPermissionDenied, ExceptionLoadingFailed, - InterruptedException, ExceptionUnmatchedClosingParentheses + public void parse() throws IOException { Viewer jmd = getJmolData(); jmd.openReader(getDataName(), getDataName(), getReader()); @@ -163,7 +155,7 @@ public class PDBFileWithJmol extends AlignFile implements { char newseq[] = new char[len]; System.arraycopy(seq, 0, newseq, 0, len); - Annotation asecstr[] = new Annotation[len]; + Annotation asecstr[] = new Annotation[len+firstrnum-1]; for (int p = 0; p < len; p++) { if (secstr[p] >= 'A' && secstr[p] <= 'z') @@ -179,13 +171,24 @@ public class PDBFileWithJmol extends AlignFile implements pdbe.setFile(getDataName()); pdbe.setId(getDataName()); sq.addPDBId(pdbe); + pdbe.setProperty(new Hashtable()); + pdbe.getProperty().put("CHAIN", "" + _lastChainId); + // JAL-1533 + // Need to put the number of models for this polymer somewhere for Chimera/others to grab + // pdbe.getProperty().put("PDBMODELS", biopoly.) seqs.add(sq); if (!(biopoly.isDna() || biopoly.isRna())) { AlignmentAnnotation ann = new AlignmentAnnotation( "Secondary Structure", "Secondary Structure from PDB File", asecstr); + ann.belowAlignment=true; + ann.visible=true; + ann.autoCalculated=false; + ann.setCalcId(getClass().getName()); sq.addAlignmentAnnotation(ann); + ann.adjustForAlignment(); + ann.validateRangeAndDisplay(); annotations.add(ann); } } @@ -304,11 +307,16 @@ public class PDBFileWithJmol extends AlignFile implements case MEASURE: String mystatus = (String) data[3]; if (mystatus.indexOf("Picked") >= 0 - || mystatus.indexOf("Sequence") >= 0) // picking mode + || mystatus.indexOf("Sequence") >= 0) + { + // Picking mode sendConsoleMessage(strInfo); + } else if (mystatus.indexOf("Completed") >= 0) + { sendConsoleEcho(strInfo.substring(strInfo.lastIndexOf(",") + 2, strInfo.length() - 1)); + } break; case MESSAGE: sendConsoleMessage(data == null ? null : strInfo);