X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=2159de59ca5df4d8e4420d580121554dca819f0c;hb=a790ec56ce1c4b2eafbfdef7b067283e9a114d27;hp=3e214b8e6bbfc899849f1d2b305a2c3865bbfdde;hpb=506d60f0e188723ddc91c26824b41ac7034df3fe;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 3e214b8..2159de5 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) - * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) + * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -68,6 +68,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, viewport.updateConsensus(alignPanel); annotationPanelMenuItem.setState(viewport.showAnnotation); + displayNonconservedMenuItem.setState(viewport.getShowunconserved()); seqLimits.setState(viewport.showJVSuffix); @@ -101,7 +102,6 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, centreColumnLabelFlag.setState(true); centreColumnLabelFlag_stateChanged(); } - try { param = applet.getParameter("windowWidth"); @@ -477,7 +477,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, public void itemStateChanged(ItemEvent evt) { - if (evt.getSource() == colourTextMenuItem) + if (evt.getSource() == displayNonconservedMenuItem) + { + displayNonconservedMenuItem_actionPerformed(); + } + else if (evt.getSource() == colourTextMenuItem) { colourTextMenuItem_actionPerformed(); } @@ -542,11 +546,20 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, else if (evt.getSource() == this.centreColumnLabelFlag) { centreColumnLabelFlag_stateChanged(); + } else if (evt.getSource() == this.followMouseOverFlag) + { + mouseOverFlag_stateChanged(); } alignPanel.paintAlignment(true); } + private void mouseOverFlag_stateChanged() + { + viewport.followHighlight = followMouseOverFlag.getState(); + // TODO: could kick the scrollTo mechanism to reset view for current searchresults. + } + private void centreColumnLabelFlag_stateChanged() { viewport.centreColumnLabels = centreColumnLabelFlag.getState(); @@ -1901,6 +1914,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, alignPanel.paintAlignment(true); } + protected void displayNonconservedMenuItem_actionPerformed() + { + viewport.setShowunconserved(displayNonconservedMenuItem.getState()); + alignPanel.paintAlignment(true); + } + protected void wrapMenuItem_actionPerformed() { viewport.setWrapAlignment(wrapMenuItem.getState()); @@ -2105,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); @@ -2118,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); } @@ -2257,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); @@ -2266,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); @@ -2328,11 +2374,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, "For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list", x, y += fh); g.drawString("If you use Jalview, please cite:", x, y += fh + 8); - g - .drawString( - "\"Clamp, M., Cuff, J., Searle, S. M. and Barton, G. J. (2004), The Jalview Java Alignment Editor\"", - x, y += fh); - g.drawString("Bioinformatics, 2004 20;426-7.", x, y += fh); + g.drawString( + "Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)",x,y+=fh); + g.drawString("Jalview Version 2 - a multiple sequence alignment editor and analysis workbench",x,y+=fh); + g.drawString("Bioinformatics doi: 10.1093/bioinformatics/btp033",x,y+=fh); } } @@ -2494,6 +2539,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, CheckboxMenuItem colourTextMenuItem = new CheckboxMenuItem(); + CheckboxMenuItem displayNonconservedMenuItem = new CheckboxMenuItem(); + MenuItem alProperties = new MenuItem("Alignment Properties..."); MenuItem overviewMenuItem = new MenuItem(); @@ -2565,6 +2612,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, CheckboxMenuItem centreColumnLabelFlag = new CheckboxMenuItem(); + CheckboxMenuItem followMouseOverFlag = new CheckboxMenuItem(); + private void jbInit() throws Exception { @@ -2666,6 +2715,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, annotationPanelMenuItem.addItemListener(this); colourTextMenuItem.setLabel("Colour Text"); colourTextMenuItem.addItemListener(this); + displayNonconservedMenuItem.setLabel("Show non-conserved"); + displayNonconservedMenuItem.addItemListener(this); alProperties.addActionListener(this); overviewMenuItem.setLabel("Overview Window"); overviewMenuItem.addActionListener(this); @@ -2732,7 +2783,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, inputText.addActionListener(this); centreColumnLabelFlag.setLabel("Centre column labels"); centreColumnLabelFlag.addItemListener(this); - + followMouseOverFlag.setLabel("Automatic Scrolling"); + followMouseOverFlag.addItemListener(this); helpMenu.setLabel("Help"); documentation.setLabel("Documentation"); documentation.addActionListener(this); @@ -2809,6 +2861,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, viewMenu.add(menu1); viewMenu.add(menu2); viewMenu.addSeparator(); + viewMenu.add(followMouseOverFlag); viewMenu.add(annotationPanelMenuItem); viewMenu.addSeparator(); viewMenu.add(sequenceFeatures); @@ -2870,6 +2923,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, formatMenu.add(viewBoxesMenuItem); formatMenu.add(viewTextMenuItem); formatMenu.add(colourTextMenuItem); + formatMenu.add(displayNonconservedMenuItem); formatMenu.add(renderGapsMenuItem); formatMenu.add(centreColumnLabelFlag); selectMenu.add(findMenuItem);