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;
sortPairwiseMenuItem_actionPerformed(null);
}
- this.alignPanel.av
- .setShowAutocalculatedAbove(isShowAutoCalculatedAbove());
-
setMenusFromViewport(viewport);
buildSortByAnnotationScoresMenu();
calculateTree.addActionListener(new ActionListener()
}
});
+ alignPanel.sortAnnotations();
}
/**
}
if (isAnnotation)
{
-
+ alignPanel.sortAnnotations();
alignPanel.adjustAnnotationHeight();
viewport.updateSequenceIdColours();
buildSortByAnnotationScoresMenu();
}
/**
- * Store selected annotation sort order for the view and repaint.
+ * Sorts annotations and repaints the alignment
*/
@Override
- protected void sortAnnotations_actionPerformed()
+ public void sortAnnotations()
{
- this.alignPanel.av.setSortAnnotationsBy(getAnnotationSortOrder());
- this.alignPanel.av
- .setShowAutocalculatedAbove(isShowAutoCalculatedAbove());
+ alignPanel.sortAnnotations();
alignPanel.paintAlignment(false, false);
}
}
}
+
+ /**
+ * 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