JAL-1799 update height of annotation labels to match annotations
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index ad7e75c..2c7dd3e 100644 (file)
@@ -76,6 +76,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
   private IdPanel idPanel;
 
   private boolean headless;
+
   IdwidthAdjuster idwidthAdjuster;
 
   /** DOCUMENT ME!! */
@@ -155,6 +156,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
   {
     return av;
   }
+
   public void alignmentChanged()
   {
     av.alignmentChanged(this);
@@ -177,8 +179,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
     scalePanelHolder.setPreferredSize(new Dimension(10, av.getCharHeight()
             + fm.getDescent()));
     idSpaceFillerPanel1.setPreferredSize(new Dimension(10, av
-            .getCharHeight()
-            + fm.getDescent()));
+            .getCharHeight() + fm.getDescent()));
 
     getIdPanel().getIdCanvas().gg = null;
     getSeqPanel().seqCanvas.img = null;
@@ -317,7 +318,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * @param redrawOverview
    * @return
    */
-  public boolean scrollToPosition(SearchResults searchResults, boolean redrawOverview)
+  public boolean scrollToPosition(SearchResults searchResults,
+          boolean redrawOverview)
   {
     return scrollToPosition(searchResults, 0, redrawOverview, false);
   }
@@ -337,8 +339,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * @return false if results were not found
    */
   public boolean scrollToPosition(SearchResults results,
-          int verticalOffset,
-          boolean redrawOverview, boolean centre)
+          int verticalOffset, boolean redrawOverview, boolean centre)
   {
     int startv, endv, starts, ends;
     // TODO: properly locate search results in view when large numbers of hidden
@@ -362,8 +363,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
       }
       int start = r[0];
       int end = r[1];
-      // System.err.println("Seq : "+seqIndex+" Scroll to "+start+","+end); //
       // DEBUG
+      // System.err.println(this.av.viewName + " Seq : " + seqIndex
+      // + " Scroll to " + start + "," + end);
 
       /*
        * To centre results, scroll to positions half the visible width
@@ -373,7 +375,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
       {
         int offset = (av.getEndRes() - av.getStartRes() + 1) / 2 - 1;
         start = Math.max(start - offset, 0);
-        end = Math.min(end + offset, seq.getEnd() - 1);
+        end = end + offset - 1;
       }
       if (start < 0)
       {
@@ -402,6 +404,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
        */
       seqIndex = Math.max(0, seqIndex - verticalOffset);
 
+      // System.out.println("start=" + start + ", end=" + end + ", startv="
+      // + av.getStartRes() + ", endv=" + av.getEndRes() + ", starts="
+      // + av.getStartSeq() + ", ends=" + av.getEndSeq());
       if (!av.getWrapAlignment())
       {
         if ((startv = av.getStartRes()) >= start)
@@ -561,6 +566,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
     annotationScroller.setPreferredSize(new Dimension(annotationScroller
             .getWidth(), annotationHeight));
 
+    Dimension e = idPanel.getSize();
+    alabels.setSize(new Dimension(e.width, annotationHeight));
+
     annotationSpaceFillerHolder.setPreferredSize(new Dimension(
             annotationSpaceFillerHolder.getWidth(), annotationHeight));
     annotationScroller.validate();
@@ -668,14 +676,14 @@ public class AlignmentPanel extends GAlignmentPanel implements
    * Adjust row/column scrollers to show a visible position in the alignment.
    * 
    * @param x
-   *          visible column to scroll to DOCUMENT ME!
+   *          visible column to scroll to
    * @param y
    *          visible row to scroll to
    * 
    */
   public void setScrollValues(int x, int y)
   {
-    // System.err.println("Scroll to "+x+","+y);
+    // System.err.println("Scroll " + this.av.viewName + " to " + x + "," + y);
     if (av == null || av.getAlignment() == null)
     {
       return;
@@ -743,7 +751,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
     {
       int x = hscroll.getValue();
       av.setStartRes(x);
-      av.setEndRes((x + (getSeqPanel().seqCanvas.getWidth() / av.getCharWidth())) - 1);
+      av.setEndRes((x + (getSeqPanel().seqCanvas.getWidth() / av
+              .getCharWidth())) - 1);
     }
 
     if (evt.getSource() == vscroll)
@@ -840,13 +849,13 @@ public class AlignmentPanel extends GAlignmentPanel implements
   {
     final AnnotationSorter sorter = new AnnotationSorter(getAlignment(),
             av.isShowAutocalculatedAbove());
-    sorter.sort(getAlignment()
-            .getAlignmentAnnotation(),
+    sorter.sort(getAlignment().getAlignmentAnnotation(),
             av.getSortAnnotationsBy());
     repaint();
 
     if (updateOverview)
     {
+      // TODO: determine if this paintAlignment changed structure colours
       av.getStructureSelectionManager().sequenceColoursChanged(this);
 
       if (overviewPanel != null)
@@ -1058,9 +1067,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
                 - 4;
       }
 
-      pg.drawString(
-              seq.getDisplayId(av.getShowJVSuffix()),
-              xPos,
+      pg.drawString(seq.getDisplayId(av.getShowJVSuffix()), xPos,
               (((i - startSeq) * av.getCharHeight()) + av.getCharHeight())
                       - (av.getCharHeight() / 5));
     }
@@ -1069,7 +1076,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     // draw main sequence panel
     pg.translate(idWidth, 0);
-    getSeqPanel().seqCanvas.drawPanel(pg, startRes, endRes, startSeq, endSeq, 0);
+    getSeqPanel().seqCanvas.drawPanel(pg, startRes, endRes, startSeq,
+            endSeq, 0);
 
     if (av.isShowAnnotation() && (endSeq == av.getAlignment().getHeight()))
     {
@@ -1171,12 +1179,14 @@ public class AlignmentPanel extends GAlignmentPanel implements
       }
       if (labels != null)
       {
-        pg.translate(-3, ypos
- + (av.getAlignment().getHeight() * av.getCharHeight()));
+        pg.translate(-3,
+                ypos + (av.getAlignment().getHeight() * av.getCharHeight()));
 
         pg.setFont(av.getFont());
         labels.drawComponent(pg, idWidth);
-        pg.translate(+3, -ypos
+        pg.translate(
+                +3,
+                -ypos
                         - (av.getAlignment().getHeight() * av
                                 .getCharHeight()));
       }
@@ -1186,8 +1196,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     pg.translate(idWidth, 0);
 
-    getSeqPanel().seqCanvas.drawWrappedPanel(pg, pwidth - idWidth, totalHeight,
-            0);
+    getSeqPanel().seqCanvas.drawWrappedPanel(pg, pwidth - idWidth,
+            totalHeight, 0);
 
     if ((pi * pheight) < totalHeight)
     {
@@ -1245,8 +1255,8 @@ public class AlignmentPanel extends GAlignmentPanel implements
     if (alignFrame != null && !headless)
     {
       alignFrame.setProgressBar(MessageManager.formatMessage(
-              "status.saving_file", new Object[]
-              { type.getLabel() }), progress);
+              "status.saving_file", new Object[] { type.getLabel() }),
+              progress);
     }
     try
     {
@@ -1307,7 +1317,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
     {
       if (alignFrame != null && !headless)
       {
-        alignFrame.setProgressBar(MessageManager.getString("status.export_complete"), progress);
+        alignFrame.setProgressBar(
+                MessageManager.getString("status.export_complete"),
+                progress);
       }
     }
   }
@@ -1372,6 +1384,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
   {
     makeAlignmentImage(jalview.util.ImageMaker.TYPE.SVG, svgFile);
   }
+
   public void makePNGImageMap(File imgMapFile, String imageName)
   {
     // /////ONLY WORKS WITH NONE WRAPPED ALIGNMENTS
@@ -1409,8 +1422,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
             if (av.getAlignment().isNucleotide())
             {
               triplet = ResidueProperties.nucleotideName.get(seq
-                      .getCharAt(res)
-                      + "");
+                      .getCharAt(res) + "");
             }
             else
             {
@@ -1432,8 +1444,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
                 text.append("<area shape=\"rect\" coords=\""
                         + (idWidth + res * av.getCharWidth()) + "," + sy
                         + "," + (idWidth + (res + 1) * av.getCharWidth())
-                        + ","
-                        + (av.getCharHeight() + sy) + "\""
+                        + "," + (av.getCharHeight() + sy) + "\""
                         + " onMouseOver=\"toolTip('" + alIndex + " "
                         + triplet);
               }
@@ -1452,8 +1463,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
                 text.append("<area shape=\"rect\" coords=\""
                         + (idWidth + res * av.getCharWidth()) + "," + sy
                         + "," + (idWidth + (res + 1) * av.getCharWidth())
-                        + ","
-                        + (av.getCharHeight() + sy) + "\""
+                        + "," + (av.getCharHeight() + sy) + "\""
                         + " onMouseOver=\"toolTip('" + alIndex + " "
                         + triplet);
               }
@@ -1609,10 +1619,9 @@ public class AlignmentPanel extends GAlignmentPanel implements
   @Override
   public AlignmentI getAlignment()
   {
-    return av.getAlignment();
+    return av == null ? null : av.getAlignment();
   }
 
-
   @Override
   public String getViewName()
   {
@@ -1664,12 +1673,15 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     return new FeatureRenderer(this);
   }
-  @Override 
+
+  @Override
   public jalview.api.FeatureRenderer getFeatureRenderer()
   {
     return seqPanel.seqCanvas.getFeatureRenderer();
   }
-  public void updateFeatureRenderer(jalview.renderer.seqfeatures.FeatureRenderer fr)
+
+  public void updateFeatureRenderer(
+          jalview.renderer.seqfeatures.FeatureRenderer fr)
   {
     fr.transferSettings(getSeqPanel().seqCanvas.getFeatureRenderer());
   }