java side javascript callback enactors JAL-469
[jalview.git] / src / jalview / javascript / MouseOverListener.java
1 package jalview.javascript;
2
3 import jalview.appletgui.AlignFrame;
4 import jalview.bin.JalviewLite;
5 import jalview.datamodel.SequenceI;
6 import jalview.structure.VamsasListener;
7 import netscape.javascript.JSObject;
8
9 public class MouseOverListener implements VamsasListener,JsCallBack
10 {
11   JalviewLite jvlite;
12   AlignFrame _af;
13   String _listener;
14   SequenceI last = null;
15
16   int i = -1;
17
18   public void mouseOver(SequenceI seq, int index)
19   {
20     if (seq != last || i != index)
21     {
22         // this should really be a trace message.
23         // Cache.log.debug("Mouse over " + v.getId() + " bound to "
24         // + seq + " at " + index);
25         last = seq;
26         i = index;
27         try {
28         JSObject js = JSObject.getWindow(jvlite);
29         js.call(_listener, new Object[] { _af, seq.getDisplayId(false), ""+(1+i)});
30         } catch (Exception ex)
31         {
32           System.err.println("JalviewLite javascript error: Couldn't send mouseOver with handler '"+_listener+"'");
33           ex.printStackTrace();
34       }
35     }
36   }
37   
38   public MouseOverListener(JalviewLite applet, AlignFrame af, String listener)
39   {
40     this.jvlite = applet;
41     _af = af;
42     _listener = listener;
43   }
44   @Override
45   public AlignFrame getAlignFrame()
46   {
47     return _af;
48   }
49
50   @Override
51   public String getListenerFunction()
52   {
53     return _listener;
54   }
55
56
57 }