6 import java.util.Vector;
8 import jalview.bin.Cache;
9 import jalview.datamodel.PDBEntry;
10 import jalview.datamodel.SequenceI;
12 import org.jmol.popup.JmolPopup;
14 class AppJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
20 private AppJmol appJmolWindow;
22 public AppJmolBinding(AppJmol appJmol, PDBEntry[] pdbentry,
23 SequenceI[] seq, String[] chains, String protocol)
25 super(pdbentry, seq, chains, protocol);
26 appJmolWindow = appJmol;
28 FeatureRenderer fr=null;
30 public jalview.api.FeatureRenderer getFeatureRenderer()
32 if (appJmolWindow.ap.av.showSequenceFeatures)
36 fr = new FeatureRenderer(appJmolWindow.ap);
39 fr.transferSettings(appJmolWindow.ap.seqPanel.seqCanvas
40 .getFeatureRenderer());
47 public jalview.api.SequenceRenderer getSequenceRenderer()
49 return new SequenceRenderer(appJmolWindow.ap.av);
52 public void sendConsoleEcho(String strEcho)
54 if (appJmolWindow.scriptWindow != null)
56 appJmolWindow.scriptWindow.sendConsoleEcho(strEcho);
60 public void sendConsoleMessage(String strStatus)
62 if (appJmolWindow.scriptWindow!=null && strStatus != null
64 // && !strStatus.equals("Script completed"))
65 // should we squash the script completed string ?
67 appJmolWindow.scriptWindow.sendConsoleMessage(strStatus);
72 public void showUrl(String url, String target)
75 jalview.util.BrowserLauncher.openURL(url);
76 } catch (Exception e) {
77 Cache.log.error("Failed to launch Jmol-associated url " + url, e);
78 // TODO: 2.6 : warn user if browser was not configured.
83 public void updateUI()
85 // appJmolWindow.repaint();
86 appJmolWindow.updateTitleAndMenus();
89 public void updateColours(Object source)
91 AlignmentPanel ap = (AlignmentPanel) source;
92 if (appJmolWindow.ap.alignFrame.getCurrentView()!=ap.av)
95 colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
98 public void notifyScriptTermination(String strStatus, int msWalltime)
100 if (appJmolWindow.scriptWindow != null)
101 appJmolWindow.scriptWindow.notifyScriptTermination(strStatus, msWalltime);
104 public void showUrl(String url)
109 public void newJmolPopup(boolean translateLocale, String menuName,
113 jmolpopup = JmolPopup.newJmolPopup(viewer, translateLocale, menuName,
116 public synchronized void addSequence(SequenceI[] seq)
118 Vector v = new Vector();
119 for (int i = 0; i < sequence.length; i++)
120 v.addElement(sequence[i]);
122 for (int i = 0; i < seq.length; i++)
123 if (!v.contains(seq[i]))
124 v.addElement(seq[i]);
126 SequenceI[] tmp = new SequenceI[v.size()];