X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FRedundancyPanel.java;h=2e8811a9d3d06d73a0c8318124ac0be2ba1d9003;hb=82483c09d45298e6f93a7d3d2b537598cc0451b5;hp=5037a501146653e94b68c1d9a16ccaa93cf5c9a4;hpb=174230b4233d9ce80f94527768d2cd2f76da11ab;p=jalview.git diff --git a/src/jalview/appletgui/RedundancyPanel.java b/src/jalview/appletgui/RedundancyPanel.java index 5037a50..2e8811a 100755 --- a/src/jalview/appletgui/RedundancyPanel.java +++ b/src/jalview/appletgui/RedundancyPanel.java @@ -27,6 +27,7 @@ import java.awt.*; import jalview.datamodel.*; import jalview.appletgui.PaintRefresher; +import jalview.commands.*; public class RedundancyPanel extends SliderPanel implements Runnable, WindowListener { @@ -102,7 +103,7 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList int start, end; - if ( (sg != null) && (sg.getSize(false) >= 1)) + if ( (sg != null) && (sg.getSize() >= 1)) { originalSequences = sg.getSequencesInOrder(ap.av.alignment); start = sg.getStartRes(); @@ -142,8 +143,8 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList if(omitHidden==null) { - seqi = originalSequences[i].getSequence(start, end); - seqj = originalSequences[j].getSequence(start, end); + seqi = originalSequences[i].getSequenceAsString(start, end); + seqj = originalSequences[j].getSequenceAsString(start, end); } else { @@ -187,70 +188,84 @@ public class RedundancyPanel extends SliderPanel implements Runnable, WindowList } ap.idPanel.idCanvas.setHighlighted(redundantSeqs); - - PaintRefresher.Refresh(null,ap.av.alignment); + PaintRefresher.Refresh(this, + ap.av.getSequenceSetId(), + true, + true); } public void applyButton_actionPerformed() - { - historyList.push(new HistoryItem("Remove redundancy", - ap.av.alignment, HistoryItem.HIDE)); + { Vector del = new Vector(); - if ((historyList.size() == 1) || - !ap.alignFrame.historyList.contains(historyList.firstElement())) - { - ap.alignFrame.addHistoryItem((HistoryItem) historyList.firstElement()); - ap.alignFrame.updateEditMenuBar(); - } + undoButton.setEnabled(true); - Vector del = new Vector(); + float value = slider.getValue(); + SequenceGroup sg = ap.av.getSelectionGroup(); - undoButton.setEnabled(true); + for (int i = 0; i < redundancy.length; i++) + { + if (value <= redundancy[i]) + { + del.addElement(originalSequences[i]); + } + } - float value = slider.getValue(); - SequenceGroup sg = ap.av.getSelectionGroup(); + // This has to be done before the restoreHistoryItem method of alignFrame will + // actually restore these sequences. + if (del.size() > 0) + { + SequenceI [] deleted = new SequenceI[del.size()]; - for (int i = 0; i < redundancy.length; i++) - { - if (value <= redundancy[i]) - { - SequenceI seq = originalSequences[i]; - ap.av.alignment.deleteSequence(seq); - del.addElement(seq); - if (sg != null) - { - sg.deleteSequence(seq, false); - } - } - } + int width = 0; + for (int i = 0; i < del.size(); i++) + { + deleted[i] = (SequenceI)del.elementAt(i); + if(deleted[i].getLength()>width) + width = deleted[i].getLength(); + } + EditCommand cut = new EditCommand("Remove Redundancy", + EditCommand.CUT, deleted,0,width,ap.av.alignment); - // This has to be done before the restoreHistoryItem method of alignFrame will - // actually restore these sequences. - if (del.size() > 0) + 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) { - for (int i = 0, j = del.size(); i < j; i++) - { - SequenceI sq = (SequenceI) del.elementAt(i); - sq.deleteChars(0, sq.getLength()); - } + sg.deleteSequence(deleted[i], false); } + } + + historyList.push(cut); - ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences()); - ap.alignFrame.updateEditMenuBar(); + ap.alignFrame.addHistoryItem(cut); + + ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences()); + } } public void undoButton_actionPerformed() { - HistoryItem hi = (HistoryItem) historyList.pop(); - ap.alignFrame.restoreHistoryItem(hi); + CommandI command = (CommandI) historyList.pop(); + command.undoCommand(); + + if (ap.av.historyList.contains(command)) + { + ap.av.historyList.removeElement(command); + ap.alignFrame.updateEditMenuBar(); + } + + ap.repaint(); if (historyList.size() == 0) { undoButton.setEnabled(false); - } - ap.alignFrame.updateEditMenuBar(); + } } public void valueField_actionPerformed(ActionEvent e)