Colour text
authoramwaterhouse <Andrew Waterhouse>
Mon, 13 Nov 2006 11:11:22 +0000 (11:11 +0000)
committeramwaterhouse <Andrew Waterhouse>
Mon, 13 Nov 2006 11:11:22 +0000 (11:11 +0000)
src/jalview/gui/RotatableCanvas.java
src/jalview/gui/SequenceRenderer.java

index 458d971..b30dc34 100755 (executable)
@@ -397,13 +397,13 @@ public class RotatableCanvas extends JPanel implements MouseListener,
                 halfheight;\r
             float z = sp.coord[1] - centre[2];\r
 \r
-            if (sp.sequence.getColor() == Color.black)\r
+            if (av.getSequenceColour(sp.sequence) == Color.black)\r
             {\r
                 g.setColor(Color.white);\r
             }\r
             else\r
             {\r
-                g.setColor(sp.sequence.getColor());\r
+                g.setColor(av.getSequenceColour(sp.sequence));\r
             }\r
 \r
             if (av.getSelectionGroup() != null)\r
index 739187b..8d7755c 100755 (executable)
@@ -227,10 +227,14 @@ public class SequenceRenderer
 \r
         if(end+1>=seq.getLength())\r
           end = seq.getLength()-1;\r
-        graphics.setColor(Color.black);\r
+        graphics.setColor(av.textColour);\r
 \r
 \r
-        if(monospacedFont && av.showText && allGroups.length==0 && !av.getColourText())\r
+        if(monospacedFont\r
+           && av.showText\r
+           && allGroups.length==0\r
+           && !av.getColourText()\r
+           && av.thresholdTextColour==0)\r
         {\r
           if(av.renderGaps)\r
           graphics.drawString(seq.getSequence(start, end + 1), 0, y1);\r
@@ -242,9 +246,11 @@ public class SequenceRenderer
         }\r
         else\r
         {\r
+          boolean getboxColour = false;\r
           for (int i = start; i <= end; i++)\r
           {\r
-            graphics.setColor(Color.black);\r
+            graphics.setColor(av.textColour);\r
+            getboxColour = false;\r
             s = seq.getCharAt(i);\r
             if (!renderGaps && jalview.util.Comparison.isGap(s))\r
             {\r
@@ -258,11 +264,26 @@ public class SequenceRenderer
                 continue;\r
               }\r
 \r
-              if (currentSequenceGroup.getColourText())\r
+              if (currentSequenceGroup.thresholdTextColour > 0\r
+                  || currentSequenceGroup.getColourText())\r
               {\r
+                getboxColour = true;\r
                 getBoxColour(currentSequenceGroup.cs, seq, i);\r
-                graphics.setColor(resBoxColour.darker());\r
+\r
+                if (currentSequenceGroup.getColourText())\r
+                  graphics.setColor(resBoxColour.darker());\r
+\r
+                if (currentSequenceGroup.thresholdTextColour > 0)\r
+                {\r
+                  if (resBoxColour.getRed() +\r
+                      resBoxColour.getBlue() +\r
+                      resBoxColour.getGreen() < currentSequenceGroup.thresholdTextColour)\r
+                    graphics.setColor(currentSequenceGroup.textColour2);\r
+                }\r
               }\r
+              else\r
+                  graphics.setColor(currentSequenceGroup.textColour);\r
+\r
             }\r
             else\r
             {\r
@@ -273,6 +294,7 @@ public class SequenceRenderer
 \r
               if (av.getColourText())\r
               {\r
+                getboxColour = true;\r
                 getBoxColour(av.globalColourScheme, seq, i);\r
 \r
                 if (av.getShowBoxes())\r
@@ -284,17 +306,28 @@ public class SequenceRenderer
                   graphics.setColor(resBoxColour);\r
                 }\r
               }\r
+\r
+              if (av.thresholdTextColour > 0)\r
+              {\r
+                if (!getboxColour)\r
+                  getBoxColour(av.globalColourScheme, seq, i);\r
+\r
+                if (resBoxColour.getRed() +\r
+                    resBoxColour.getBlue() +\r
+                    resBoxColour.getGreen() < av.thresholdTextColour)\r
+                  graphics.setColor(av.textColour2);\r
+              }\r
+\r
             }\r
 \r
-            charOffset = (av.charWidth - fm.charWidth(s)) / 2;\r
 \r
-          //  System.out.print(s);\r
-            graphics.drawString(String.valueOf(s),\r
-                                charOffset + av.charWidth * (i - start),\r
-                                y1);\r
+\r
+          charOffset = (av.charWidth - fm.charWidth(s)) / 2;\r
+          graphics.drawString(String.valueOf(s),\r
+                              charOffset + av.charWidth * (i - start),\r
+                              y1);\r
 \r
           }\r
-        //  System.out.println("\n");\r
         }\r
     }\r
 \r