/**
* Calculate the width of the alignment labels based on the displayed names
- * and any bounds on label width set in preferences.
+ * and any bounds on label width set in preferences. Also includes annotations
+ * not actually visible.
+ *
+ * FIXME JAL-244 JAL-4091 - doesn't include sequence associated annotation
+ * label decorators and only called during tests
*
* @param maxwidth
* -1 or maximum width allowed for IdWidth
{
return calculateIdWidth(maxwidth, true, false);
}
-
+ /**
+ * Calculate the width of the alignment labels based on the displayed names
+ * and any bounds on label width set in preferences.
+ *
+ * @param maxwidth
+ * -1 or maximum width allowed for IdWidth
+ * @param includeAnnotations - when true includes width of any additional marks in annotation id panel
+ * @param visibleOnly -
+ * @return Dimension giving the maximum width of the alignment label panel
+ * that should be used.
+ */
public Dimension calculateIdWidth(int maxwidth,
boolean includeAnnotations, boolean visibleOnly)
{
// Also check annotation label widths
if (includeAnnotations && al.getAlignmentAnnotation() != null)
{
- if (Jalview.isHeadlessMode())
- {
- AnnotationLabels aal = this.getAlabels();
- int stringWidth = aal.drawLabels(null, false, idWidth, false, fm);
- 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);
Graphics idGraphics, Graphics alignmentGraphics)
throws PrinterException
{
- final int 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.
}
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)
*/
IdCanvas idCanvas = getIdPanel().getIdCanvas();
List<SequenceI> selection = av.getSelectionGroup() == null ? null
: av.getSelectionGroup().getSequences(null);
+
idCanvas.drawIds((Graphics2D) idGraphics, av, startSeq, endSeq - 1,
- selection);
+ selection, false,idWidth);
idGraphics.setFont(av.getFont());
idGraphics.translate(0, -scaleHeight);
int offset = getAlabels().getScrollOffset();
idGraphics.translate(0, -offset);
idGraphics.translate(0, alignmentDrawnHeight);
- getAlabels().drawComponent(idGraphics, idWidth);
+ getAlabels().drawComponentNotGUI(idGraphics, idWidth);
idGraphics.translate(0, -alignmentDrawnHeight);
/*
* draw sequence ids and annotation labels (if shown)
*/
IdCanvas idCanvas = getIdPanel().getIdCanvas();
- idCanvas.drawIdsWrapped((Graphics2D) g, av, 0, totalHeight);
+ idCanvas.drawIdsWrappedNoGUI((Graphics2D) g, av, 0, totalHeight);
g.translate(idWidth, 0);
// 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");
throws ImageOutputException
{
makeAlignmentImage(type, file, renderer,
- BitmapImageSizing.nullBitmapImageSizing());
+ BitmapImageSizing.defaultBitmapImageSizing());
}
/**