- AnnotationLabels aal = getAlabels();
- int stringWidth = aal.drawLabels(null, false, idWidth, false, false,
- fm, !visibleOnly);
- idWidth = Math.max(idWidth, stringWidth);
+ fm = c.getFontMetrics(getAlabels().getFont());
+
+ if (!legacy || Jalview.isHeadlessMode())
+ {
+ AnnotationLabels aal = getAlabels();
+ int stringWidth = aal.drawLabels(null, false, idWidth, false, false,
+ fm, !visibleOnly);
+ idWidth = Math.max(idWidth, stringWidth);
+ }
+ else
+ {
+ 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);
+ }
+ }