6 import java
.awt
.event
.ActionEvent
;
7 import java
.awt
.event
.ActionListener
;
8 import java
.awt
.event
.KeyEvent
;
9 import java
.awt
.event
.KeyListener
;
10 import java
.awt
.event
.MouseEvent
;
11 import java
.awt
.event
.MouseListener
;
12 import java
.awt
.event
.MouseMotionListener
;
13 import java
.awt
.event
.WindowEvent
;
14 import java
.awt
.event
.WindowListener
;
16 public class EventHandler
17 implements WindowListener
, MouseMotionListener
, MouseListener
, KeyListener
,
22 Controller controller
;
24 public EventHandler(Model model
, View view
, Controller controller
) {
27 this.controller
= controller
;
28 view
.setEventHandler(this);
31 public void actionPerformed(ActionEvent e
) {
32 if (e
.getActionCommand()=="cp-start") {
33 if ((view
.cp
.collectdata_checkbox
.isSelected()) &&
34 !(view
.cp
.sx_panel
.isVisible())) {
35 view
.collectDemographics();
37 view
.cp
.sx_panel
.setVisible(false);
39 } else if (e
.getActionCommand()=="sx-start") {
40 /* Store participant information */
41 model
.participant
= new Participant(
42 view
.cp
.sx_name_textfield
.getText(),
43 view
.cp
.sx_email_textfield
.getText(),
44 view
.cp
.genders
[view
.cp
.gender_combobox
.getSelectedIndex()],
45 view
.cp
.handedness
[view
.cp
.handedness_combobox
.getSelectedIndex()],
46 view
.cp
.vision
[view
.cp
.vision_combobox
.getSelectedIndex()],
47 Integer
.valueOf(view
.cp
.sx_age_textfield
.getText())
50 if (e
.getActionCommand()=="cp-start" ||
51 e
.getActionCommand()=="sx-start") {
52 controller
.startTrials();
53 } else if (e
.getActionCommand()=="simmode") {
54 if (view
.cp
.simmode_combobox
.getSelectedItem().toString() ==
56 view
.cp
.trials_spinner
.setEnabled(true);
58 view
.cp
.trials_spinner
.setEnabled(false);
63 public void keyPressed(KeyEvent e
) {
66 public void keyReleased(KeyEvent e
) {
69 public void keyTyped(KeyEvent e
) {
72 public void mouseClicked(MouseEvent e
) {
73 if (model
.stage
== Model
.TrialStage
.FIND
) {
74 model
.mouse_x_clk
= e
.getX();
75 model
.mouse_y_clk
= e
.getY();
76 synchronized (model
.trialThread
) {
77 model
.trialThread
.notifyAll();
82 public void mouseEntered(MouseEvent e
) {
85 public void mouseExited(MouseEvent e
) {
88 public void mousePressed(MouseEvent e
) {
91 public void mouseReleased(MouseEvent e
) {
94 public void mouseDragged(MouseEvent e
) {
97 public void mouseMoved(MouseEvent e
) {
98 if (model
.stage
== Model
.TrialStage
.FIND
) {
99 model
.mouse_x
= e
.getX();
100 model
.mouse_y
= e
.getY();
101 synchronized (model
.trialThread
) {
102 model
.trialThread
.notifyAll();
107 public void windowActivated(WindowEvent e
) {
110 public void windowClosed(WindowEvent e
) {
113 public void windowClosing(WindowEvent e
) {
116 public void windowDeactivated(WindowEvent e
) {
117 view
.trial
.stopTrial();
118 //model.gd.setDisplayMode(model.display_mode_preferred);
121 public void windowDeiconified(WindowEvent e
) {
124 public void windowIconified(WindowEvent e
) {
127 public void windowOpened(WindowEvent e
) {