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.
39 public class ExtJmol extends JalviewJmolBinding
42 private AlignmentPanel ap;
44 protected ExtJmol(jalview.appletgui.AlignFrame alframe, PDBEntry[] pdbentry, SequenceI[][] seq, String[][] chains,
47 super(pdbentry, seq, chains, protocol);
50 public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
56 notifyFileLoaded(null, null, null, null, 0);
59 public void updateColours(Object source)
62 // TODO Auto-generated method stub
66 public void showUrl(String arg0)
68 showUrl(arg0, "jmol");
71 public FeatureRenderer getFeatureRenderer()
73 if (ap.av.showSequenceFeatures)
75 return ap.getFeatureRenderer();
83 public SequenceRenderer getSequenceRenderer()
85 return ap.getSequenceRenderer();
88 public void notifyScriptTermination(String strStatus, int msWalltime)
93 public void sendConsoleEcho(String strEcho)
98 public void sendConsoleMessage(String strStatus)
103 public void showUrl(String url, String target)
105 ap.alignFrame.showURL(url, target);
108 public void refreshGUI()
113 public void selectionChanged(BitSet arg0)
115 System.out.println(arg0);
118 public void refreshPdbEntries()
120 Vector pdbe = new Vector();
121 Hashtable fileids = new Hashtable();
122 SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
123 for (int s=0;s<sq.length;s++)
125 Vector pdbids = sq[s].getPDBId();
128 for (int pe=0,peSize=pdbids.size(); pe<peSize; pe++)
130 PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
131 if (!fileids.containsKey(pentry.getId())) {
132 pdbe.addElement(pentry);
137 pdbentry = new PDBEntry[pdbe.size()];
138 for (int pe=0;pe<pdbe.size(); pe++)
140 pdbentry[pe] = (PDBEntry) pdbe.elementAt(pe);
145 public void showConsole(boolean show)
147 // This never gets called because we haven't overriden the associated Jmol's console
148 System.err.println("WARNING: unexpected call to ExtJmol's showConsole method. (showConsole="+show);
152 protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
153 Container consolePanel, String buttonsToShow)
155 // TODO Auto-generated method stub
159 protected void releaseUIResources()
164 console.setVisible(false);
165 } catch (Error e) {} catch (Exception x) {};