X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FExtJmol.java;h=7a48770b0c203ed183bb312204d41525b02bc984;hb=c0b7a760fe1ced5fe25ee3c3fd272e03f7526fa2;hp=b7fb3116aad88292207e9216ba14ebb26f3aa00a;hpb=6486a5333807ca300db4a28a6bf9899f5dddf5a6;p=jalview.git diff --git a/src/jalview/appletgui/ExtJmol.java b/src/jalview/appletgui/ExtJmol.java index b7fb311..7a48770 100644 --- a/src/jalview/appletgui/ExtJmol.java +++ b/src/jalview/appletgui/ExtJmol.java @@ -1,59 +1,99 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.appletgui; -import java.util.BitSet; -import java.util.Hashtable; -import java.util.Vector; - -import org.jmol.api.JmolViewer; - +import jalview.api.AlignmentViewPanel; import jalview.api.FeatureRenderer; import jalview.api.SequenceRenderer; import jalview.datamodel.PDBEntry; import jalview.datamodel.SequenceI; import jalview.ext.jmol.JalviewJmolBinding; +import jalview.gui.IProgressIndicator; +import jalview.io.DataSourceType; + +import java.awt.Container; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import org.jmol.api.JmolAppConsoleInterface; +import org.jmol.java.BS; +import org.jmol.viewer.Viewer; /** * 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) + protected ExtJmol(AlignFrame alframe, + PDBEntry[] pdbentry, SequenceI[][] seq, + DataSourceType protocol) { - super(pdbentry, seq, chains, protocol); + super(alframe.alignPanel.getStructureSelectionManager(), pdbentry, seq, + protocol); } - public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel, + public ExtJmol(Viewer viewer, AlignmentPanel alignPanel, SequenceI[][] seqs) { - super(viewer); + super(alignPanel.getStructureSelectionManager(), seqs, viewer); ap = alignPanel; - this.sequence = seqs; notifyFileLoaded(null, null, null, null, 0); } + @Override + protected IProgressIndicator getIProgressIndicator() + { + // no progress indicators on applet (could access javascript for this) + return null; + } + + @Override public void updateColours(Object source) { - + // TODO Auto-generated method stub } + @Override public void showUrl(String arg0) { showUrl(arg0, "jmol"); } - public FeatureRenderer getFeatureRenderer() + @Override + public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment) { - if (ap.av.showSequenceFeatures) + AlignmentPanel alignPanel = (AlignmentPanel) alignment; + if (alignPanel.av.isShowSequenceFeatures()) { - return ap.getFeatureRenderer(); + return alignPanel.getFeatureRenderer(); } else { @@ -61,71 +101,120 @@ public class ExtJmol extends JalviewJmolBinding } } - public SequenceRenderer getSequenceRenderer() + + @Override + public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment) { - return ap.getSequenceRenderer(); + return ((AlignmentPanel) alignment).getSequenceRenderer(); } + @Override public void notifyScriptTermination(String strStatus, int msWalltime) { // ignore } + @Override public void sendConsoleEcho(String strEcho) { // ignore } + @Override public void sendConsoleMessage(String strStatus) { // ignore } + @Override public void showUrl(String url, String target) { ap.alignFrame.showURL(url, target); } + @Override public void refreshGUI() { // ignore } - public void selectionChanged(BitSet arg0) + @Override + public void selectionChanged(BS arg0) { System.out.println(arg0); } + @Override public void refreshPdbEntries() { - Vector pdbe = new Vector(); - Hashtable fileids = new Hashtable(); + List pdbe = new ArrayList(); + List fileids = new ArrayList(); SequenceI[] sq = ap.av.getAlignment().getSequencesArray(); - for (int s=0;s pdbids = sq[s].getAllPDBEntries(); + if (pdbids != null) { - for (int pe=0,peSize=pdbids.size(); pe