X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjavascript%2FMouseOverStructureListener.java;h=28e2ced1d2ccde94fa027564eb09efc4d786f359;hb=418006c3714eb8da78234660698231597eb90fb1;hp=607193317fb359e82ed041342c5ee71581e1be88;hpb=fbb0bb25258ea06802fd971ef94a89687a382996;p=jalview.git diff --git a/src/jalview/javascript/MouseOverStructureListener.java b/src/jalview/javascript/MouseOverStructureListener.java index 6071933..28e2ced 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.FeatureRenderer; +import jalview.api.JalviewApp; 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; - String[] modelSet; + public String[] modelSet; - public MouseOverStructureListener(JalviewLite jalviewLite, - String listener, String[] modelList) + public MouseOverStructureListener(JalviewApp app, String listener, + String[] modelList, boolean debug) { - super(jalviewLite); + super(app, debug); _listenerfn = listener; modelSet = modelList; if (modelSet != null) @@ -165,21 +165,22 @@ public class MouseOverStructureListener extends JSFunctionExec } @Override - public synchronized void updateColours(Object srce) + public synchronized void updateColours(Object source) { - final Object source = srce; StructureSelectionManager ssm = StructureSelectionManager - .getStructureSelectionManager(jvlite); + .getStructureSelectionManager( + jvlite.getStructureSelectionManagerProvider()); - if (JalviewLite.debug) + if (debug) { System.err.println( this.getClass().getName() + " modelSet[0]: " + modelSet[0]); ssm.reportMapping(); } - if (source instanceof jalview.api.AlignmentViewPanel) + if (source instanceof AlignmentViewPanel) { + AlignmentViewPanel panel = (AlignmentViewPanel) source; SequenceI[][] sequence = new SequenceI[modelSet.length][]; for (int m = 0; m < modelSet.length; m++) { @@ -203,25 +204,20 @@ public class MouseOverStructureListener extends JSFunctionExec // } } - 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; + SequenceRenderer sr = panel.getSequenceRenderer(); + AlignViewportI vp = panel.getAlignViewport(); + jalview.renderer.seqfeatures.FeatureRenderer fr = vp + .isShowSequenceFeatures() ? jvlite.getNewFeatureRenderer(vp) + : null; if (fr != null) { - ((jalview.appletgui.FeatureRenderer) fr).transferSettings( - ((jalview.appletgui.AlignmentPanel) source) - .getFeatureRenderer()); + fr.transferSettings(panel.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); @@ -237,7 +233,6 @@ public class MouseOverStructureListener extends JSFunctionExec pdbfn.add(ccset.mapping); } - String mclass, mhandle; String ccomandset[] = new String[sz]; sz = 0; for (String[] ccset : ccomands) @@ -245,28 +240,16 @@ public class MouseOverStructureListener extends JSFunctionExec System.arraycopy(ccset, 0, ccomandset, sz, ccset.length); sz += ccset.length; } - if (jvlite.isJsMessageSetChanged(mclass = "colourstruct", - mhandle = ((jalview.appletgui.AlignmentPanel) source).av - .getViewId(), - ccomandset)) + String mclass = "colourstruct"; + String mhandle = vp.getViewId(); + if (isJsMessageSetChanged(mclass, mhandle, ccomandset, jvlite)) { - jvlite.setJsMessageSet(mclass, mhandle, ccomandset); + setJsMessageSet(mclass, mhandle, ccomandset, jvlite); // and notify javascript handler - String st[] = new String[] { "colourstruct", - "" + ((jalview.appletgui.AlignmentPanel) source).av.getViewId(), + String st[] = new String[] { mclass, mhandle, "" + ccomandset.length, jvlite.arrayToSeparatorList( pdbfn.toArray(new String[pdbfn.size()])) }; - 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(); - - } + executeJavascriptFunction(true, st); } /* * new Thread(new Runnable() { public void run() { // and send to @@ -283,6 +266,7 @@ public class MouseOverStructureListener extends JSFunctionExec */ } + jvlite.updateColoursFromMouseOver(source, this); } @Override @@ -312,4 +296,19 @@ 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(); + + } + } + }