1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.client.rep.controller;
19
20 import org.vectomatic.client.rep.RepApplication;
21 import org.vectomatic.client.rep.command.CommandHistory;
22 import org.vectomatic.client.rep.events.ICommandHistoryListener;
23 import org.vectomatic.client.rep.view.DrawingView;
24
25
26
27
28 public class UndoController extends ControllerBase implements ICommandHistoryListener {
29 private ControllerPushButton _undoButton;
30 private ControllerMenuItem _undoMenuItem;
31 public UndoController(RepApplication app) {
32 super(app);
33 _app.getHistory().addCommandHistoryListener(this);
34 _undoButton = new ControllerPushButton(_app.getView(), _app.getIcons().undoIcon().createImage(), _app.getIcons().undoDisabledIcon().createImage(), _app.getConstants().undoCommand(), this);
35 _undoMenuItem = new ControllerMenuItem(_app.getView(), _app.getConstants().undoCommand(), this);
36 commandHistoryChange(_app.getHistory());
37 }
38 @Override
39 public void activate(DrawingView view) {
40 _app.getHistory().undo();
41 }
42
43 public void commandHistoryChange(CommandHistory commandHistory) {
44 boolean canUndo = _app.getHistory().canUndo();
45 _undoButton.setEnabled(canUndo);
46 _undoMenuItem.setEnabled(canUndo);
47 String text = _app.getConstants().undoCommand();
48 if (canUndo) {
49 text += " " + _app.getHistory().getUndoCommand().getDescription();
50 _undoMenuItem.setText(text);
51 } else {
52 _undoMenuItem.setText(text);
53 }
54 }
55 public ControllerPushButton getUndoButton() {
56 return _undoButton;
57 }
58 public ControllerMenuItem getUndoMenuItem() {
59 return _undoMenuItem;
60 }
61 }