X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjavascript%2FMouseOverStructureListener.java;h=607193317fb359e82ed041342c5ee71581e1be88;hb=4f77328104498504339216829abf5ea87e2791ec;hp=28e2ced1d2ccde94fa027564eb09efc4d786f359;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/src/jalview/javascript/MouseOverStructureListener.java b/src/jalview/javascript/MouseOverStructureListener.java index 28e2ced..6071933 100644 --- a/src/jalview/javascript/MouseOverStructureListener.java +++ b/src/jalview/javascript/MouseOverStructureListener.java @@ -20,11 +20,11 @@ */ package jalview.javascript; -import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; -import jalview.api.JalviewApp; +import jalview.api.FeatureRenderer; import jalview.api.SequenceRenderer; import jalview.appletgui.AlignFrame; +import jalview.bin.JalviewLite; import jalview.datamodel.SequenceI; import jalview.ext.jmol.JmolCommands; import jalview.structure.AtomSpec; @@ -76,12 +76,12 @@ public class MouseOverStructureListener extends JSFunctionExec String _listenerfn; - public String[] modelSet; + String[] modelSet; - public MouseOverStructureListener(JalviewApp app, String listener, - String[] modelList, boolean debug) + public MouseOverStructureListener(JalviewLite jalviewLite, + String listener, String[] modelList) { - super(app, debug); + super(jalviewLite); _listenerfn = listener; modelSet = modelList; if (modelSet != null) @@ -165,22 +165,21 @@ public class MouseOverStructureListener extends JSFunctionExec } @Override - public synchronized void updateColours(Object source) + public synchronized void updateColours(Object srce) { + final Object source = srce; StructureSelectionManager ssm = StructureSelectionManager - .getStructureSelectionManager( - jvlite.getStructureSelectionManagerProvider()); + .getStructureSelectionManager(jvlite); - if (debug) + if (JalviewLite.debug) { System.err.println( this.getClass().getName() + " modelSet[0]: " + modelSet[0]); ssm.reportMapping(); } - if (source instanceof AlignmentViewPanel) + if (source instanceof jalview.api.AlignmentViewPanel) { - AlignmentViewPanel panel = (AlignmentViewPanel) source; SequenceI[][] sequence = new SequenceI[modelSet.length][]; for (int m = 0; m < modelSet.length; m++) { @@ -204,20 +203,25 @@ public class MouseOverStructureListener extends JSFunctionExec // } } - SequenceRenderer sr = panel.getSequenceRenderer(); - AlignViewportI vp = panel.getAlignViewport(); - jalview.renderer.seqfeatures.FeatureRenderer fr = vp - .isShowSequenceFeatures() ? jvlite.getNewFeatureRenderer(vp) - : null; + SequenceRenderer sr = ((jalview.appletgui.AlignmentPanel) source) + .getSequenceRenderer(); + FeatureRenderer fr = ((jalview.appletgui.AlignmentPanel) source).av + .isShowSequenceFeatures() + ? new jalview.appletgui.FeatureRenderer( + ((jalview.appletgui.AlignmentPanel) source).av) + : null; if (fr != null) { - fr.transferSettings(panel.getFeatureRenderer()); + ((jalview.appletgui.FeatureRenderer) fr).transferSettings( + ((jalview.appletgui.AlignmentPanel) source) + .getFeatureRenderer()); } + ; // Form a colour command from the given alignment panel for each distinct // structure - ArrayList ccomands = new ArrayList<>(); - ArrayList pdbfn = new ArrayList<>(); + ArrayList ccomands = new ArrayList(); + ArrayList pdbfn = new ArrayList(); StructureMappingcommandSet[] colcommands = JmolCommands .getColourBySequenceCommand(ssm, modelSet, sequence, sr, (AlignmentViewPanel) source); @@ -233,6 +237,7 @@ public class MouseOverStructureListener extends JSFunctionExec pdbfn.add(ccset.mapping); } + String mclass, mhandle; String ccomandset[] = new String[sz]; sz = 0; for (String[] ccset : ccomands) @@ -240,16 +245,28 @@ public class MouseOverStructureListener extends JSFunctionExec System.arraycopy(ccset, 0, ccomandset, sz, ccset.length); sz += ccset.length; } - String mclass = "colourstruct"; - String mhandle = vp.getViewId(); - if (isJsMessageSetChanged(mclass, mhandle, ccomandset, jvlite)) + if (jvlite.isJsMessageSetChanged(mclass = "colourstruct", + mhandle = ((jalview.appletgui.AlignmentPanel) source).av + .getViewId(), + ccomandset)) { - setJsMessageSet(mclass, mhandle, ccomandset, jvlite); + jvlite.setJsMessageSet(mclass, mhandle, ccomandset); // and notify javascript handler - String st[] = new String[] { mclass, mhandle, + String st[] = new String[] { "colourstruct", + "" + ((jalview.appletgui.AlignmentPanel) source).av.getViewId(), "" + ccomandset.length, jvlite.arrayToSeparatorList( pdbfn.toArray(new String[pdbfn.size()])) }; - executeJavascriptFunction(true, st); + try + { + executeJavascriptFunction(true, _listenerfn, st); + } catch (Exception ex) + { + System.err.println("Couldn't execute callback with " + _listenerfn + + " using args { " + st[0] + ", " + st[1] + ", " + st[2] + + "," + st[3] + "}"); // + ","+st[4]+"\n"); + ex.printStackTrace(); + + } } /* * new Thread(new Runnable() { public void run() { // and send to @@ -266,7 +283,6 @@ public class MouseOverStructureListener extends JSFunctionExec */ } - jvlite.updateColoursFromMouseOver(source, this); } @Override @@ -296,19 +312,4 @@ public class MouseOverStructureListener extends JSFunctionExec return true; } - public void executeJavascriptFunction(boolean b, String[] st) - { - try - { - executeJavascriptFunction(true, _listenerfn, st); - } catch (Exception ex) - { - System.err.println("Couldn't execute callback with " + _listenerfn - + " using args { " + st[0] + ", " + st[1] + ", " + st[2] + "," - + st[3] + "}"); // + ","+st[4]+"\n"); - ex.printStackTrace(); - - } - } - }