2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
3 * Copyright (C) 2010 J Procter, AM Waterhouse, 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.FeatureRenderer;
29 import jalview.api.SequenceRenderer;
30 import jalview.datamodel.PDBEntry;
31 import jalview.datamodel.SequenceI;
32 import jalview.ext.jmol.JalviewJmolBinding;
35 * bind an alignment view to an external Jmol instance.
40 public class ExtJmol extends JalviewJmolBinding
43 private AlignmentPanel ap;
45 protected ExtJmol(jalview.appletgui.AlignFrame alframe,
46 PDBEntry[] pdbentry, SequenceI[][] seq, String[][] chains,
49 super(pdbentry, seq, chains, protocol);
52 public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
58 notifyFileLoaded(null, null, null, null, 0);
61 public void updateColours(Object source)
64 // TODO Auto-generated method stub
68 public void showUrl(String arg0)
70 showUrl(arg0, "jmol");
73 public FeatureRenderer getFeatureRenderer()
75 if (ap.av.showSequenceFeatures)
77 return ap.getFeatureRenderer();
85 public SequenceRenderer getSequenceRenderer()
87 return ap.getSequenceRenderer();
90 public void notifyScriptTermination(String strStatus, int msWalltime)
95 public void sendConsoleEcho(String strEcho)
100 public void sendConsoleMessage(String strStatus)
105 public void showUrl(String url, String target)
107 ap.alignFrame.showURL(url, target);
110 public void refreshGUI()
115 public void selectionChanged(BitSet arg0)
117 System.out.println(arg0);
120 public void refreshPdbEntries()
122 Vector pdbe = new Vector();
123 Hashtable fileids = new Hashtable();
124 SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
125 for (int s = 0; s < sq.length; s++)
127 Vector pdbids = sq[s].getPDBId();
130 for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)
132 PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
133 if (!fileids.containsKey(pentry.getId()))
135 pdbe.addElement(pentry);
140 pdbentry = new PDBEntry[pdbe.size()];
141 for (int pe = 0; pe < pdbe.size(); pe++)
143 pdbentry[pe] = (PDBEntry) pdbe.elementAt(pe);
148 public void showConsole(boolean show)
150 // This never gets called because we haven't overriden the associated Jmol's
153 .println("WARNING: unexpected call to ExtJmol's showConsole method. (showConsole="
158 protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
159 Container consolePanel, String buttonsToShow)
161 // TODO Auto-generated method stub
166 protected void releaseUIResources()
173 console.setVisible(false);
176 } catch (Exception x)