JAL-4260 right align the annotation labels regardless of width in wrapped mode.
authorJames Procter <j.procter@dundee.ac.uk>
Tue, 31 Oct 2023 12:33:03 +0000 (12:33 +0000)
committerJames Procter <j.procter@dundee.ac.uk>
Tue, 31 Oct 2023 12:33:03 +0000 (12:33 +0000)
src/jalview/gui/AnnotationLabels.java
src/jalview/gui/IdCanvas.java

index a0d70b4..08a25ba 100755 (executable)
@@ -1246,7 +1246,7 @@ public class AnnotationLabels extends JPanel
     else
     {
       int newAnnotationIdWidth = drawLabels(g, clip, width, false, forGUI, null, false);
-      width = Math.max(newAnnotationIdWidth, givenWidth);
+      width = newAnnotationIdWidth<givenWidth ? givenWidth: Math.min(newAnnotationIdWidth, givenWidth);
     }
     drawLabels(g, clip, width, true, forGUI, null, false);
   }
index 2df84a9..4d10db0 100755 (executable)
@@ -307,7 +307,7 @@ public class IdCanvas extends JPanel implements ViewportListenerI
 
     if (alignViewport.getWrapAlignment())
     {
-      drawIdsWrapped(g, alignViewport, startSeq, getHeight());
+      drawIdsWrapped(g, alignViewport, startSeq, getHeight(), panelWidth,forGUI);
       return;
     }
 
@@ -401,7 +401,7 @@ public class IdCanvas extends JPanel implements ViewportListenerI
     drawIdsWrapped(g, av2, totalHeight, totalHeight, i,false);
   }
 
-  void drawIdsWrapped(Graphics2D g, AlignViewport alignViewport,
+  public void drawIdsWrapped(Graphics2D g, AlignViewport alignViewport,
           int startSeq, int pageHeight, int idWidth, boolean forGUI)
   {
     int alignmentWidth = alignViewport.getAlignment().getWidth();
@@ -418,6 +418,8 @@ public class IdCanvas extends JPanel implements ViewportListenerI
     AnnotationLabels labels = null;
     if (alignViewport.isShowAnnotation())
     {
+      // in wrapped mode, no alignPanel reference is available
+      // FIXME: make the renderer not create a new object in wrapped mode everytime!
       labels = new AnnotationLabels(alignViewport);
     }