c2ae6ef4801e387c28b68b31677c1d5530b44d3a
[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 extends JSFunctionExec implements VamsasListener,JsCallBack
10 {
11   AlignFrame _af;
12   String _listener;
13   SequenceI last = null;
14
15   int i = -1;
16
17   public void mouseOver(SequenceI seq, int index)
18   {
19     if (seq != last || i != index)
20     {
21         // this should really be a trace message.
22         // Cache.log.debug("Mouse over " + v.getId() + " bound to "
23         // + seq + " at " + index);
24         last = seq;
25         i = index;
26         try {
27         executeJavascriptFunction(_listener, new Object[] { _af, seq.getDisplayId(false), ""+(1+i)});
28         } catch (Exception ex)
29         {
30           
31           System.err.println("JalviewLite javascript error: Couldn't send mouseOver with handler '"+_listener+"'");
32           if (ex instanceof netscape.javascript.JSException)
33           {
34             System.err.println("Javascript Exception: "+((netscape.javascript.JSException)ex).getMessage());
35           }
36           ex.printStackTrace();
37       }
38     }
39   }
40   
41   public MouseOverListener(JalviewLite applet, AlignFrame af, String listener)
42   {
43     super(applet);
44     _af = af;
45     _listener = listener;
46   }
47   @Override
48   public AlignFrame getAlignFrame()
49   {
50     return _af;
51   }
52
53   @Override
54   public String getListenerFunction()
55   {
56     return _listener;
57   }
58
59
60 }