-
Notifications
You must be signed in to change notification settings - Fork 0
/
ToolBarView.java
45 lines (41 loc) · 1.31 KB
/
ToolBarView.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Observable;
import java.util.Observer;
// the edit toolbar
public class ToolBarView extends JPanel implements Observer {
GameModel model;
JButton undo = new JButton("Undo");
JButton redo = new JButton("Redo");
public ToolBarView(GameModel model_) {
model = model_;
model.addObserver(this);
setLayout(new FlowLayout(FlowLayout.LEFT));
setFocusable(false);
// prevent buttons from stealing focus
undo.setFocusable(false);
redo.setFocusable(false);
undo.setEnabled(false);
redo.setEnabled(false);
add(undo);
add(redo);
// controllers for undo menu item
undo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
model.undo();
}
});
// controller for redo menu item
redo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
model.redo();
}
});
}
@Override
public void update(Observable o, Object arg) {
undo.setEnabled(model.canUndo());
redo.setEnabled(model.canRedo());
}
}