Source code: org/zazof/jteg/gui/ConnectDialog.java
1 package org.zazof.jteg.gui;
2
3 import javax.swing.*;
4 import javax.swing.border.*;
5 import java.awt.*;
6 import java.awt.event.*;
7 import org.zazof.jteg.*;
8
9 /**
10 * This class implements the ConnectionDialog, which allows the use to connect to a server, either as a player or observer.
11 *
12 * @author Jef De Geeter
13 * @author Yves Vandewoude
14 *
15 */
16
17
18 public class ConnectDialog extends JDialog implements WindowListener{
19
20 public ConnectDialog(MainFrame mainFrame){
21 super(mainFrame);
22
23 $mainFrame = mainFrame;
24 addWindowListener(this);
25
26 Dimension dimension = new Dimension(230,200);
27 setSize(dimension);
28
29 setVisible(true);
30 setResizable(false);
31
32 getContentPane().setLayout(new BorderLayout());
33
34 JPanel button_panel = new JPanel();
35 JButton ok_button = new JButton(LanguageManager.getInstance().lookup("ok"));
36
37 ok_button.addActionListener(new ActionListener(){
38 public void actionPerformed(ActionEvent ae){
39 if (DEBUG) System.out.println("ConnectDialog: Removing ConnectionDialog");
40 GameController.getInstance().connectToServer(ConnectDialog.this.getServerName(), ConnectDialog.this.getServerPort(), ConnectDialog.this.getPlayerName(), ConnectDialog.this.getPlayerMode());
41 ConnectDialog.this.setVisible(false);
42 if ((GameController.getInstance().getPlayerMode() == 1) && (JTEGStateMachine.getInstance().getCurrentState() == JTEGStateMachine.CONNECTING))
43 {
44 JTEGStateMachine.getInstance().setCurrentState(JTEGStateMachine.CHOOSING_COLORS);
45 ConnectDialog.this.$mainFrame.showColorchooserDialog();
46 }
47 }
48 });
49
50 JButton cancel_button = new JButton(LanguageManager.getInstance().lookup("Cancel"));
51 cancel_button.addActionListener(new ActionListener(){
52 public void actionPerformed(ActionEvent ae){
53 ConnectDialog.this.setVisible(false);
54 JTEGStateMachine.getInstance().setCurrentState(JTEGStateMachine.DISCONNECTED);
55 }
56 });
57 button_panel.add(ok_button);
58 button_panel.add(cancel_button);
59
60 Box textfield_box = new Box(BoxLayout.Y_AXIS);
61 $serverField = new JTextField("localhost", 10);
62 $portField = new JTextField("2000", 6);
63 $nameField = new JTextField("", 10);
64 textfield_box.add($serverField);
65 textfield_box.add($portField);
66 textfield_box.add($nameField);
67
68 Box label_box = new Box(BoxLayout.Y_AXIS);
69 label_box.add(new JLabel(LanguageManager.getInstance().lookup("servername")));
70 label_box.add(new JLabel(LanguageManager.getInstance().lookup("serverport")));
71 label_box.add(new JLabel(LanguageManager.getInstance().lookup("name")));
72
73 Box b = new Box(BoxLayout.X_AXIS);
74 b.add(label_box);
75 b.add(textfield_box);
76
77 // make 2 radio buttons for selecting observer or player mode
78 ButtonGroup bg = new ButtonGroup();
79 observer = new JRadioButton(LanguageManager.getInstance().lookup("observermode"), true);
80 player = new JRadioButton(LanguageManager.getInstance().lookup("playermode"), false);
81 bg.add(observer); bg.add(player);
82
83 Box radio_box = new Box(BoxLayout.Y_AXIS);
84 radio_box.add(observer);
85 radio_box.add(player);
86
87 getContentPane().add(radio_box, BorderLayout.NORTH);
88 getContentPane().add(b, BorderLayout.CENTER);
89 getContentPane().add(button_panel, BorderLayout.SOUTH);
90 }
91
92 public String getServerName(){
93 return $serverField.getText();
94 }
95
96 public int getServerPort(){
97 return Integer.parseInt($portField.getText());
98 }
99
100 public String getPlayerName(){
101 return $nameField.getText();
102 }
103
104 public int getPlayerMode(){
105 int result = 0;
106 if (observer.isSelected()) result = 0;
107 if (player.isSelected()) result = 1;
108 if (DEBUG) System.out.println("Selected mode: " + result);
109 return result;
110 }
111
112 // implementation of interface WindowListener
113 public void windowOpened(WindowEvent we){
114 }
115
116 public void windowClosed(WindowEvent we){
117 }
118
119 public void windowClosing(WindowEvent we){
120 System.out.println("Closing Dialog");
121 ConnectDialog.this.setVisible(false);
122 JTEGStateMachine.getInstance().setCurrentState(JTEGStateMachine.DISCONNECTED);
123 }
124
125 public void windowIconified(WindowEvent we){
126 }
127
128 public void windowDeiconified(WindowEvent we){
129 }
130
131 public void windowActivated(WindowEvent we){
132 }
133
134 public void windowDeactivated(WindowEvent we){
135 }
136
137
138
139 private JTextField $serverField;
140 private JTextField $portField;
141 private JTextField $nameField;
142 private JRadioButton observer;
143 private JRadioButton player;
144 private MainFrame $mainFrame;
145
146 private static boolean DEBUG = false;
147
148
149 }