From d98019da2b9c4babbd0d981579a90adf11e9911a Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 2 Mar 2012 12:23:06 +0000 Subject: [PATCH] efficiency, and ensure mouseover messages originating from a source are not broadcast to itself --- .../structure/StructureSelectionManager.java | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/jalview/structure/StructureSelectionManager.java b/src/jalview/structure/StructureSelectionManager.java index 870a800..35e0ea5 100644 --- a/src/jalview/structure/StructureSelectionManager.java +++ b/src/jalview/structure/StructureSelectionManager.java @@ -433,9 +433,14 @@ public class StructureSelectionManager int atomNo = 0; for (int i = 0; i < listeners.size(); i++) { - if (listeners.elementAt(i) instanceof StructureListener) + Object listener=listeners.elementAt(i); + if (listener==source) { - sl = (StructureListener) listeners.elementAt(i); + continue; + } + if (listener instanceof StructureListener) + { + sl = (StructureListener) listener; if (mappings == null) { continue; @@ -458,7 +463,7 @@ public class StructureSelectionManager else { if (relaySeqMappings && hasSequenceListeners - && listeners.elementAt(i) instanceof SequenceListener) + && listener instanceof SequenceListener) { // DEBUG // System.err.println("relay Seq " + seq.getDisplayId(false) + " " + @@ -493,11 +498,11 @@ public class StructureSelectionManager } if (hasSequenceListeners) { - ((SequenceListener) listeners.elementAt(i)) + ((SequenceListener) listener) .highlightSequence(results); } } - else if (listeners.elementAt(i) instanceof VamsasListener + else if (listener instanceof VamsasListener && !handlingVamsasMo) { // DEBUG @@ -506,11 +511,11 @@ public class StructureSelectionManager // index); // pass the mouse over and absolute position onto the // VamsasListener(s) - ((VamsasListener) listeners.elementAt(i)).mouseOver(seq, + ((VamsasListener) listener).mouseOver(seq, indexpos, source); } - else if(listeners.elementAt(i) instanceof SecondaryStructureListener){ - ((SecondaryStructureListener) listeners.elementAt(i)).mouseOverSequence(seq,indexpos); + else if(listener instanceof SecondaryStructureListener){ + ((SecondaryStructureListener) listener).mouseOverSequence(seq,indexpos); } } } -- 1.7.10.2