X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=78c956b43439b413f4e35d9371b22ae5def133a6;hb=dd4cc875a15a345a7245083fba46ce6013d8cff9;hp=dd4ff383f2136c2e2a356af56a3826fcc61657fc;hpb=baf71a063ac6499b4f9dc8a03aa0f8bd60394dbe;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index dd4ff38..78c956b 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -101,75 +101,94 @@ public class AlignFrame extends GAlignFrame Stack redoList = new Stack(); void updateEditMenuBar() - { - if(historyList.size()>0) + { + if(historyList.size()>0) + { + undoMenuItem.setEnabled(true); + HistoryItem hi = (HistoryItem)historyList.peek(); + undoMenuItem.setLabel("Undo "+hi.getDescription()); + } + else { - undoMenuItem.setEnabled(true); - Object [] history = (Object[])historyList.elementAt(0); - undoMenuItem.setLabel("Undo "+history[0]); + undoMenuItem.setEnabled(false); + undoMenuItem.setLabel("Undo"); } - else - { - undoMenuItem.setEnabled(false); - undoMenuItem.setLabel("Undo"); - } - if(redoList.size()>0) + if(redoList.size()>0) + { + redoMenuItem.setEnabled(true); + HistoryItem hi = (HistoryItem)redoList.peek(); + redoMenuItem.setLabel("Redo "+hi.getDescription()); + } + else { - redoMenuItem.setEnabled(true); - Object [] history = (Object[])redoList.elementAt(0); - redoMenuItem.setLabel("Redo "+history[0]); + redoMenuItem.setEnabled(false); + redoMenuItem.setLabel("Redo"); } - else - { - redoMenuItem.setEnabled(false); - redoMenuItem.setLabel("Redo"); - } - } + } - public void addHistoryItem(String type) - { - // must make sure we add new sequence objects her, not refs to the existing sequences - redoList.removeAllElements(); - SequenceI[] seq = new SequenceI[viewport.getAlignment().getHeight()]; - for(int i=0; ihi.getSequences().size()-1; i--) + viewport.alignment.deleteSequence(i); + } + } - AlignmentAnnotation[] old = viewport.alignment.getAlignmentAnnotation(); - viewport.setAlignment(new Alignment(seq)); - updateEditMenuBar(); - for (int i = 0; i < old.length; i++) - viewport.alignment.addAnnotation(old[i]); + updateEditMenuBar(); + + viewport.updateConsensus(); + viewport.updateConservation(); + alignPanel.repaint(); + } - viewport.updateConservation(); - viewport.updateConsensus(); - alignPanel.repaint(); - } public void moveSelectedSequences(boolean up) { @@ -261,7 +280,7 @@ public class AlignFrame extends GAlignFrame protected void pasteThis_actionPerformed(ActionEvent e) { - addHistoryItem("Paste"); + addHistoryItem(new HistoryItem("Paste Sequences", viewport.alignment, HistoryItem.PASTE)); paste(false); } @@ -322,7 +341,7 @@ public class AlignFrame extends GAlignFrame protected void delete_actionPerformed(ActionEvent e) { - addHistoryItem("Delete"); + addHistoryItem(new HistoryItem("Delete Sequences", viewport.alignment, HistoryItem.HIDE)); if (viewport.getSelectionGroup() == null) return; @@ -355,23 +374,6 @@ public class AlignFrame extends GAlignFrame - protected void redoMenuItem_actionPerformed(ActionEvent e) - { - Object [] history = (Object[])redoList.pop(); - SequenceI[] seq = (SequenceI[]) history[1]; - - AlignmentAnnotation[] old = viewport.alignment.getAlignmentAnnotation(); - viewport.setAlignment(new Alignment(seq)); - for (int i = 0; i < old.length; i++) - viewport.alignment.addAnnotation(old[i]); - - viewport.updateConservation(); - viewport.updateConsensus(); - updateEditMenuBar(); - alignPanel.repaint(); - } - - protected void deleteGroups_actionPerformed(ActionEvent e) { viewport.alignment.deleteAllGroups(); @@ -412,10 +414,11 @@ public class AlignFrame extends GAlignFrame public void remove2LeftMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("delete columns"); ColumnSelection colSel = viewport.getColumnSelection(); if (colSel.size() > 0) { + addHistoryItem(new HistoryItem("Remove Left",viewport.alignment, + HistoryItem.HIDE)); int min = colSel.getMin(); viewport.getAlignment().trimLeft(min); colSel.compensateForEdit(0,min); @@ -437,10 +440,11 @@ public class AlignFrame extends GAlignFrame public void remove2RightMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("delete columns"); ColumnSelection colSel = viewport.getColumnSelection(); if (colSel.size() > 0) { + addHistoryItem(new HistoryItem("Remove Right",viewport.alignment, + HistoryItem.HIDE)); int max = colSel.getMax(); viewport.getAlignment().trimRight(max); if(viewport.getSelectionGroup()!=null) @@ -463,7 +467,9 @@ public class AlignFrame extends GAlignFrame public void removeGappedColumnMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("delete gapped columns"); + addHistoryItem(new HistoryItem("Remove Gapped Columns", + viewport.alignment, + HistoryItem.HIDE)); viewport.getAlignment().removeGaps(); viewport.updateConservation(); viewport.updateConsensus(); @@ -472,7 +478,9 @@ public class AlignFrame extends GAlignFrame public void removeAllGapsMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("delete all gaps"); + addHistoryItem(new HistoryItem("Remove Gaps", + viewport.alignment, + HistoryItem.HIDE)); SequenceI current; int jSize; for (int i=0; i < viewport.getAlignment().getSequences().size();i++) @@ -860,21 +868,21 @@ public class AlignFrame extends GAlignFrame public void sortPairwiseMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("sort"); + addHistoryItem(new HistoryItem("Pairwise Sort", viewport.alignment, HistoryItem.SORT)); AlignmentSorter.sortByPID(viewport.getAlignment(), viewport.getAlignment().getSequenceAt(0)); alignPanel.repaint(); } public void sortIDMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("sort"); + addHistoryItem(new HistoryItem("ID Sort", viewport.alignment, HistoryItem.SORT)); AlignmentSorter.sortByID( viewport.getAlignment() ); alignPanel.repaint(); } public void sortGroupMenuItem_actionPerformed(ActionEvent e) { - addHistoryItem("sort"); + addHistoryItem(new HistoryItem("Group Sort", viewport.alignment, HistoryItem.SORT)); AlignmentSorter.sortByGroup(viewport.getAlignment()); AlignmentSorter.sortGroups(viewport.getAlignment()); alignPanel.repaint(); @@ -976,7 +984,8 @@ public class AlignFrame extends GAlignFrame { public void actionPerformed(ActionEvent e) { - addHistoryItem("sort"); + addHistoryItem(new HistoryItem("Sort", viewport.alignment, + HistoryItem.SORT)); AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel.getTree()); alignPanel.repaint(); }