JAL-4260 right align the annotation labels regardless of width in wrapped mode.
[jalview.git] / src / jalview / gui / IdCanvas.java
index 8e49e59..4d10db0 100755 (executable)
@@ -199,7 +199,7 @@ public class IdCanvas extends JPanel implements ViewportListenerI
 
     gg.translate(0, transY);
 
-    drawIds(gg, av, ss, es, searchResults,true);
+    drawIds(gg, av, ss, es, searchResults, true, getWidth());
 
     gg.translate(0, -transY);
 
@@ -256,7 +256,7 @@ public class IdCanvas extends JPanel implements ViewportListenerI
     gg.fillRect(0, 0, getWidth(), imgHeight);
 
     drawIds(gg, av, av.getRanges().getStartSeq(),
-            av.getRanges().getEndSeq(), searchResults,true);
+            av.getRanges().getEndSeq(), searchResults,true, getWidth());
 
     gg.dispose();
 
@@ -274,9 +274,12 @@ public class IdCanvas extends JPanel implements ViewportListenerI
    * @param startSeq
    * @param endSeq
    * @param selection
+   * @param forGUI when false rendering for print
+   * @param panelWidth width used to calculate righthand margin - usually idCanvas.getWidth()
+   * 
    */
   void drawIds(Graphics2D g, AlignViewport alignViewport,
-          final int startSeq, final int endSeq, List<SequenceI> selection, boolean forGUI)
+          final int startSeq, final int endSeq, List<SequenceI> selection, boolean forGUI, int panelWidth)
   {
     Font font = alignViewport.getFont();
     if (alignViewport.isSeqNameItalics())
@@ -304,12 +307,11 @@ public class IdCanvas extends JPanel implements ViewportListenerI
 
     if (alignViewport.getWrapAlignment())
     {
-      drawIdsWrapped(g, alignViewport, startSeq, getHeight());
+      drawIdsWrapped(g, alignViewport, startSeq, getHeight(), panelWidth,forGUI);
       return;
     }
 
     // Now draw the id strings
-    int panelWidth = getWidth();
     int xPos = 0;
 
     // Now draw the id strings
@@ -399,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();
@@ -416,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);
     }