public void undo() { if (!mCommandStack.empty()) { AbstractCommand c = pop(); c.undo(); validateCells(); } }
public void undoToCheckpoint() { /* * I originally planned to just call undo but this way it doesn't need to * validateCells() until the run is complete */ AbstractCommand c; while (!mCommandStack.empty()) { c = mCommandStack.pop(); c.undo(); if (mCommandStack.empty() || mCommandStack.peek().isCheckpoint()) { break; } } validateCells(); }