/*
- * 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
}
viewport.showSequenceFeatures = true;
sequenceFeatures.setState(true);
+ if (viewport.featureSettings!=null)
+ {
+ viewport.featureSettings.refreshTable();
+ }
alignPanel.paintAlignment(true);
}
return annotation;
}
+ private Hashtable getDisplayedFeatureCols()
+ {
+ if (alignPanel.getFeatureRenderer()!=null) {
+ FeatureRenderer fr = alignPanel.getFeatureRenderer();
+ Hashtable fcols = new Hashtable();
+ Enumeration en = viewport.featuresDisplayed.keys();
+ while (en.hasMoreElements())
+ {
+ Object col = en.nextElement();
+ fcols.put(col,fr.featureColours.get(col));
+ }
+ return fcols;
+ }
+ return null;
+ }
+
public String outputFeatures(boolean displayTextbox, String format)
{
String features;
if (format.equalsIgnoreCase("Jalview"))
{
features = new FeaturesFile().printJalviewFormat(viewport.alignment
- .getSequencesArray(), viewport.featuresDisplayed);
+ .getSequencesArray(), getDisplayedFeatureCols());
}
else
{
features = new FeaturesFile().printGFFFormat(viewport.alignment
- .getSequencesArray(), viewport.featuresDisplayed);
+ .getSequencesArray(), getDisplayedFeatureCols());
}
if (displayTextbox)
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);
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);
}
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);
{
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);