X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=d3f80ce2b21ccb37e4d09038277f8f6588d09805;hb=e57f77dc13f5a295cf49a403da05770a68a6e22b;hp=c5c7ae92df5cd74e4316c9bd21e1d23d5500267d;hpb=50fbfb08041ca4ac18e92b82e44446fa72a1f311;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index c5c7ae9..d3f80ce 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -298,8 +298,10 @@ public class AlignmentPanel extends GAlignmentPanel implements { return calculateIdWidth(-1, false, false); } + /** * pre 2.11.3 Id width calculation - used when importing old projects only + * * @return */ public int getLegacyIdWidth() @@ -313,7 +315,11 @@ public class AlignmentPanel extends GAlignmentPanel implements /** * 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 @@ -331,20 +337,27 @@ public class AlignmentPanel extends GAlignmentPanel implements * * @param maxwidth * -1 or maximum width allowed for IdWidth - * @param includeAnnotations - when true, annotation label widths are also accounted for - * @param visibleOnly - when true, ignore label widths for hidden annotation rows + * @param includeAnnotations + * - when true includes width of any additional marks in annotation + * id panel + * @param visibleOnly + * - when true, ignore label widths for hidden annotation rows * @return Dimension giving the maximum width of the alignment label panel * that should be used. */ public Dimension calculateIdWidth(int maxwidth, boolean includeAnnotations, boolean visibleOnly) { - return calculateIdWidthOrLegacy(false, maxwidth, includeAnnotations, visibleOnly); + return calculateIdWidthOrLegacy(false, maxwidth, includeAnnotations, + visibleOnly); } - + /** * legacy mode or post 2.11.3 ID width calculation - * @param legacy - uses annotation labels, not rendered label width (excludes additional decorators) + * + * @param legacy + * - uses annotation labels, not rendered label width (excludes + * additional decorators) * @param maxwidth * @param includeAnnotations * @param visibleOnly @@ -379,7 +392,8 @@ public class AlignmentPanel extends GAlignmentPanel implements if (!legacy || Jalview.isHeadlessMode()) { AnnotationLabels aal = getAlabels(); - int stringWidth = aal.drawLabels(null, false, idWidth, false, false, fm); + int stringWidth = aal.drawLabels(null, false, idWidth, false, false, + fm, !visibleOnly); idWidth = Math.max(idWidth, stringWidth); } else @@ -602,7 +616,8 @@ public class AlignmentPanel extends GAlignmentPanel implements // this is called after loading new annotation onto alignment if (alignFrame.getHeight() == 0) { - jalview.bin.Console.error("adjustAnnotationHeight called with zero height alignment window"); + jalview.bin.Console.error( + "adjustAnnotationHeight called with zero height alignment window"); } validateAnnotationDimensions(true); addNotify(); @@ -1033,8 +1048,16 @@ public class AlignmentPanel extends GAlignmentPanel implements 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. @@ -1083,6 +1106,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) */ @@ -1099,8 +1125,9 @@ public class AlignmentPanel extends GAlignmentPanel implements IdCanvas idCanvas = getIdPanel().getIdCanvas(); List 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); @@ -1247,7 +1274,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"); @@ -1265,7 +1292,7 @@ public class AlignmentPanel extends GAlignmentPanel implements throws ImageOutputException { makeAlignmentImage(type, file, renderer, - BitmapImageSizing.nullBitmapImageSizing()); + BitmapImageSizing.defaultBitmapImageSizing()); } /**