X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FRedundancyPanel.java;h=ec896d596f591b07148f892554478e05e3750da8;hb=f62b380e6e3cdbce3af5730f682aad99116509c9;hp=2d262452981e25ba73909c1927e3d86fe3f49b38;hpb=4fdeee885a8bca5d4f26d766bd31d86f639f3bc0;p=jalview.git diff --git a/src/jalview/gui/RedundancyPanel.java b/src/jalview/gui/RedundancyPanel.java index 2d26245..ec896d5 100755 --- a/src/jalview/gui/RedundancyPanel.java +++ b/src/jalview/gui/RedundancyPanel.java @@ -235,18 +235,10 @@ public class RedundancyPanel extends GSliderPanel implements Runnable { if (value <= redundancy[i]) { - SequenceI seq = originalSequences[i]; - ap.av.alignment.deleteSequence(seq); - PaintRefresher.Refresh(this,ap.av.getSequenceSetId(),seq,null); - del.addElement(seq); - if (sg != null) - { - sg.deleteSequence(seq, false); - } + del.addElement(originalSequences[i]); } } - // This has to be done before the restoreHistoryItem method of alignFrame will // actually restore these sequences. if (del.size() > 0) @@ -254,8 +246,7 @@ public class RedundancyPanel extends GSliderPanel implements Runnable SequenceI [] deleted = new SequenceI[del.size()]; int width = 0; - - for (int i = 0, j = del.size(); i < j; i++) + for (int i = 0; i < del.size(); i++) { deleted[i] = (SequenceI)del.elementAt(i); if(deleted[i].getLength()>width) @@ -265,8 +256,23 @@ public class RedundancyPanel extends GSliderPanel implements Runnable EditCommand cut = new EditCommand("Remove Redundancy", EditCommand.CUT, deleted,0,width,ap.av.alignment); + for (int i = 0; i < del.size(); i++) + { + ap.av.alignment.deleteSequence( deleted[i] ); + PaintRefresher.Refresh(this, + ap.av.getSequenceSetId(), + true, + true); + if (sg != null) + { + sg.deleteSequence(deleted[i], false); + } + } + historyList.push(cut); + ap.alignFrame.addHistoryItem(cut); + ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences()); } @@ -284,6 +290,14 @@ public class RedundancyPanel extends GSliderPanel implements Runnable CommandI command = (CommandI) historyList.pop(); command.undoCommand(); + if (ap.av.historyList.contains(command)) + { + ap.av.historyList.remove(command); + af.updateEditMenuBar(); + } + + ap.repaint(); + if (historyList.size() == 0) { undoButton.setEnabled(false);