X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2FMCview%2FPDBViewer.java;h=e586707c7a5581e214282a6673a7bf4d5a8b3bb9;hb=3a993bbe274824870c78bd7695c42fa93908cb30;hp=c70bc6f3e0b9e7b446228779e49b9a35c093302e;hpb=5e1c62d9da464c55d118d4d1155545017bf6feb5;p=jalview.git diff --git a/src/MCview/PDBViewer.java b/src/MCview/PDBViewer.java index c70bc6f..e586707 100755 --- a/src/MCview/PDBViewer.java +++ b/src/MCview/PDBViewer.java @@ -20,37 +20,47 @@ package MCview; import java.io.*; -import java.awt.*; import java.awt.event.*; import javax.swing.*; -import java.util.BitSet; import jalview.datamodel.*; import jalview.gui.*; import jalview.io.*; import jalview.schemes.*; +import jalview.ws.ebi.EBIFetchClient; -import org.jmol.api.*; -import org.jmol.adapter.smarter.SmarterJmolAdapter; -import org.jmol.util.Logger; -import org.jmol.popup.*; +import java.awt.BorderLayout; public class PDBViewer extends JInternalFrame implements Runnable { - PDBEntry pdb; + /** * The associated sequence in an alignment */ - Sequence sequence; PDBCanvas pdbcanvas; + + PDBEntry pdbentry; + SequenceI[]seq; + String[]chains; + AlignmentPanel ap; + String protocol; String tmpPDBFile; - public PDBViewer(PDBEntry entry, - Sequence seq, - SeqCanvas seqcanvas) + public PDBViewer(PDBEntry pdbentry, + SequenceI[] seq, + String[] chains, + AlignmentPanel ap, + String protocol) + { - /* try + this.pdbentry = pdbentry; + this.seq = seq; + this.chains = chains; + this.ap = ap; + this.protocol = protocol; + + try { jbInit(); } @@ -59,22 +69,24 @@ public class PDBViewer ex.printStackTrace(); } - if (entry == null) - { - return; - } - pdb = entry; - sequence = seq; - pdbcanvas = new PDBCanvas(seqcanvas, sequence); - if (pdb.getFile() != null) + StringBuffer title = new StringBuffer(seq[0].getName() + + ":" + + pdbentry.getFile()); + + pdbcanvas = new PDBCanvas(); + + setContentPane(pdbcanvas); + + if (pdbentry.getFile() != null) { try { - tmpPDBFile = pdb.getFile(); + tmpPDBFile = pdbentry.getFile(); PDBfile pdbfile = new PDBfile(tmpPDBFile, jalview.io.AppletFormatAdapter.FILE); - pdbcanvas.setPDBFile(pdbfile); + + pdbcanvas.init(pdbentry, seq, chains, ap, protocol); } catch (java.io.IOException ex) @@ -88,277 +100,40 @@ public class PDBViewer worker.start(); } - public void run() - { - try - { - EBIFetchClient ebi = new EBIFetchClient(); - String query = "pdb:" + pdb.getId(); - tmpPDBFile = ebi.fetchDataAsFile(query, "default", "raw").getAbsolutePath(); - if (tmpPDBFile != null) - { - PDBfile pdbfile = new PDBfile(tmpPDBFile, - jalview.io.AppletFormatAdapter.FILE); - pdbcanvas.setPDBFile(pdbfile); - } - else - { - throw new Exception("Empty result for WSDbFetch Query: " + query); - } - } - catch (Exception ex) - { - ex.printStackTrace(); - showErrorMessage("Failed to retrieve PDB structure."); -// this.dispose(); - } - } - setContentPane(pdbcanvas); - StringBuffer title = new StringBuffer(sequence.getName() + ":" + pdb.getId()); - if (pdb.getProperty() != null) + if (pdbentry.getProperty() != null) { - if (pdb.getProperty().get("method") != null) + if (pdbentry.getProperty().get("method") != null) { title.append(" Method: "); - title.append(pdb.getProperty().get("method")); + title.append(pdbentry.getProperty().get("method")); } - if (pdb.getProperty().get("chains") != null) + if (pdbentry.getProperty().get("chains") != null) { title.append(" Chain:"); - title.append(pdb.getProperty().get("chains")); + title.append(pdbentry.getProperty().get("chains")); } } - */ - - Container contentPane = getContentPane(); - JmolPanel jmolPanel = new JmolPanel(); - contentPane.add(jmolPanel); - - JmolViewer viewer = jmolPanel.viewer; - - - System.out.println(entry.getFile()+" "+entry.getId()); - viewer.openFile(entry.getFile()); - - - StringBuffer string = new StringBuffer(); - - for(int i=0; i