JAL-1517 source formatting
[jalview.git] / src / jalview / gui / AnnotationLabels.java
index 6df2088..b553f56 100755 (executable)
@@ -1,19 +1,22 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.gui;
 
@@ -29,6 +32,7 @@ import javax.swing.*;
 
 import jalview.datamodel.*;
 import jalview.io.*;
+import jalview.util.MessageManager;
 
 /**
  * DOCUMENT ME!
@@ -530,7 +534,8 @@ public class AnnotationLabels extends JPanel implements MouseListener,
       return;
     }
 
-    JPopupMenu pop = new JPopupMenu("Annotations");
+    JPopupMenu pop = new JPopupMenu(
+            MessageManager.getString("label.annotations"));
     JMenuItem item = new JMenuItem(ADDNEW);
     item.addActionListener(this);
     pop.add(item);
@@ -821,22 +826,33 @@ public class AnnotationLabels extends JPanel implements MouseListener,
   }
 
   /**
-   * Draw the full set of annotation Labels for the alignment at the given cursor
+   * Draw the full set of annotation Labels for the alignment at the given
+   * cursor
+   * 
+   * @param g
+   *          Graphics2D instance (needed for font scaling)
+   * @param width
+   *          Width for scaling labels
    * 
-   * @param g Graphics2D instance (needed for font scaling)
-   * @param width Width for scaling labels
-   *          
    */
   public void drawComponent(Graphics g, int width)
   {
     drawComponent(g, false, width);
   }
+
+  private final boolean debugRedraw = false;
+
   /**
-   * Draw the full set of annotation Labels for the alignment at the given cursor
+   * Draw the full set of annotation Labels for the alignment at the given
+   * cursor
    * 
-   * @param g Graphics2D instance (needed for font scaling)
-   * @param clip - true indicates that only current visible area needs to be rendered
-   * @param width Width for scaling labels         
+   * @param g
+   *          Graphics2D instance (needed for font scaling)
+   * @param clip
+   *          - true indicates that only current visible area needs to be
+   *          rendered
+   * @param width
+   *          Width for scaling labels
    */
   public void drawComponent(Graphics g, boolean clip, int width)
   {
@@ -855,7 +871,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
 
     g.translate(0, scrollOffset);
     g.setColor(Color.black);
-    
+
     AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
     int fontHeight = g.getFont().getSize();
     int y = 0;
@@ -865,51 +881,63 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     Font baseFont = g.getFont();
     FontMetrics baseMetrics = fm;
     int ofontH = fontHeight;
-    int sOffset=0;
+    int sOffset = 0;
     int visHeight = 0;
-    int[] visr = (ap!=null && ap.annotationPanel!=null) ? ap.annotationPanel.getVisibleVRange() : null;
-    if (clip && visr!=null){ 
-      sOffset = visr[0]; 
+    int[] visr = (ap != null && ap.annotationPanel != null) ? ap.annotationPanel
+            .getVisibleVRange() : null;
+    if (clip && visr != null)
+    {
+      sOffset = visr[0];
       visHeight = visr[1];
     }
-    boolean visible = true,before=false,after=false;
+    boolean visible = true, before = false, after = false;
     if (aa != null)
     {
       hasHiddenRows = false;
-      int olY=0;
+      int olY = 0;
       for (int i = 0; i < aa.length; i++)
       {
         visible = true;
-        g.setColor(Color.black);
-
         if (!aa[i].visible)
         {
           hasHiddenRows = true;
           continue;
         }
-        olY=y;
+        olY = y;
         y += aa[i].height;
-        if (clip) {if (y<sOffset)
+        if (clip)
         {
-          if (!before)
+          if (y < sOffset)
           {
-          System.out.println("before vis: "+i);
-          before=true;
+            if (!before)
+            {
+              if (debugRedraw)
+              {
+                System.out.println("before vis: " + i);
+              }
+              before = true;
+            }
+            // don't draw what isn't visible
+            continue;
           }
-          // don't draw what isn't visible
-          continue;
-        }
-        if (olY>visHeight)
-        {
-
-          if (!after)
+          if (olY > visHeight)
           {
-          System.out.println("Scroll offset: "+sOffset+" after vis: "+i);
-          after=true;
+
+            if (!after)
+            {
+              if (debugRedraw)
+              {
+                System.out.println("Scroll offset: " + sOffset
+                        + " after vis: " + i);
+              }
+              after = true;
+            }
+            // don't draw what isn't visible
+            continue;
           }
-          // don't draw what isn't visible
-          continue;
-        }}
+        }
+        g.setColor(Color.black);
+
         offset = -aa[i].height / 2;
 
         if (aa[i].hasText)
@@ -925,6 +953,8 @@ public class AnnotationLabels extends JPanel implements MouseListener,
         if (aa[i].graphGroup > -1)
         {
           int groupSize = 0;
+          // TODO: JAL-1291 revise rendering model so the graphGroup map is
+          // computed efficiently for all visible labels
           for (int gg = 0; gg < aa.length; gg++)
           {
             if (aa[gg].graphGroup == aa[i].graphGroup)
@@ -1002,8 +1032,9 @@ public class AnnotationLabels extends JPanel implements MouseListener,
 
     if (!av.wrapAlignment && ((aa == null) || (aa.length < 1)))
     {
-      g.drawString("Right click", 2, 8);
-      g.drawString("to add annotation", 2, 18);
+      g.drawString(MessageManager.getString("label.right_click"), 2, 8);
+      g.drawString(MessageManager.getString("label.to_add_annotation"), 2,
+              18);
     }
   }
 }