From a6475449c2004ad5941ede6a89f4d8149f695e47 Mon Sep 17 00:00:00 2001 From: JxDannyxJ Date: Mon, 27 Mar 2017 18:05:58 +0200 Subject: [PATCH] The Undo/Redo action has thrown exceptions when no more items were part of the stack. This exceptions are caught in the actionPerformed method and logged to the console on Log Level "Debug" with a simple "beep" sound for the user to notify an empty stack --- .../topographycreator/control/ActionRedo.java | 17 ++++++++++++++--- .../topographycreator/control/ActionUndo.java | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/VadereGui/src/org/vadere/gui/topographycreator/control/ActionRedo.java b/VadereGui/src/org/vadere/gui/topographycreator/control/ActionRedo.java index e839748bc..c9ba6c315 100644 --- a/VadereGui/src/org/vadere/gui/topographycreator/control/ActionRedo.java +++ b/VadereGui/src/org/vadere/gui/topographycreator/control/ActionRedo.java @@ -1,9 +1,14 @@ package org.vadere.gui.topographycreator.control; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.apache.log4j.Priority; + +import java.awt.*; import java.awt.event.ActionEvent; -import javax.swing.AbstractAction; -import javax.swing.ImageIcon; +import javax.swing.*; +import javax.swing.undo.CannotRedoException; import javax.swing.undo.UndoManager; /** @@ -15,6 +20,7 @@ public class ActionRedo extends AbstractAction { private static final long serialVersionUID = 4975524648404524891L; private final UndoManager undoManager; private final TopographyAction action; + private static Logger logger = LogManager.getLogger(ActionRedo.class); public ActionRedo(final String name, final ImageIcon icon, final UndoManager undoManager, final TopographyAction action) { @@ -25,7 +31,12 @@ public class ActionRedo extends AbstractAction { @Override public void actionPerformed(ActionEvent arg0) { - undoManager.redo(); + try { + undoManager.redo(); + } catch (CannotRedoException e) { + logger.log(Priority.DEBUG, "Cannot redo! List of edits is empty!"); + Toolkit.getDefaultToolkit().beep(); + } action.actionPerformed(arg0); } } diff --git a/VadereGui/src/org/vadere/gui/topographycreator/control/ActionUndo.java b/VadereGui/src/org/vadere/gui/topographycreator/control/ActionUndo.java index 7c5eb456c..0d5ca9c15 100644 --- a/VadereGui/src/org/vadere/gui/topographycreator/control/ActionUndo.java +++ b/VadereGui/src/org/vadere/gui/topographycreator/control/ActionUndo.java @@ -1,9 +1,14 @@ package org.vadere.gui.topographycreator.control; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.apache.log4j.Priority; + +import java.awt.*; import java.awt.event.ActionEvent; -import javax.swing.AbstractAction; -import javax.swing.ImageIcon; +import javax.swing.*; +import javax.swing.undo.CannotUndoException; import javax.swing.undo.UndoManager; /** @@ -16,6 +21,7 @@ public class ActionUndo extends AbstractAction { private static final long serialVersionUID = 6022031098257929748L; private final UndoManager undoManager; private final TopographyAction action; + private static Logger logger = LogManager.getLogger(ActionUndo.class); public ActionUndo(final String name, final ImageIcon icon, UndoManager undoManager, final TopographyAction action) { super(name, icon); @@ -25,7 +31,13 @@ public class ActionUndo extends AbstractAction { @Override public void actionPerformed(ActionEvent arg0) { - undoManager.undo(); + try { + undoManager.undo(); + } catch (CannotUndoException e) { + logger.log(Priority.DEBUG, "Cannot undo! List of edits is empty!"); + Toolkit.getDefaultToolkit().beep(); + } + action.actionPerformed(arg0); } -- GitLab