//! //! undo the last performed action //! public void undoAction() { if (undoActionStack.Count > 1) { for (int i = 0; i < (undoActionStack[undoActionStack.Count - 2] as ArrayList).Count; i++) { ((undoActionStack[undoActionStack.Count - 2] as ArrayList)[i] as Action).execute(); } redoActionStack.Add(undoActionStack[undoActionStack.Count - 1]); mainController.activateRedoButton(); undoActionStack.RemoveAt(undoActionStack.Count - 1); } if (undoActionStack.Count == 1) { mainController.deactivateUndoButton(); } }