X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fgui%2FUndoManager.java;h=b9d9f32993e51adcdb72957f9e5d309822dc811e;hb=92dad5df664287acb51728e9ea599f150765d34a;hp=46a1c8d9de834f231b7a48f4607d33144665d2c5;hpb=da0b1f449260a0b4a94318006382a9039726ef3e;p=GpsPrune.git diff --git a/tim/prune/gui/UndoManager.java b/tim/prune/gui/UndoManager.java index 46a1c8d..b9d9f32 100644 --- a/tim/prune/gui/UndoManager.java +++ b/tim/prune/gui/UndoManager.java @@ -4,7 +4,6 @@ import java.awt.FlowLayout; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.Stack; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JDialog; @@ -19,16 +18,17 @@ import javax.swing.event.ListSelectionListener; import tim.prune.App; import tim.prune.I18nManager; -import tim.prune.undo.UndoOperation; +import tim.prune.undo.UndoStack; /** * Class to manage the selection of actions to undo */ public class UndoManager { - private App _app; - private JDialog _dialog; - private JList _actionList; + private App _app = null; + private JFrame _parentFrame = null; + private JDialog _dialog = null; + private JList _actionList = null; /** @@ -39,20 +39,28 @@ public class UndoManager public UndoManager(App inApp, JFrame inFrame) { _app = inApp; - _dialog = new JDialog(inFrame, I18nManager.getText("dialog.undo.title"), true); - _dialog.setLocationRelativeTo(inFrame); + _parentFrame = inFrame; + } + + /** + * Show the dialog to select which actions to undo + */ + public void show() + { + _dialog = new JDialog(_parentFrame, I18nManager.getText("dialog.undo.title"), true); + _dialog.setLocationRelativeTo(_parentFrame); JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout(3, 3)); mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); - Stack undoStack = inApp.getUndoStack(); + UndoStack undoStack = _app.getUndoStack(); mainPanel.add(new JLabel(I18nManager.getText("dialog.undo.pretext")), BorderLayout.NORTH); String[] undoActions = new String[undoStack.size()]; for (int i=0; i(undoActions); _actionList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); _actionList.setSelectedIndex(0); _actionList.addListSelectionListener(new ListSelectionListener() @@ -91,7 +99,7 @@ public class UndoManager mainPanel.add(buttonPanel, BorderLayout.SOUTH); _dialog.getContentPane().add(mainPanel); _dialog.pack(); - _dialog.show(); + _dialog.setVisible(true); } }