JAL-244 ensure background is completely filled with white
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index baf9e26..3127731 100644 (file)
@@ -352,29 +352,10 @@ public class AlignmentPanel extends GAlignmentPanel implements
     // Also check annotation label widths
     if (includeAnnotations && al.getAlignmentAnnotation() != null)
     {
-      if (Jalview.isHeadlessMode())
-      {
-        AnnotationLabels aal = getAlabels();
-        int stringWidth = aal.drawLabels(null, false, idWidth, false, false,
-                fm,false);
-        idWidth = Math.max(idWidth, stringWidth);
-      }
-      else
-      {
-        fm = c.getFontMetrics(getAlabels().getFont());
-
-        for (i = 0; i < al.getAlignmentAnnotation().length; i++)
-        {
-          AlignmentAnnotation aa = al.getAlignmentAnnotation()[i];
-          if (visibleOnly && !aa.visible)
-          {
-            continue;
-          }
-          String label = aa.label;
-          int stringWidth = fm.stringWidth(label);
-          idWidth = Math.max(idWidth, stringWidth);
-        }
-      }
+      AnnotationLabels aal = getAlabels();
+      int stringWidth = aal.drawLabels(null, false, idWidth, false, false,
+              fm, !visibleOnly);
+      idWidth = Math.max(idWidth, stringWidth);
     }
 
     int w = maxwidth < 0 ? idWidth : Math.min(maxwidth, idWidth);
@@ -1012,16 +993,16 @@ public class AlignmentPanel extends GAlignmentPanel implements
           Graphics idGraphics, Graphics alignmentGraphics)
           throws PrinterException
   {
-    final int idWidth;
-    if (getIdPanel()!=null && getIdPanel().getWidth()>0)
-    {
-      // use the current IdPanel's width, if its set and non-zero
-      idWidth = getIdPanel().getWidth();
-    } else { 
-      // otherwise calculate it
-      idWidth = getVisibleIdWidth(false);
-    }
-
+    final int idWidth, idWidthForGui;
+    // otherwise calculate it
+    idWidth = getVisibleIdWidth(false);
+//    if (getIdPanel()!=null && getIdPanel().getWidth()>0)
+//    {
+//      // use the current IdPanel's width, if its set and non-zero
+//      idWidthForGui = getIdPanel().getWidth();
+//    } else {
+//      idWidthForGui=0;
+//    }
     /*
      * Get the horizontal offset to where we draw the sequences.
      * This is idWidth if using a single Graphics context, else zero.
@@ -1070,6 +1051,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
     }
     final int alignmentDrawnHeight = (endSeq - startSeq) * charHeight + 3;
 
+    alignmentGraphics.setColor(Color.white);
+    alignmentGraphics.fillRect(0, 0, pageWidth, pageHeight+scaleHeight);
+
     /*
      * draw the Scale at horizontal offset, then reset to top left (0, 0)
      */
@@ -1086,8 +1070,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
     IdCanvas idCanvas = getIdPanel().getIdCanvas();
     List<SequenceI> selection = av.getSelectionGroup() == null ? null
             : av.getSelectionGroup().getSequences(null);
+    
     idCanvas.drawIds((Graphics2D) idGraphics, av, startSeq, endSeq - 1,
-            selection, false);
+            selection, false,idWidth);
 
     idGraphics.setFont(av.getFont());
     idGraphics.translate(0, -scaleHeight);
@@ -1234,7 +1219,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
     // see if rendering offscreen - check preferences and calc width accordingly
     if (!onscreen && Cache.getDefault("FIGURE_AUTOIDWIDTH", false))
     {
-      return calculateIdWidth(-1).width;
+      return calculateIdWidth(-1,true,true).width;
     }
     Integer idwidth = onscreen ? null
             : Cache.getIntegerProperty("FIGURE_FIXEDIDWIDTH");