From cdb2c3afc153577cceb0d5c6a4b12532f6dde601 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 20 Aug 2010 11:52:40 +0000 Subject: [PATCH] binding between JalviewLite alignment windows and some external Jmol viewer --- src/jalview/appletgui/ExtJmol.java | 124 ++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 src/jalview/appletgui/ExtJmol.java diff --git a/src/jalview/appletgui/ExtJmol.java b/src/jalview/appletgui/ExtJmol.java new file mode 100644 index 0000000..2c5da17 --- /dev/null +++ b/src/jalview/appletgui/ExtJmol.java @@ -0,0 +1,124 @@ +package jalview.appletgui; + +import java.util.BitSet; +import java.util.Hashtable; +import java.util.Vector; + +import org.jmol.api.JmolViewer; + +import jalview.api.FeatureRenderer; +import jalview.api.SequenceRenderer; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceI; +import jalview.ext.jmol.JalviewJmolBinding; + +/** + * bind an alignment view to an external Jmol instance. + * @author JimP + * + */ +public class ExtJmol extends JalviewJmolBinding +{ + + private AlignmentPanel ap; + + protected ExtJmol(jalview.appletgui.AlignFrame alframe, PDBEntry[] pdbentry, SequenceI[] seq, String[] chains, + String protocol) + { + super(pdbentry, seq, chains, protocol); + } + + public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel, + SequenceI[] seqs) + { + super(viewer); + ap = alignPanel; + this.sequence = seqs; + notifyFileLoaded(null, null, null, null, 0); + } + + public void updateColours(Object source) + { + + // TODO Auto-generated method stub + + } + + public void showUrl(String arg0) + { + showUrl(arg0, "jmol"); + } + + public FeatureRenderer getFeatureRenderer() + { + if (ap.av.showSequenceFeatures) + { + return ap.getFeatureRenderer(); + } + else + { + return null; + } + } + + public SequenceRenderer getSequenceRenderer() + { + return ap.getSequenceRenderer(); + } + + public void notifyScriptTermination(String strStatus, int msWalltime) + { + // ignore + } + + public void sendConsoleEcho(String strEcho) + { + // ignore + } + + public void sendConsoleMessage(String strStatus) + { + // ignore + } + + public void showUrl(String url, String target) + { + ap.alignFrame.showURL(url, target); + } + + public void updateUI() + { + // ignore + } + + public void selectionChanged(BitSet arg0) + { + System.out.println(arg0); + } + + public void refreshPdbEntries() + { + Vector pdbe = new Vector(); + Hashtable fileids = new Hashtable(); + SequenceI[] sq = ap.av.getAlignment().getSequencesArray(); + for (int s=0;s