1 package jalview.javascript;
3 import java.util.Vector;
5 import jalview.appletgui.AlignFrame;
6 import jalview.bin.JalviewLite;
7 import jalview.datamodel.SequenceI;
8 import jalview.structure.VamsasListener;
9 import jalview.structure.VamsasSource;
10 import netscape.javascript.JSObject;
12 public class MouseOverListener extends JSFunctionExec implements
13 VamsasListener, JsCallBack
19 SequenceI last = null;
23 public void mouseOver(SequenceI seq, int index, VamsasSource source)
25 if (seq != last || i != index)
27 // this should really be a trace message.
28 // Cache.log.debug("Mouse over " + v.getId() + " bound to "
29 // + seq + " at " + index);
32 AlignFrame src = null;
37 if (source instanceof jalview.appletgui.AlignViewport
38 && ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame.viewport == source)
40 // should be valid if it just generated an event!
41 src = ((jalview.appletgui.AlignViewport) source).applet.currentAlignFrame;
44 // TODO: ensure that if '_af' is specified along with a handler function, then only events from that alignFrame are sent to that function
46 executeJavascriptFunction(_listener, new Object[]
47 { src, seq.getDisplayId(false), "" + (1 + i), ""+seq.findPosition(i) });
48 } catch (Exception ex)
52 .println("JalviewLite javascript error: Couldn't send mouseOver with handler '"
54 if (ex instanceof netscape.javascript.JSException)
56 System.err.println("Javascript Exception: "
57 + ((netscape.javascript.JSException) ex).getMessage());
64 public MouseOverListener(JalviewLite applet, AlignFrame af,
73 public AlignFrame getAlignFrame()
79 public String getListenerFunction()