CursoMode added
[jalview.git] / src / jalview / gui / SeqCanvas.java
index 2b5995c..99447a4 100755 (executable)
@@ -34,8 +34,8 @@ import javax.swing.*;
  */\r
 public class SeqCanvas extends JComponent\r
 {\r
-    FeatureRenderer fr;\r
-    SequenceRenderer sr;\r
+    final FeatureRenderer fr;\r
+    final SequenceRenderer sr;\r
     BufferedImage img;\r
     Graphics2D gg;\r
     int imgWidth;\r
@@ -46,6 +46,11 @@ public class SeqCanvas extends JComponent
     int LABEL_WEST;\r
     int LABEL_EAST;\r
 \r
+\r
+    int cursorX = 0;\r
+    int cursorY = 0;\r
+\r
+\r
     /**\r
      * Creates a new SeqCanvas object.\r
      *\r
@@ -342,7 +347,7 @@ public class SeqCanvas extends JComponent
 \r
         if (pdbCanvas != null)\r
         {\r
-         pdbCanvas.updateSeqColours();\r
+           pdbCanvas.updateSeqColours();\r
         }\r
 \r
     }\r
@@ -431,11 +436,18 @@ public class SeqCanvas extends JComponent
         av.endRes = av.startRes + cWidth;\r
 \r
 \r
-        int endx = (startRes + cWidth) - 1;\r
+        int endx;\r
         int ypos = hgap;\r
 \r
         while ((ypos <= canvasHeight) && (startRes < av.alignment.getWidth()))\r
         {\r
+          endx = startRes + cWidth;\r
+\r
+          if (endx > al.getWidth())\r
+          {\r
+            endx = al.getWidth();\r
+          }\r
+\r
             g.setFont(av.getFont());\r
             g.setColor(Color.black);\r
 \r
@@ -472,12 +484,6 @@ public class SeqCanvas extends JComponent
                     cWidth * av.charWidth, (int) clip.getBounds().getHeight());\r
             }\r
 \r
-            if (av.vconsensus!=null && av.alignment.getWidth() >= av.vconsensus.size())\r
-            {\r
-              endx = av.vconsensus.size() - 2;\r
-            }\r
-\r
-\r
             drawPanel(g, startRes, endx, 0, al.getHeight(), ypos);\r
 \r
             if(av.showAnnotation)\r
@@ -486,7 +492,7 @@ public class SeqCanvas extends JComponent
               if(annotations==null)\r
                 annotations = new AnnotationPanel(av);\r
 \r
-              annotations.drawComponent( (Graphics2D) g, startRes, endx + 1);\r
+              annotations.drawComponent( (Graphics2D) g, startRes, endx);\r
               g.translate(0, -cHeight - ypos);\r
             }\r
             g.setClip(clip);\r
@@ -497,12 +503,6 @@ public class SeqCanvas extends JComponent
               ypos -= 3;\r
 \r
             startRes += cWidth;\r
-            endx = (startRes + cWidth) - 1;\r
-\r
-            if (endx > al.getWidth())\r
-            {\r
-                endx = al.getWidth();\r
-            }\r
         }\r
     }\r
 \r
@@ -522,35 +522,12 @@ public class SeqCanvas extends JComponent
      * DOCUMENT ME!\r
      *\r
      * @param g1 DOCUMENT ME!\r
-     * @param x1 DOCUMENT ME!\r
-     * @param x2 DOCUMENT ME!\r
-     * @param y1 DOCUMENT ME!\r
-     * @param y2 DOCUMENT ME!\r
-     * @param startx DOCUMENT ME!\r
-     * @param starty DOCUMENT ME!\r
+     * @param startRes DOCUMENT ME!\r
+     * @param endRes DOCUMENT ME!\r
+     * @param startSeq DOCUMENT ME!\r
+     * @param endSeq DOCUMENT ME!\r
      * @param offset DOCUMENT ME!\r
      */\r
-\r
-    float aaRatio = 2f/3f;\r
-    public void increaseAARatio()\r
-    {\r
-      aaRatio += .025;\r
-      if(aaRatio>1)\r
-        aaRatio = 1;\r
-\r
-      repaint();\r
-    }\r
-\r
-    public void decreaseAARation()\r
-    {\r
-      aaRatio -= .025;\r
-      if(aaRatio<0)\r
-        aaRatio = 0;\r
-\r
-      repaint();\r
-    }\r
-\r
-\r
     void drawPanel(Graphics g1, int startRes, int endRes,\r
                     int startSeq, int endSeq, int offset)\r
     {\r
@@ -621,9 +598,10 @@ public class SeqCanvas extends JComponent
                    int offset)\r
    {\r
 \r
-      sr.renderGaps(av.renderGaps);\r
+\r
       Graphics2D g = (Graphics2D) g1;\r
       g.setFont(av.getFont());\r
+      sr.prepare(g, av.renderGaps);\r
 \r
       SequenceI nextSeq;\r
 \r
@@ -633,15 +611,14 @@ public class SeqCanvas extends JComponent
         {\r
             nextSeq = av.alignment.getSequenceAt(i);\r
 \r
-            sr.drawSequence(g, nextSeq, av.alignment.findAllGroups(nextSeq),\r
+            sr.drawSequence(nextSeq, av.alignment.findAllGroups(nextSeq),\r
                             startRes, endRes,\r
                             offset + ( (i - startSeq) * av.charHeight));\r
 \r
             if (av.showSequenceFeatures)\r
             {\r
                 fr.drawSequence(g1, nextSeq, startRes, endRes,\r
-                    offset + ((i - startSeq) * av.charHeight), av.charWidth,\r
-                    av.charHeight);\r
+                    offset + ((i - startSeq) * av.charHeight));\r
             }\r
 \r
             /// Highlight search Results once all sequences have been drawn\r
@@ -655,10 +632,16 @@ public class SeqCanvas extends JComponent
                   sr.drawHighlightedText(nextSeq, visibleResults[r],\r
                                          visibleResults[r + 1],\r
                                          (visibleResults[r] - startRes) * av.charWidth,\r
-                                         offset + ( (i - startSeq) * av.charHeight),\r
-                                         av.charWidth, av.charHeight);\r
+                                         offset + ( (i - startSeq) * av.charHeight));\r
                 }\r
             }\r
+\r
+            if(av.cursorMode && cursorY==i\r
+               && cursorX>=startRes && cursorX<=endRes)\r
+            {\r
+              sr.drawCursor(nextSeq, cursorX, (cursorX - startRes) * av.charWidth,\r
+                            offset + ( (i - startSeq) * av.charHeight));\r
+            }\r
           }\r
 \r
         //\r