2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
3 * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11 * Jalview is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 * PURPOSE. See the GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
18 package jalview.appletgui;
20 import java.awt.Container;
21 import java.util.BitSet;
22 import java.util.Hashtable;
23 import java.util.Vector;
25 import org.jmol.api.JmolAppConsoleInterface;
26 import org.jmol.api.JmolViewer;
28 import jalview.api.AlignmentViewPanel;
29 import jalview.api.FeatureRenderer;
30 import jalview.api.SequenceRenderer;
31 import jalview.datamodel.PDBEntry;
32 import jalview.datamodel.SequenceI;
33 import jalview.ext.jmol.JalviewJmolBinding;
36 * bind an alignment view to an external Jmol instance.
41 public class ExtJmol extends JalviewJmolBinding
44 private AlignmentPanel ap;
46 protected ExtJmol(jalview.appletgui.AlignFrame alframe,
47 PDBEntry[] pdbentry, SequenceI[][] seq, String[][] chains,
50 super(alframe.alignPanel.getStructureSelectionManager(), pdbentry, seq,
54 public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
57 super(alignPanel.getStructureSelectionManager(), viewer);
60 notifyFileLoaded(null, null, null, null, 0);
63 public void updateColours(Object source)
66 // TODO Auto-generated method stub
70 public void showUrl(String arg0)
72 showUrl(arg0, "jmol");
75 public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
77 AlignmentPanel ap = (AlignmentPanel) alignment;
78 if (ap.av.showSequenceFeatures)
80 return ap.getFeatureRenderer();
88 public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
90 return ((AlignmentPanel) alignment).getSequenceRenderer();
93 public void notifyScriptTermination(String strStatus, int msWalltime)
98 public void sendConsoleEcho(String strEcho)
103 public void sendConsoleMessage(String strStatus)
108 public void showUrl(String url, String target)
110 ap.alignFrame.showURL(url, target);
113 public void refreshGUI()
118 public void selectionChanged(BitSet arg0)
120 System.out.println(arg0);
123 public void refreshPdbEntries()
125 Vector pdbe = new Vector();
126 Hashtable fileids = new Hashtable();
127 SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
128 for (int s = 0; s < sq.length; s++)
130 Vector pdbids = sq[s].getPDBId();
133 for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)
135 PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
136 if (!fileids.containsKey(pentry.getId()))
138 pdbe.addElement(pentry);
143 pdbentry = new PDBEntry[pdbe.size()];
144 for (int pe = 0; pe < pdbe.size(); pe++)
146 pdbentry[pe] = (PDBEntry) pdbe.elementAt(pe);
151 public void showConsole(boolean show)
153 // This never gets called because we haven't overriden the associated Jmol's
156 .println("WARNING: unexpected call to ExtJmol's showConsole method. (showConsole="
161 protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
162 Container consolePanel, String buttonsToShow)
164 // TODO Auto-generated method stub
169 protected void releaseUIResources()
176 console.setVisible(false);
179 } catch (Exception x)
189 public void releaseReferences(Object svl)
191 // TODO Auto-generated method stub