/*\r
* Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
*\r
* This program is free software; you can redistribute it and/or\r
* modify it under the terms of the GNU General Public License\r
package jalview.gui;\r
\r
import jalview.datamodel.*;\r
-\r
import jalview.jbgui.*;\r
+import jalview.util.Comparison;\r
+import jalview.commands.*;\r
\r
import java.awt.event.*;\r
\r
import java.util.*;\r
\r
import javax.swing.event.*;\r
-import jalview.util.Comparison;\r
+\r
import javax.swing.*;\r
\r
\r
*/\r
public void applyButton_actionPerformed(ActionEvent e)\r
{\r
- historyList.push(new HistoryItem("Remove redundancy",\r
- ap.av.alignment, HistoryItem.HIDE));\r
-\r
- if ((historyList.size() == 1) ||\r
- !af.historyList.contains(historyList.firstElement()))\r
- {\r
- af.addHistoryItem((HistoryItem) historyList.firstElement());\r
- af.updateEditMenuBar();\r
- }\r
-\r
Vector del = new Vector();\r
\r
undoButton.setEnabled(true);\r
{\r
if (value <= redundancy[i])\r
{\r
- SequenceI seq = originalSequences[i];\r
- ap.av.alignment.deleteSequence(seq);\r
- del.add(seq);\r
- if (sg != null)\r
- {\r
- sg.deleteSequence(seq, false);\r
- }\r
+ del.addElement(originalSequences[i]);\r
}\r
}\r
\r
-\r
// This has to be done before the restoreHistoryItem method of alignFrame will\r
// actually restore these sequences.\r
if (del.size() > 0)\r
{\r
- for (int i = 0, j = del.size(); i < j; i++)\r
+ SequenceI [] deleted = new SequenceI[del.size()];\r
+\r
+ int width = 0;\r
+ for (int i = 0; i < del.size(); i++)\r
+ {\r
+ deleted[i] = (SequenceI)del.elementAt(i);\r
+ if(deleted[i].getLength()>width)\r
+ width = deleted[i].getLength();\r
+ }\r
+\r
+ EditCommand cut = new EditCommand("Remove Redundancy",\r
+ EditCommand.CUT, deleted,0,width,ap.av.alignment);\r
+\r
+ for (int i = 0; i < del.size(); i++)\r
+ {\r
+ ap.av.alignment.deleteSequence( deleted[i] );\r
+ PaintRefresher.Refresh(this,\r
+ ap.av.getSequenceSetId(),\r
+ deleted[i], null);\r
+ if (sg != null)\r
{\r
- SequenceI sq = (SequenceI) del.elementAt(i);\r
- sq.deleteChars(0, sq.getLength());\r
+ sg.deleteSequence(deleted[i], false);\r
}\r
+ }\r
+\r
+ historyList.push(cut);\r
+\r
+ ap.alignFrame.addHistoryItem(cut);\r
+\r
+ ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());\r
}\r
\r
- ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());\r
- af.updateEditMenuBar();\r
+\r
}\r
\r
\r
*/\r
public void undoButton_actionPerformed(ActionEvent e)\r
{\r
- HistoryItem hi = (HistoryItem) historyList.pop();\r
- af.restoreHistoryItem(hi);\r
+ CommandI command = (CommandI) historyList.pop();\r
+ command.undoCommand();\r
+\r
+ if (af.historyList.contains(command))\r
+ {\r
+ af.historyList.remove(command);\r
+ af.updateEditMenuBar();\r
+ }\r
+\r
+ ap.repaint();\r
\r
if (historyList.size() == 0)\r
{\r
undoButton.setEnabled(false);\r
-\r
- if (af.historyList.contains(hi))\r
- {\r
- af.historyList.remove(hi);\r
- af.updateEditMenuBar();\r
- }\r
}\r
}\r
\r