refactor to allow distinct StructureSelectionManager instances for
[jalview.git] / src / jalview / javascript / MouseOverStructureListener.java
index 2f28820..c1d3a40 100644 (file)
@@ -113,7 +113,7 @@ public class MouseOverStructureListener extends JSFunctionExec implements
   {\r
     final Object source = srce;\r
     StructureSelectionManager ssm = StructureSelectionManager\r
-            .getStructureSelectionManager();\r
+            .getStructureSelectionManager(jvlite);\r
     // if (jvlite.debug)\r
     // {\r
     // ssm.reportMapping();\r
@@ -160,23 +160,28 @@ public class MouseOverStructureListener extends JSFunctionExec implements
       final String[] colcommands = JmolCommands.getColourBySequenceCommand(\r
               ssm, modelSet, sequence, sr, fr,\r
               ((AlignmentViewPanel) source).getAlignment());\r
+      if (colcommands==null)\r
+      {\r
+        // \r
+        return;\r
+      }\r
       String mclass,mhandle;\r
       if (jvlite.isJsMessageSetChanged(mclass="colourstruct",mhandle=((jalview.appletgui.AlignmentPanel) source).av\r
               .getViewId(), colcommands)) {\r
       jvlite.setJsMessageSet(mclass, mhandle , colcommands);\r
       // and notify javascript handler\r
-      String st[] = new String[0];\r
+      String st[] = new String[]\r
+                                                  {\r
+              "colourstruct",\r
+              ""\r
+                      + ((jalview.appletgui.AlignmentPanel) source).av\r
+                              .getViewId(), ""+colcommands.length, ""+(colcommands[0]!=null ? colcommands[0].length() : 0)};\r
       try\r
       {\r
         executeJavascriptFunction(\r
                 true,\r
-                _listenerfn,\r
-                st = new String[]\r
-                {\r
-                    "colourstruct",\r
-                    ""\r
-                            + ((jalview.appletgui.AlignmentPanel) source).av\r
-                                    .getViewId(), ""+colcommands.length, "" });\r
+                _listenerfn,st\r
+);\r
       } catch (Exception ex)\r
       {\r
         System.err.println("Couldn't execute callback with "\r
@@ -243,9 +248,15 @@ public class MouseOverStructureListener extends JSFunctionExec implements
     return _listenerfn;\r
   }\r
 \r
+  public void finalise()\r
+  {\r
+    jvlite=null;\r
+    super.finalize();\r
+  }\r
   @Override\r
   public void releaseReferences(Object svl)\r
   {\r
+    \r
     // TODO Auto-generated method stub\r
 \r
   }\r