-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBoardViewControl.java
More file actions
95 lines (80 loc) · 2.31 KB
/
BoardViewControl.java
File metadata and controls
95 lines (80 loc) · 2.31 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.awt.BorderLayout;
import java.util.Observable;
import java.util.Observer;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JPanel;
public class BoardViewControl extends JPanel implements Observer{
private ControlPanelModel model;
private JButton connect, refresh, scoreboard;
private DefaultListModel<String> defaultList;
private JList<String> list;
private JPanel panel;
/**
* sets the buttons and adds events to them
* @param model
*/
public BoardViewControl(ControlPanelModel model){
super();
this.model = model;
panel = new JPanel(); // JPanel for the buttons
connect = new JButton("Connect"); // connect button
refresh = new JButton("Refresh"); // refresh button
scoreboard = new JButton("Scoreboard"); // scoreboard button
defaultList = new DefaultListModel<>(); // JList to show the users
list = new JList<String>(defaultList);
/*
* get the elements from an array and list them in the JList
*/
refresh.addActionListener(e -> {
model.setUsersSend(true);
try {
//wait to receive the required information.
Thread.sleep(1000);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
defaultList.removeAllElements();
for(int i = 0; i < model.getUsersCount(); i++){
defaultList.addElement(model.getUser(i));
}
});
/*
* selects the current user
*/
connect.addActionListener(e -> {
String selectedUser = list.getSelectedValue();
model.setSelectedUser(selectedUser);
});
/*
* gets the scoreboard array and list all users results in a JList
*/
scoreboard.addActionListener(e -> {
model.setScoreboard(true);
try {
//wait to receive the required information.
Thread.sleep(1000);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
defaultList.removeAllElements();
for(int i = 0; i < model.getScoreboardArraySize(); i++){
defaultList.addElement(model.getScoreboardUser(i));
}
});
panel.add(connect);
panel.add(refresh);
panel.add(scoreboard);
setLayout(new BorderLayout());
add(list);
add(panel, BorderLayout.NORTH);
}
@Override
public void update(Observable o, Object arg) {
// TODO Auto-generated method stub
repaint();
}
}