X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fundo%2FUndoStack.java;fp=tim%2Fprune%2Fundo%2FUndoStack.java;h=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hp=d3e85e02e3f5d078eb49ac612e084528d34eae1c;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465;p=GpsPrune.git diff --git a/tim/prune/undo/UndoStack.java b/tim/prune/undo/UndoStack.java deleted file mode 100644 index d3e85e0..0000000 --- a/tim/prune/undo/UndoStack.java +++ /dev/null @@ -1,62 +0,0 @@ -package tim.prune.undo; - -import java.util.Stack; - -/** - * Class to hold an undo operation together with a counter - */ -class UndoOpWithState -{ - public UndoOperation _undoOperation = null; - public int _undoCounter = 0; - /** Constructor */ - public UndoOpWithState(UndoOperation inOp, int inCounter) - { - _undoOperation = inOp; - _undoCounter = inCounter; - } -} - -/** - * Stack of undo operations - * which also remembers how many undos have been performed - */ -public class UndoStack extends Stack -{ - /** Number of undos (and clears) already performed */ - private int _numUndos = 0; - - @Override - public void clear() - { - _numUndos++; - super.clear(); - } - - /** Add an undo operation to the stack */ - public synchronized boolean add(UndoOperation inOp) - { - return super.add(new UndoOpWithState(inOp, _numUndos)); - } - - /** Pop the latest operation from the stack */ - public synchronized UndoOperation popOperation() - { - _numUndos++; - return super.pop()._undoOperation; - } - - /** Get the operation at the given index */ - public UndoOperation getOperationAt(int inIndex) - { - return super.elementAt(inIndex)._undoOperation; - } - - /** @return number of undos */ - public int getNumUndos() - { - if (isEmpty()) {return 0;} - // Get the number of undos stored by the last operation on the stack - return peek()._undoCounter; - } -}