1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.plugin.pircbot;
21
22 import java.awt.GridBagLayout;
23
24 import javax.swing.DefaultComboBoxModel;
25 import javax.swing.JCheckBox;
26 import javax.swing.JComboBox;
27 import javax.swing.JPanel;
28 import javax.swing.JTextField;
29
30 import org.xnap.XNap;
31 import org.xnap.gui.component.DefaultDialog;
32 import org.xnap.gui.component.ValidatedTextField;
33 import org.xnap.gui.util.GridBagHelper;
34 import org.xnap.util.prefs.PortRangeValidator;
35
36 public class PircBotServerDialog extends DefaultDialog {
37
38
39
40 private PircBotServer server;
41
42 private JTextField jtName;
43 private JTextField jtHost;
44 private ValidatedTextField jtPort;
45 private JComboBox jcbNetwork;
46 private JTextField jtNetwork;
47 private JTextField jtPassword;
48 private JTextField jtNick;
49 private JTextField jtAutoJoin;
50 private JCheckBox jcbAutoConnect;
51
52 private JTextField jtConnectCommand;
53
54
55
56 public PircBotServerDialog(PircBotServer server)
57 {
58 this.server = server;
59 initialize();
60 }
61
62
63
64 private void initialize()
65 {
66 setTitle(XNap.tr("Server"));
67
68 JPanel jp = getMainPanel();
69 jp.setLayout(new GridBagLayout());
70
71
72 GridBagHelper.addLabel(jp, XNap.tr("Name"));
73 jtName = new JTextField(server.getName(), 20);
74 GridBagHelper.add(jp, jtName);
75
76
77 GridBagHelper.addLabel(jp, XNap.tr("Network"));
78 jcbNetwork = new JComboBox();
79 jcbNetwork.setEditable(true);
80 jtNetwork = (JTextField)jcbNetwork.getEditor().getEditorComponent();
81 jtNetwork.setText(server.getNetwork());
82 GridBagHelper.add(jp, jcbNetwork);
83
84
85 GridBagHelper.addLabel(jp, XNap.tr("Host"));
86 jtHost = new JTextField(server.getHost(), 20);
87 GridBagHelper.add(jp, jtHost);
88
89
90 GridBagHelper.addLabel(jp, XNap.tr("Port"));
91 jtPort = new ValidatedTextField
92 (server.getPort() + "", 5, ValidatedTextField.NUMBERS_INT);
93 GridBagHelper.add(jp, jtPort, false);
94
95
96 GridBagHelper.addLabel(jp, XNap.tr("Password"));
97 jtPassword = new JTextField(server.getPassword(), 20);
98 GridBagHelper.add(jp, jtPassword);
99
100
101 GridBagHelper.addLabel(jp, XNap.tr("Nick"));
102 jtNick = new JTextField(server.getNick(), 20);
103 GridBagHelper.add(jp, jtNick);
104
105
106 GridBagHelper.addLabel(jp, XNap.tr("Connect Command"));
107 jtConnectCommand = new JTextField(server.getConnectCommand(), 20);
108 GridBagHelper.add(jp, jtConnectCommand);
109
110
111 GridBagHelper.addLabel(jp, XNap.tr("Auto Join"));
112 jtAutoJoin = new JTextField(server.getAutoJoinChannels(), 20);
113 GridBagHelper.add(jp, jtAutoJoin);
114
115
116 jcbAutoConnect = new JCheckBox(XNap.tr("Auto Connect"));
117 jcbAutoConnect.setSelected(server.getAutoConnect());
118 GridBagHelper.add(jp, jcbAutoConnect);
119
120 pack();
121 }
122
123 public boolean apply()
124 {
125 String name = jtName.getText().trim();
126 if (name.length() == 0) {
127 throw new IllegalArgumentException("Please provide a name.");
128 }
129
130 String host = jtHost.getText().trim();
131 if (host.length() == 0) {
132 throw new IllegalArgumentException("Please provide a host.");
133 }
134
135 int port = jtPort.getIntValue();
136 (new PortRangeValidator()).validate(port + "");
137
138 server.setName(name);
139 server.setNetwork(jtNetwork.getText());
140 server.setHost(host);
141 server.setPort(port);
142 server.setPassword(jtPassword.getText());
143 server.setNick(jtNick.getText());
144 server.setAutoJoinChannels(jtAutoJoin.getText());
145 server.setConnectCommand(jtConnectCommand.getText());
146 server.setAutoConnect(jcbAutoConnect.isSelected());
147
148 return true;
149 }
150
151 public PircBotServer getServer()
152 {
153 return server;
154 }
155
156 public void setNetworks(String[] networks)
157 {
158
159 String network = jtNetwork.getText();
160
161 DefaultComboBoxModel dcbm = new DefaultComboBoxModel(networks);
162 jcbNetwork.setModel(dcbm);
163
164
165 jtNetwork.setText(network);
166 }
167
168 }
169