ap.alignFrame.addHistoryItem(cut);
PaintRefresher.Refresh(this, ap.av.getSequenceSetId(), true, true);
- // ap.av.firePropertyChange("alignment", null, ap.av.getAlignment()
- // .getSequences());
+ ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());
}
}
{
ap.av.historyList.removeElement(command);
ap.alignFrame.updateEditMenuBar();
+ ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());
}
ap.paintAlignment(true);
*/
package jalview.commands;
-import java.util.*;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
-import jalview.datamodel.*;
+import java.util.Hashtable;
+import java.util.List;
/**
*
@Override
final public void undoCommand(AlignmentI[] views)
- {
- int e = 0, eSize = edits.length;
- for (e = eSize - 1; e > -1; e--)
- {
- switch (edits[e].command)
- {
- case INSERT_GAP:
- deleteGap(edits[e]);
- break;
- case DELETE_GAP:
- insertGap(edits[e]);
- break;
- case CUT:
- paste(edits[e], views);
- break;
- case PASTE:
- cut(edits[e], views);
- break;
- case REPLACE:
- replace(edits[e]);
- break;
- }
+ {
+ for(Edit e : edits){
+ switch (e.command)
+ {
+ case INSERT_GAP:
+ deleteGap(e);
+ break;
+ case DELETE_GAP:
+ insertGap(e);
+ break;
+ case CUT:
+ paste(e, views);
+ break;
+ case PASTE:
+ cut(e, views);
+ break;
+ case REPLACE:
+ replace(e);
+ break;
+ }
}
}
List<SequenceI> sequences;
synchronized (sequences = command.al.getSequences())
{
- sequences.add(command.alIndex[i], command.seqs[i]);
+ if (!(command.alIndex[i] < 0))
+ {
+ sequences.add(command.alIndex[i], command.seqs[i]);
+ }
}
}
else
+ command.number);
}
if (command.seqs[i].getStart() == start)
+ {
newstart--;
+ }
else
+ {
newend++;
+ }
}
}
command.string[i] = null;
{
temp = new Annotation[aSize + command.number];
if (annotations[a].padGaps)
+ {
for (int aa = 0; aa < temp.length; aa++)
{
temp[aa] = new Annotation(command.gapChar + "", null, ' ', 0);
}
+ }
}
else
{
int copylen = Math.min(command.position,
annotations[a].annotations.length);
if (copylen > 0)
+ {
System.arraycopy(annotations[a].annotations, 0, temp, 0,
copylen); // command.position);
+ }
Annotation[] deleted = new Annotation[command.number];
if (copylen >= command.position)
ap.alignFrame.addHistoryItem(cut);
PaintRefresher.Refresh(this, ap.av.getSequenceSetId(), true, true);
- // ap.av.firePropertyChange("alignment", null, ap.av.getAlignment()
- // .getSequences());
+ ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());
}
}
*/
public void undoButton_actionPerformed(ActionEvent e)
{
+ if(historyList == null || historyList.isEmpty()){
+ undoButton.setEnabled(false);
+ return;
+ }
+
CommandI command = (CommandI) historyList.pop();
- command.undoCommand(af.getViewAlignments());
-
if (ap.av.historyList.contains(command))
{
+ command.undoCommand(af.getViewAlignments());
ap.av.historyList.remove(command);
+ ap.av.firePropertyChange("alignment", null, ap.av.getAlignment().getSequences());
af.updateEditMenuBar();
}