Dont change ap font from treePanel
[jalview.git] / src / jalview / gui / SeqPanel.java
index b57305a..bc9adfe 100755 (executable)
@@ -179,7 +179,6 @@ public class SeqPanel extends JPanel implements MouseListener,
   {\r
     Vector tmp = new Vector();\r
     SequenceFeature[] features = sequence.getSequenceFeatures();\r
-\r
     if (features != null)\r
     {\r
       for (int i = 0; i < features.length; i++)\r
@@ -188,8 +187,8 @@ public class SeqPanel extends JPanel implements MouseListener,
             || !av.featuresDisplayed.containsKey(features[i].getType()))\r
           continue;\r
 \r
-        if ( (features[i].getBegin() <= sequence.findPosition(res)) &&\r
-            (features[i].getEnd() >= sequence.findPosition(res)))\r
+        if ( (features[i].getBegin() <= res) &&\r
+            (features[i].getEnd() >= res))\r
         {\r
           tmp.addElement(features[i]);\r
         }\r
@@ -287,6 +286,25 @@ public class SeqPanel extends JPanel implements MouseListener,
     {\r
       seqCanvas.cursorX += dx;\r
       seqCanvas.cursorY += dy;\r
+      if (av.hasHiddenColumns && !av.colSel.isVisible(seqCanvas.cursorX))\r
+      {\r
+        int original = seqCanvas.cursorX - dx;\r
+        int maxWidth = av.alignment.getWidth();\r
+\r
+        while(!av.colSel.isVisible(seqCanvas.cursorX)\r
+              && seqCanvas.cursorX<maxWidth\r
+              && seqCanvas.cursorX>0)\r
+        {\r
+          seqCanvas.cursorX += dx;\r
+        }\r
+\r
+        if(seqCanvas.cursorX>=maxWidth\r
+           || !av.colSel.isVisible(seqCanvas.cursorX) )\r
+        {\r
+          seqCanvas.cursorX = original;\r
+        }\r
+      }\r
+\r
       scrollToVisible();\r
     }\r
 \r
@@ -320,12 +338,12 @@ public class SeqPanel extends JPanel implements MouseListener,
         }\r
         if (!av.wrapAlignment)\r
         {\r
-          while (seqCanvas.cursorX < av.startRes)\r
+          while (seqCanvas.cursorX < av.colSel.adjustForHiddenColumns(av.startRes))\r
           {\r
             if (!ap.scrollRight(false))\r
               break;\r
           }\r
-          while (seqCanvas.cursorX > av.endRes)\r
+          while (seqCanvas.cursorX > av.colSel.adjustForHiddenColumns(av.endRes))\r
           {\r
             if (!ap.scrollRight(true))\r
               break;\r
@@ -558,7 +576,7 @@ public class SeqPanel extends JPanel implements MouseListener,
             tooltipText.setLength(6); // Cuts the buffer back to <html>\r
 \r
             SequenceFeature[] features = findFeaturesAtRes(\r
-                sequence.getDatasetSequence(), res);\r
+                sequence.getDatasetSequence(), sequence.findPosition(res));\r
 \r
             if(features!=null)\r
             {\r
@@ -649,11 +667,9 @@ public class SeqPanel extends JPanel implements MouseListener,
                 }\r
               }\r
 \r
-\r
               if(tooltipText.length()==6) // <html></html>\r
               {\r
-\r
-                setToolTipText("");\r
+                setToolTipText(null);\r
               }\r
               else\r
               {\r
@@ -662,7 +678,7 @@ public class SeqPanel extends JPanel implements MouseListener,
               }\r
             }\r
             else\r
-              setToolTipText("");\r
+              setToolTipText(null);\r
         }\r
     }\r
 \r
@@ -1202,17 +1218,35 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
     public void mouseClicked(MouseEvent evt)\r
     {\r
+      SequenceI sequence = av.alignment.getSequenceAt( findSeq(evt) );\r
       if(evt.getClickCount()>1)\r
       {\r
+        if (av.getSelectionGroup().getSize(false) == 1\r
+            && av.getSelectionGroup().getEndRes()\r
+            - av.getSelectionGroup().getStartRes() < 2)\r
+          av.setSelectionGroup(null);\r
 \r
         SequenceFeature[] features = findFeaturesAtRes(\r
-            av.alignment.getSequenceAt( findSeq(evt) ).getDatasetSequence(),\r
-            findRes(evt)\r
+            sequence.getDatasetSequence(),\r
+            sequence.findPosition( findRes(evt) )\r
             );\r
-        for(int f=0; f<features.length; f++)\r
-          System.out.println("SELECT: "+features[f].getType()+" "\r
-      +features[f].getBegin()+" "+features[f].getEnd());\r
 \r
+        if(features!=null && features.length>0)\r
+        {\r
+          SearchResults highlight = new SearchResults();\r
+          highlight.addResult(sequence,\r
+                              features[0].getBegin(),\r
+                              features[0].getEnd());\r
+          seqCanvas.highlightSearchResults(highlight);\r
+        }\r
+        if(features!=null && features.length>0)\r
+        {\r
+          seqCanvas.getFeatureRenderer().amendFeatures(\r
+              new SequenceI[]\r
+              {sequence}, features, false, ap);\r
+\r
+          seqCanvas.highlightSearchResults(null);\r
+        }\r
       }\r
     }\r
 \r
@@ -1412,11 +1446,16 @@ public class SeqPanel extends JPanel implements MouseListener,
                 stretchGroup.getWidth());\r
           }\r
 \r
+          if (stretchGroup.cs instanceof Blosum62ColourScheme\r
+              || stretchGroup.cs instanceof PIDColourScheme\r
+              || stretchGroup.cs.conservationApplied()\r
+              || stretchGroup.cs.getThreshold()>0)\r
+            stretchGroup.recalcConservation();\r
+\r
           if (stretchGroup.cs.conservationApplied())\r
           {\r
             SliderPanel.setConservationSlider(ap, stretchGroup.cs,\r
                                               stretchGroup.getName());\r
-            stretchGroup.recalcConservation();\r
           }\r
           else\r
           {\r
@@ -1449,7 +1488,7 @@ public class SeqPanel extends JPanel implements MouseListener,
             return;\r
        }\r
 \r
-        if(res> av.alignment.getWidth())\r
+        if(res>= av.alignment.getWidth())\r
         {\r
           res = av.alignment.getWidth()-1;\r
         }\r