-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathView.java
More file actions
62 lines (51 loc) · 2 KB
/
View.java
File metadata and controls
62 lines (51 loc) · 2 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.border.EmptyBorder;
/**
* View class
* Displays and connects parts of GUI, shows data and attaches listeners
*
* @author Anton Samoilov, MSc SD <2459087S@student.gla.ac.uk> 2459087S
*/
public class View extends JFrame {
private Controller controller;
private Model model;
private CardsPanelView cardsPanel;
private MessagesPanelView messagesPanel;
public ControlsPanelView controlsPanel;
public JButton spinButton, newGameButton;
public View(Model model, Controller controller) {
this.controller = controller;
this.model = model;
final int UNIT = 20;
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(UNIT * 30, UNIT * 20);
setLocation(UNIT * 10, UNIT * 10);
setTitle("Fruit Machine");
renderPanels(UNIT);
}
private void renderPanels(int UNIT) {
JPanel wrapper = new JPanel();
wrapper.setBorder(new EmptyBorder(UNIT, UNIT, UNIT, UNIT));
wrapper.setLayout(new GridLayout(2, 2));
messagesPanel = new MessagesPanelView(UNIT, model.getBalanceMessage(), model.getMessage(),
model.getEndGameStatus());
wrapper.add(messagesPanel);
JPanel emptyPanel = new JPanel();
wrapper.add(emptyPanel);
cardsPanel = new CardsPanelView(UNIT, model.getCardOne(), model.getCardTwo(), model.getCardThree());
wrapper.add(cardsPanel);
controlsPanel = new ControlsPanelView(UNIT, controller);
wrapper.add(controlsPanel, BorderLayout.CENTER);
this.add(wrapper);
}
public void updateView() {
messagesPanel.updateBalance(model.getBalanceMessage());
messagesPanel.updateMessage(model.getMessage());
messagesPanel.updateEndGame(model.getEndGameStatus());
cardsPanel.updateCards(model.getCardOne(), model.getCardTwo(), model.getCardThree());
}
}