output jsexception message
[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           
33           System.err.println("JalviewLite javascript error: Couldn't send mouseOver with handler '"+_listener+"'");
34           if (ex instanceof netscape.javascript.JSException)
35           {
36             System.err.println("Javascript Exception: "+((netscape.javascript.JSException)ex).getMessage());
37           }
38           else {
39             ex.printStackTrace();
40           };
41       }
42     }
43   }
44   
45   public MouseOverListener(JalviewLite applet, AlignFrame af, String listener)
46   {
47     this.jvlite = applet;
48     _af = af;
49     _listener = listener;
50   }
51   @Override
52   public AlignFrame getAlignFrame()
53   {
54     return _af;
55   }
56
57   @Override
58   public String getListenerFunction()
59   {
60     return _listener;
61   }
62
63
64 }