From: jprocter Date: Tue, 17 Mar 2009 16:54:30 +0000 (+0000) Subject: sortbytree parameter added and undo re-instated for sort by tree and sort by id X-Git-Tag: Release_2_5~333 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=5d5387084823fabaff0069493688221c43dd93e7;p=jalview.git sortbytree parameter added and undo re-instated for sort by tree and sort by id --- diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index d5aa0b0..648b642 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -2124,12 +2124,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, modifyPID_actionPerformed(); } - public void sortPairwiseMenuItem_actionPerformed() { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortByPID(viewport.getAlignment(), viewport .getAlignment().getSequenceAt(0), null); + addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder, viewport.alignment)); alignPanel.paintAlignment(true); @@ -2137,17 +2137,19 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, public void sortIDMenuItem_actionPerformed() { - // addHistoryItem(new HistoryItem("ID Sort", viewport.alignment, - // HistoryItem.SORT)); + SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortByID(viewport.getAlignment()); + addHistoryItem(new OrderCommand("ID Sort", oldOrder, + viewport.alignment)); alignPanel.paintAlignment(true); } public void sortGroupMenuItem_actionPerformed() { - // addHistoryItem(new HistoryItem("Group Sort", viewport.alignment, - // HistoryItem.SORT)); + SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortByGroup(viewport.getAlignment()); + addHistoryItem(new OrderCommand("Group Sort", oldOrder, + viewport.alignment)); alignPanel.paintAlignment(true); } @@ -2276,8 +2278,28 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, jalview.bin.JalviewLite.addFrame(tp, treeFile, 600, 500); addTreeMenuItem(tp, treeFile); } - - void addTreeMenuItem(final TreePanel treePanel, String title) + /** + * sort the alignment using the given treePanel + * @param treePanel tree used to sort view + * @param title string used for undo event name + */ + public void sortByTree(TreePanel treePanel, String title) + { + SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); + AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel + .getTree()); + // addHistoryItem(new HistoryItem("Sort", viewport.alignment, + // HistoryItem.SORT)); + addHistoryItem(new OrderCommand("Order by "+title, oldOrder, + viewport.alignment)); + alignPanel.paintAlignment(true); + } + /** + * Do any automatic reordering of the alignment and add the necessary bits to the menu structure for the new tree + * @param treePanel + * @param title + */ + protected void addTreeMenuItem(final TreePanel treePanel, final String title) { final MenuItem item = new MenuItem(title); sortByTreeMenu.add(item); @@ -2285,16 +2307,21 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { public void actionPerformed(ActionEvent evt) { - // addHistoryItem(new HistoryItem("Sort", viewport.alignment, - // HistoryItem.SORT)); - AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel - .getTree()); - alignPanel.paintAlignment(true); + sortByTree(treePanel, title); // treePanel.getTitle()); } }); treePanel.addWindowListener(new WindowAdapter() { + public void windowOpened(WindowEvent e) + { + if (viewport.sortByTree) + { + sortByTree(treePanel, title); + } + super.windowOpened(e); + } + public void windowClosing(WindowEvent e) { sortByTreeMenu.remove(item); diff --git a/src/jalview/appletgui/AlignViewport.java b/src/jalview/appletgui/AlignViewport.java index fd43a5d..9244166 100755 --- a/src/jalview/appletgui/AlignViewport.java +++ b/src/jalview/appletgui/AlignViewport.java @@ -198,6 +198,11 @@ public class AlignViewport upperCasebold = true; } } + param = applet.getParameter("sortByTree"); + if (param != null) + { + sortByTree=Boolean.valueOf(param).booleanValue(); + } } @@ -1514,6 +1519,11 @@ public class AlignViewport public boolean showUnconserved=false; /** + * when set, alignment should be reordered according to a newly opened tree + */ + public boolean sortByTree=false; + + /** * @return the showUnconserved */ public boolean getShowunconserved()