JAL-34 mouse over ruler in one alignment highlights location of aligned positions...
[jalview.git] / src / jalview / gui / ScalePanel.java
index 4a42861..ba71716 100755 (executable)
@@ -40,15 +40,23 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.ToolTipManager;
 
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AlignedCodonFrame;
+import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceGroup;
 import jalview.renderer.ScaleRenderer;
 import jalview.renderer.ScaleRenderer.ScaleMark;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MappingUtils;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 import jalview.viewmodel.ViewportListenerI;
 import jalview.viewmodel.ViewportRanges;
+import jalview.workers.AlignmentComparisonThread;
 
 /**
  * The panel containing the sequence ruler (when not in wrapped mode), and
@@ -392,6 +400,21 @@ public class ScalePanel extends JPanel
     final int res = ap.getSeqPanel().findAlignmentColumn(evt);
 
     highlightAllStructPos(res);
+    if (av.getCalcManager().getRegisteredWorkersOfClass(AlignmentComparisonThread.class)!=null)
+    {
+      AlignmentI alignment = av.getAlignment();
+      AlignViewportI codingComplement = av.getCodingComplement();
+      List<AlignedCodonFrame> ourMappings = alignment
+              .getCodonFrames();
+      SearchResultsI mappedPos = MappingUtils.allMappedRegionsForColumn(res,
+              ourMappings, alignment.getSequences(),codingComplement.getAlignment().getSequences(),
+               alignment.getGapCharacter());
+      if (mappedPos.getCount()>0)
+      {
+        Desktop.getAlignFrameFor(codingComplement).alignPanel.getSeqPanel().seqCanvas.highlightSearchResults(mappedPos,true);
+      }
+      
+    }
     if (!av.hasHiddenColumns())
     {
       return;