X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=b27d66d585bbddd3bdd4d0f1d2a6adfd6c834fc7;hb=dd78fb858ae1d6b7704ddb29617029f429f07e9b;hp=82e2113eccc5f31bb39636ae7dd3b6347985e1a1;hpb=6007f0f4e720ede8ca8ff70e866f2f2b870cde3e;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 82e2113..b27d66d 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -21,6 +21,7 @@ package jalview.gui; import jalview.analysis.AnnotationSorter; +import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.bin.Cache; @@ -532,7 +533,7 @@ public class AlignmentPanel extends GAlignmentPanel implements addNotify(); // TODO: many places call this method and also paintAlignment with various // different settings. this means multiple redraws are triggered... - paintAlignment(true, false); + paintAlignment(true, av.needToUpdateStructureViews()); } /** @@ -637,16 +638,9 @@ public class AlignmentPanel extends GAlignmentPanel implements } else { - int width = av.getAlignment().getWidth(); + int width = av.getAlignment().getVisibleWidth(); int height = av.getAlignment().getHeight(); - if (av.hasHiddenColumns()) - { - // reset the width to exclude hidden columns - width = av.getAlignment().getHiddenColumns() - .absoluteToVisibleColumn(width); - } - hextent = getSeqPanel().seqCanvas.getWidth() / av.getCharWidth(); vextent = getSeqPanel().seqCanvas.getHeight() / av.getCharHeight(); @@ -811,10 +805,6 @@ public class AlignmentPanel extends GAlignmentPanel implements public void paintAlignment(boolean updateOverview, boolean updateStructures) { - final AnnotationSorter sorter = new AnnotationSorter(getAlignment(), - av.isShowAutocalculatedAbove()); - sorter.sort(getAlignment().getAlignmentAnnotation(), - av.getSortAnnotationsBy()); repaint(); if (updateStructures) @@ -832,6 +822,22 @@ public class AlignmentPanel extends GAlignmentPanel implements } /** + * Sorts annotations according to currently selected preferences. Does nothing + * if currently set to 'Custom' (manual) ordering. + */ + @Override + public void sortAnnotations(boolean autoCalcOnly) + { + SequenceAnnotationOrder sortBy = av.getSortAnnotationsBy(); + if (sortBy != SequenceAnnotationOrder.CUSTOM) + { + final AnnotationSorter sorter = new AnnotationSorter(getAlignment(), + av.isShowAutocalculatedAbove(), autoCalcOnly); + sorter.sort(getAlignment().getAlignmentAnnotation(), sortBy); + } + } + + /** * DOCUMENT ME! * * @param g @@ -958,8 +964,8 @@ public class AlignmentPanel extends GAlignmentPanel implements final int totalSeq = (pageHeight - scaleHeight) / charHeight - 1; - final int alignmentWidth = av.getAlignment().getWidth(); - final int pagesWide = (alignmentWidth / totalRes) + 1; + final int alignmentWidth = av.getAlignment().getVisibleWidth(); + int pagesWide = (alignmentWidth / totalRes) + 1; final int startRes = (pageIndex % pagesWide) * totalRes; final int endRes = Math.min(startRes + totalRes - 1, @@ -1076,12 +1082,7 @@ public class AlignmentPanel extends GAlignmentPanel implements int idWidth = getVisibleIdWidth(false); - int maxwidth = av.getAlignment().getWidth(); - if (av.hasHiddenColumns()) - { - maxwidth = av.getAlignment().getHiddenColumns() - .absoluteToVisibleColumn(maxwidth) - 1; - } + int maxwidth = av.getAlignment().getVisibleWidth(); int resWidth = getSeqPanel().seqCanvas .getWrappedCanvasWidth(pageWidth - idWidth); @@ -1243,12 +1244,7 @@ public class AlignmentPanel extends GAlignmentPanel implements public AlignmentDimension getAlignmentDimension() { - int maxwidth = av.getAlignment().getWidth(); - if (av.hasHiddenColumns()) - { - maxwidth = av.getAlignment().getHiddenColumns() - .absoluteToVisibleColumn(maxwidth); - } + int maxwidth = av.getAlignment().getVisibleWidth(); int height = ((av.getAlignment().getHeight() + 1) * av.getCharHeight()) + getScalePanel().getHeight();