6 import java.util.BitSet;
8 import javax.swing.JPanel;
10 import jalview.bin.Cache;
11 import jalview.datamodel.PDBEntry;
12 import jalview.datamodel.SequenceI;
14 import org.jmol.popup.JmolPopup;
15 import org.openscience.jmol.app.jmolpanel.AppConsole;
17 public class AppJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
23 private AppJmol appJmolWindow;
25 public AppJmolBinding(AppJmol appJmol, PDBEntry[] pdbentry,
26 SequenceI[][] sequenceIs, String[][] chains, String protocol)
28 super(pdbentry, sequenceIs, chains, protocol);
29 appJmolWindow = appJmol;
32 FeatureRenderer fr = null;
35 public jalview.api.FeatureRenderer getFeatureRenderer()
37 if (appJmolWindow.ap.av.showSequenceFeatures)
41 fr = new FeatureRenderer(appJmolWindow.ap);
44 fr.transferSettings(appJmolWindow.ap.seqPanel.seqCanvas
45 .getFeatureRenderer());
52 public jalview.api.SequenceRenderer getSequenceRenderer()
54 return new SequenceRenderer(appJmolWindow.ap.av);
57 public void sendConsoleEcho(String strEcho)
61 console.sendConsoleEcho(strEcho);
65 public void sendConsoleMessage(String strStatus)
67 if (console != null && strStatus != null)
68 // && !strStatus.equals("Script completed"))
69 // should we squash the script completed string ?
71 console.sendConsoleMessage(strStatus);
76 public void showUrl(String url, String target)
80 jalview.util.BrowserLauncher.openURL(url);
83 Cache.log.error("Failed to launch Jmol-associated url " + url, e);
84 // TODO: 2.6 : warn user if browser was not configured.
89 public void refreshGUI()
91 // appJmolWindow.repaint();
92 javax.swing.SwingUtilities.invokeLater(new Runnable() {
94 appJmolWindow.updateTitleAndMenus();
95 appJmolWindow.revalidate();
99 public void updateColours(Object source)
101 AlignmentPanel ap = (AlignmentPanel) source;
102 if (appJmolWindow.ap.alignFrame.getCurrentView() != ap.av)
105 colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
108 public void notifyScriptTermination(String strStatus, int msWalltime)
110 // todo - script termination doesn't happen ?
111 //if (console != null)
112 //console.notifyScriptTermination(strStatus,
116 public void showUrl(String url)
118 showUrl(url, "jmol");
121 public void newJmolPopup(boolean translateLocale, String menuName,
125 jmolpopup = JmolPopup.newJmolPopup(viewer, translateLocale, menuName,
129 public void selectionChanged(BitSet arg0)
131 // TODO Auto-generated method stub
135 public void refreshPdbEntries()
137 // TODO Auto-generated method stub
141 public void showConsole(boolean b) {
142 appJmolWindow.showConsole(b);
146 * add the given sequences to the mapping scope for the given pdb file handle
149 * - pdbFile identifier
151 * - set of sequences it can be mapped to
153 public void addSequenceForStructFile(String pdbFile, SequenceI[] seq)
155 for (int pe = 0; pe < pdbentry.length; pe++)
157 if (pdbentry[pe].getFile().equals(pdbFile))
159 addSequence(pe, seq);