X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=8994743c8db269830ab9a4cc576c2f96ebebadfe;hb=53e0350c1c4464442938e4bace4e85bdbca665be;hp=4ff1b4f597f524187666000b20beeac3eb0745f3;hpb=dc2734d988e10f3e76dda02d9913b611f6713552;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 4ff1b4f..8994743 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -22,6 +22,7 @@ package jalview.gui; import jalview.analysis.AlignmentSorter; import jalview.analysis.AlignmentUtils; +import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; import jalview.analysis.CrossRef; import jalview.analysis.Dna; import jalview.analysis.GeneticCodeI; @@ -362,9 +363,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, sortPairwiseMenuItem_actionPerformed(null); } - this.alignPanel.av - .setShowAutocalculatedAbove(isShowAutoCalculatedAbove()); - setMenusFromViewport(viewport); buildSortByAnnotationScoresMenu(); calculateTree.addActionListener(new ActionListener() @@ -481,6 +479,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } }); + alignPanel.sortAnnotations(false); } /** @@ -3104,7 +3103,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void scaleAbove_actionPerformed(ActionEvent e) { viewport.setScaleAboveWrapped(scaleAbove.isSelected()); - // TODO: do we actually need to update overview for scale above change ? + alignPanel.updateLayout(); alignPanel.paintAlignment(true, false); } @@ -3118,6 +3117,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void scaleLeft_actionPerformed(ActionEvent e) { viewport.setScaleLeftWrapped(scaleLeft.isSelected()); + alignPanel.updateLayout(); alignPanel.paintAlignment(true, false); } @@ -3131,6 +3131,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void scaleRight_actionPerformed(ActionEvent e) { viewport.setScaleRightWrapped(scaleRight.isSelected()); + alignPanel.updateLayout(); alignPanel.paintAlignment(true, false); } @@ -4690,7 +4691,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } if (isAnnotation) { - + alignPanel.sortAnnotations(false); alignPanel.adjustAnnotationHeight(); viewport.updateSequenceIdColours(); buildSortByAnnotationScoresMenu(); @@ -5408,14 +5409,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /** - * Store selected annotation sort order for the view and repaint. + * Sorts annotations and repaints the alignment */ @Override - protected void sortAnnotations_actionPerformed() + public void sortAnnotations(boolean autoCalcOnly) { - this.alignPanel.av.setSortAnnotationsBy(getAnnotationSortOrder()); - this.alignPanel.av - .setShowAutocalculatedAbove(isShowAutoCalculatedAbove()); + alignPanel.sortAnnotations(autoCalcOnly); alignPanel.paintAlignment(false, false); } @@ -5643,6 +5642,40 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + + /** + * Sets the flag for whether auto-calculated annotations should be shown above + * other annotations. If the given value is the same as the current setting, + * simply returns false. Otherwise updates the setting, and returns true. If + * annotation sort order is currently set to 'Custom', this is changed to + * 'None', because 'Custom' ordering ignores all sort options. + */ + @Override + public boolean setShowAutoCalculatedAbove(boolean b) + { + if (viewport.isShowAutocalculatedAbove() != b) + { + viewport.setShowAutocalculatedAbove(b); + + /* + * change CUSTOM annotation ordering to NONE + * so that sorting actually does something + */ + if (viewport.getSortAnnotationsBy() == SequenceAnnotationOrder.CUSTOM) + { + viewport.setSortAnnotationsBy(SequenceAnnotationOrder.NONE); + } + return true; + } + return false; + } + + @Override + public void setAnnotationSortOrder( + SequenceAnnotationOrder annotationSortOrder) + { + viewport.setSortAnnotationsBy(annotationSortOrder); + } } class PrintThread extends Thread