X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FMCview%2FPDBfile.java;h=0035914d2ccb762bf971631348ee46ad183561b9;hb=80c223c45fde0899c9794e887801dd82fffd3452;hp=90328e0ed41552c68b920ac1be55eed082cb0151;hpb=2ee434fd0b628f004674119095ab3aa893ad6831;p=jalview.git diff --git a/src/MCview/PDBfile.java b/src/MCview/PDBfile.java index 90328e0..0035914 100755 --- a/src/MCview/PDBfile.java +++ b/src/MCview/PDBfile.java @@ -24,9 +24,7 @@ import java.awt.*; import jalview.analysis.AlignSeq; import jalview.datamodel.*; -import jalview.ext.jmol.PDBFileWithJmol; import jalview.io.FileParse; -import jalview.ws.jws1.Annotate3D; public class PDBfile extends jalview.io.AlignFile { @@ -238,17 +236,34 @@ public class PDBfile extends jalview.io.AlignFile } private void processPdbFileWithJmol(ArrayList prot) throws Exception { - PDBFileWithJmol jmf = new PDBFileWithJmol(new FileParse(getDataName(),type)); - Alignment al = new Alignment(jmf.getSeqsAsArray()); - jmf.addAnnotations(al); - replaceMatchingSeqsWith(prot, al, AlignSeq.PEP); + try { + Class cl = Class.forName("jalview.ext.jmol.PDBFileWithJmol"); + if (cl!=null) + { + Object jmf = cl.getConstructor(new Class[] {FileParse.class}).newInstance(new Object[] {new FileParse(getDataName(),type)}); + Alignment al = new Alignment((SequenceI[]) cl.getMethod("getSeqsAsArray", new Class[] {}).invoke(jmf)); + cl.getMethod("addAnnotations",new Class[] {Alignment.class}).invoke(jmf, al); + replaceMatchingSeqsWith(prot, al, AlignSeq.PEP); + } + } catch (ClassNotFoundException q) + {} } private void processPdbFileWithAnnotate3d(ArrayList rna) throws Exception { // System.out.println("this is a PDB format and RNA sequence"); - Annotate3D an3d = new Annotate3D(); - // TODO: use the PDB ID of the structure if one is available, to save bandwidth and avoid uploading the whole structure to the service - AlignmentI al = an3d.getRNAMLFor(new FileParse(getDataName(),type)); - replaceMatchingSeqsWith(rna, al, AlignSeq.DNA); + // note: we use reflection here so that the applet can compile and run without the HTTPClient bits and pieces needed for accessing Annotate3D web service + try { + Class cl = Class.forName("jalview.ws.jws1.Annotate3D"); + if (cl!=null) + { + // TODO: use the PDB ID of the structure if one is available, to save bandwidth and avoid uploading the whole structure to the service + Object annotate3d = cl.getConstructor(new Class[] {}).newInstance(new Object[] {}); + AlignmentI al = ((AlignmentI) cl.getMethod("getRNAMLFor", new Class[] { FileParse.class}).invoke(annotate3d, new Object[] { new FileParse(getDataName(),type)})); + replaceMatchingSeqsWith(rna, al, AlignSeq.DNA); + } + } catch (ClassNotFoundException x) + { + //ignore classnotfounds - occurs in applet + }; } private void replaceMatchingSeqsWith(ArrayList ochains, AlignmentI al, String dnaOrProtein) {