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 refreshGUI() { // 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