fix for recovery of dna/protein sequence mappings in jar file (mantis bug id 40124)
[jalview.git] / src / jalview / gui / SequenceRenderer.java
index 25bcb6d..a3dd5a6 100755 (executable)
@@ -25,26 +25,35 @@ import jalview.schemes.*;
 
 /**
  * DOCUMENT ME!
- *
+ * 
  * @author $author$
  * @version $Revision$
  */
 public class SequenceRenderer
 {
   AlignViewport av;
+
   FontMetrics fm;
+
   boolean renderGaps = true;
+
   SequenceGroup currentSequenceGroup = null;
+
   SequenceGroup[] allGroups = null;
+
   Color resBoxColour;
+
   Graphics graphics;
+
   boolean monospacedFont;
+
   boolean forOverview = false;
 
   /**
    * Creates a new SequenceRenderer object.
-   *
-   * @param av DOCUMENT ME!
+   * 
+   * @param av
+   *                DOCUMENT ME!
    */
   public SequenceRenderer(AlignViewport av)
   {
@@ -53,8 +62,9 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param b DOCUMENT ME!
+   * 
+   * @param b
+   *                DOCUMENT ME!
    */
   public void prepare(Graphics g, boolean renderGaps)
   {
@@ -64,9 +74,7 @@ public class SequenceRenderer
     // If EPS graphics, stringWidth will be a double, not an int
     double dwidth = fm.getStringBounds("M", g).getWidth();
 
-    monospacedFont =
-        (dwidth == fm.getStringBounds("|", g).getWidth()
-         && (float) av.charWidth == dwidth);
+    monospacedFont = (dwidth == fm.getStringBounds("|", g).getWidth() && (float) av.charWidth == dwidth);
 
     this.renderGaps = renderGaps;
   }
@@ -92,10 +100,13 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param cs DOCUMENT ME!
-   * @param seq DOCUMENT ME!
-   * @param i DOCUMENT ME!
+   * 
+   * @param cs
+   *                DOCUMENT ME!
+   * @param seq
+   *                DOCUMENT ME!
+   * @param i
+   *                DOCUMENT ME!
    */
   void getBoxColour(ColourSchemeI cs, SequenceI seq, int i)
   {
@@ -103,7 +114,8 @@ public class SequenceRenderer
     {
       resBoxColour = cs.findColour(seq.getCharAt(i), i);
     }
-    else if (forOverview && !jalview.util.Comparison.isGap(seq.getCharAt(i)))
+    else if (forOverview
+            && !jalview.util.Comparison.isGap(seq.getCharAt(i)))
     {
       resBoxColour = Color.lightGray;
     }
@@ -115,19 +127,28 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param g DOCUMENT ME!
-   * @param seq DOCUMENT ME!
-   * @param sg DOCUMENT ME!
-   * @param start DOCUMENT ME!
-   * @param end DOCUMENT ME!
-   * @param x1 DOCUMENT ME!
-   * @param y1 DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param g
+   *                DOCUMENT ME!
+   * @param seq
+   *                DOCUMENT ME!
+   * @param sg
+   *                DOCUMENT ME!
+   * @param start
+   *                DOCUMENT ME!
+   * @param end
+   *                DOCUMENT ME!
+   * @param x1
+   *                DOCUMENT ME!
+   * @param y1
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
-  public void drawSequence(SequenceI seq, SequenceGroup[] sg,
-                           int start, int end, int y1)
+  public void drawSequence(SequenceI seq, SequenceGroup[] sg, int start,
+          int end, int y1)
   {
     allGroups = sg;
 
@@ -141,16 +162,24 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param seq DOCUMENT ME!
-   * @param start DOCUMENT ME!
-   * @param end DOCUMENT ME!
-   * @param x1 DOCUMENT ME!
-   * @param y1 DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param seq
+   *                DOCUMENT ME!
+   * @param start
+   *                DOCUMENT ME!
+   * @param end
+   *                DOCUMENT ME!
+   * @param x1
+   *                DOCUMENT ME!
+   * @param y1
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
-  public synchronized void drawBoxes(SequenceI seq, int start, int end, int y1)
+  public synchronized void drawBoxes(SequenceI seq, int start, int end,
+          int y1)
   {
     int i = start;
     int length = seq.getLength();
@@ -185,7 +214,7 @@ public class SequenceRenderer
         if (tempColour != null)
         {
           graphics.fillRect(av.charWidth * (curStart - start), y1,
-                            curWidth, av.charHeight);
+                  curWidth, av.charHeight);
         }
 
         graphics.setColor(resBoxColour);
@@ -203,20 +232,27 @@ public class SequenceRenderer
     }
 
     graphics.fillRect(av.charWidth * (curStart - start), y1, curWidth,
-                      av.charHeight);
+            av.charHeight);
 
   }
 
   /**
    * DOCUMENT ME!
-   *
-   * @param seq DOCUMENT ME!
-   * @param start DOCUMENT ME!
-   * @param end DOCUMENT ME!
-   * @param x1 DOCUMENT ME!
-   * @param y1 DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param seq
+   *                DOCUMENT ME!
+   * @param start
+   *                DOCUMENT ME!
+   * @param end
+   *                DOCUMENT ME!
+   * @param x1
+   *                DOCUMENT ME!
+   * @param y1
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
   public void drawText(SequenceI seq, int start, int end, int y1)
   {
@@ -230,11 +266,8 @@ public class SequenceRenderer
     }
     graphics.setColor(av.textColour);
 
-    if (monospacedFont
-        && av.showText
-        && allGroups.length == 0
-        && !av.getColourText()
-        && av.thresholdTextColour == 0)
+    if (monospacedFont && av.showText && allGroups.length == 0
+            && !av.getColourText() && av.thresholdTextColour == 0)
     {
       if (av.renderGaps)
       {
@@ -243,8 +276,8 @@ public class SequenceRenderer
       else
       {
         char gap = av.getGapCharacter();
-        graphics.drawString(seq.getSequenceAsString(start, end + 1).replace(gap,
-            ' '), 0, y1);
+        graphics.drawString(seq.getSequenceAsString(start, end + 1)
+                .replace(gap, ' '), 0, y1);
       }
     }
     else
@@ -268,7 +301,7 @@ public class SequenceRenderer
           }
 
           if (currentSequenceGroup.thresholdTextColour > 0
-              || currentSequenceGroup.getColourText())
+                  || currentSequenceGroup.getColourText())
           {
             getboxColour = true;
             getBoxColour(currentSequenceGroup.cs, seq, i);
@@ -280,10 +313,8 @@ public class SequenceRenderer
 
             if (currentSequenceGroup.thresholdTextColour > 0)
             {
-              if (resBoxColour.getRed() +
-                  resBoxColour.getBlue() +
-                  resBoxColour.getGreen() <
-                  currentSequenceGroup.thresholdTextColour)
+              if (resBoxColour.getRed() + resBoxColour.getBlue()
+                      + resBoxColour.getGreen() < currentSequenceGroup.thresholdTextColour)
               {
                 graphics.setColor(currentSequenceGroup.textColour2);
               }
@@ -324,9 +355,8 @@ public class SequenceRenderer
               getBoxColour(av.globalColourScheme, seq, i);
             }
 
-            if (resBoxColour.getRed() +
-                resBoxColour.getBlue() +
-                resBoxColour.getGreen() < av.thresholdTextColour)
+            if (resBoxColour.getRed() + resBoxColour.getBlue()
+                    + resBoxColour.getGreen() < av.thresholdTextColour)
             {
               graphics.setColor(av.textColour2);
             }
@@ -335,9 +365,8 @@ public class SequenceRenderer
         }
 
         charOffset = (av.charWidth - fm.charWidth(s)) / 2;
-        graphics.drawString(String.valueOf(s),
-                            charOffset + av.charWidth * (i - start),
-                            y1);
+        graphics.drawString(String.valueOf(s), charOffset + av.charWidth
+                * (i - start), y1);
 
       }
     }
@@ -345,9 +374,10 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param res DOCUMENT ME!
-   *
+   * 
+   * @param res
+   *                DOCUMENT ME!
+   * 
    * @return DOCUMENT ME!
    */
   boolean inCurrentSequenceGroup(int res)
@@ -359,8 +389,8 @@ public class SequenceRenderer
 
     for (int i = 0; i < allGroups.length; i++)
     {
-      if ( (allGroups[i].getStartRes() <= res) &&
-          (allGroups[i].getEndRes() >= res))
+      if ((allGroups[i].getStartRes() <= res)
+              && (allGroups[i].getEndRes() >= res))
       {
         currentSequenceGroup = allGroups[i];
 
@@ -373,22 +403,30 @@ public class SequenceRenderer
 
   /**
    * DOCUMENT ME!
-   *
-   * @param seq DOCUMENT ME!
-   * @param start DOCUMENT ME!
-   * @param end DOCUMENT ME!
-   * @param x1 DOCUMENT ME!
-   * @param y1 DOCUMENT ME!
-   * @param width DOCUMENT ME!
-   * @param height DOCUMENT ME!
+   * 
+   * @param seq
+   *                DOCUMENT ME!
+   * @param start
+   *                DOCUMENT ME!
+   * @param end
+   *                DOCUMENT ME!
+   * @param x1
+   *                DOCUMENT ME!
+   * @param y1
+   *                DOCUMENT ME!
+   * @param width
+   *                DOCUMENT ME!
+   * @param height
+   *                DOCUMENT ME!
    */
-  public void drawHighlightedText(SequenceI seq, int start, int end, int x1,
-                                  int y1)
+  public void drawHighlightedText(SequenceI seq, int start, int end,
+          int x1, int y1)
   {
     int pady = av.charHeight / 5;
     int charOffset = 0;
     graphics.setColor(Color.BLACK);
-    graphics.fillRect(x1, y1, av.charWidth * (end - start + 1), av.charHeight);
+    graphics.fillRect(x1, y1, av.charWidth * (end - start + 1),
+            av.charHeight);
     graphics.setColor(Color.white);
 
     char s = '~';
@@ -404,9 +442,10 @@ public class SequenceRenderer
         }
 
         charOffset = (av.charWidth - fm.charWidth(s)) / 2;
-        graphics.drawString(String.valueOf(s),
-                            charOffset + x1 + (av.charWidth * (i - start)),
-                            (y1 + av.charHeight) - pady);
+        graphics
+                .drawString(String.valueOf(s), charOffset + x1
+                        + (av.charWidth * (i - start)),
+                        (y1 + av.charHeight) - pady);
       }
     }
   }
@@ -425,9 +464,8 @@ public class SequenceRenderer
       char s = seq.getCharAt(res);
 
       charOffset = (av.charWidth - fm.charWidth(s)) / 2;
-      graphics.drawString(String.valueOf(s),
-                          charOffset + x1,
-                          (y1 + av.charHeight) - pady);
+      graphics.drawString(String.valueOf(s), charOffset + x1,
+              (y1 + av.charHeight) - pady);
     }
 
   }