X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fstructure%2FStructureSelectionManager.java;h=35e0ea528872ec706ed2384ce077ea3ad6c71e5a;hb=9c00e25bfdf274009a471eba895f39e2fac4c0ac;hp=c4dda8b12abef205803f59cc48c05cb3b31988a5;hpb=4238e699a8b78d09bafad06020c2937b15b683c5;p=jalview.git diff --git a/src/jalview/structure/StructureSelectionManager.java b/src/jalview/structure/StructureSelectionManager.java index c4dda8b..35e0ea5 100644 --- a/src/jalview/structure/StructureSelectionManager.java +++ b/src/jalview/structure/StructureSelectionManager.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle * * This file is part of Jalview. * @@ -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,9 +511,12 @@ 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(listener instanceof SecondaryStructureListener){ + ((SecondaryStructureListener) listener).mouseOverSequence(seq,indexpos); + } } } } @@ -789,13 +797,24 @@ public class StructureSelectionManager */ public static void release(StructureSelectionManagerProvider jalviewLite) { - StructureSelectionManager mnger=(instances.get(jalviewLite)); - if (mnger!=null) +// synchronized (instances) { - instances.remove(jalviewLite); - try { - mnger.finalize(); - } catch (Throwable x){}; + if (instances == null) + { + return; + } + StructureSelectionManager mnger = (instances.get(jalviewLite)); + if (mnger != null) + { + instances.remove(jalviewLite); + try + { + mnger.finalize(); + } catch (Throwable x) + { + } + ; + } } }