X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=a06c6d8846ff658d5a2427325551d711a24282a9;hb=909eba506e9353290500a5d2e70eb53068cbdc5f;hp=b69ba88a089363623d366179c4c0209105edb696;hpb=be8b1d254f658181eec3c29dc696114e3ffdd4df;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index b69ba88..a06c6d8 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -3966,7 +3966,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ protected int _annotationScoreVectorHash; - /** + /**g * search the alignment and rebuild the sort by annotation score submenu the * last alignment annotation vector hash is stored to minimize cost of * rebuilding in subsequence calls. @@ -4013,6 +4013,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } /** + * Enable (or, if desired, make visible) the By Tree + * submenu only if it has at least one element (or will have). + * + */ + @Override + protected void enableSortMenuOptions() + { + List treePanels = getTreePanels(); + sortByTreeMenu.setEnabled(!treePanels.isEmpty()); + } + + /** * Maintain the Order by->Displayed Tree menu. Creates a new menu item for a * TreePanel with an appropriate jalview.analysis.AlignmentSorter * call. Listeners are added to remove the menu item when the treePanel is @@ -4025,24 +4037,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { sortByTreeMenu.removeAll(); - List comps = PaintRefresher.components - .get(viewport.getSequenceSetId()); - List treePanels = new ArrayList<>(); - for (Component comp : comps) - { - if (comp instanceof TreePanel) - { - treePanels.add((TreePanel) comp); - } - } - - if (treePanels.size() < 1) - { - sortByTreeMenu.setVisible(false); - return; - } - - sortByTreeMenu.setVisible(true); + List treePanels = getTreePanels(); for (final TreePanel tp : treePanels) { @@ -4063,6 +4058,21 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + private List getTreePanels() + { + List comps = PaintRefresher.components + .get(viewport.getSequenceSetId()); + List treePanels = new ArrayList<>(); + for (Component comp : comps) + { + if (comp instanceof TreePanel) + { + treePanels.add((TreePanel) comp); + } + } + return treePanels; + } + public boolean sortBy(AlignmentOrder alorder, String undoname) { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();