KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > chat > ui > dialog > AccountDialog


1 // The contents of this file are subject to the Mozilla Public License Version
2
// 1.1
3
//(the "License"); you may not use this file except in compliance with the
4
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
5
//
6
//Software distributed under the License is distributed on an "AS IS" basis,
7
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
8
//for the specific language governing rights and
9
//limitations under the License.
10
//
11
//The Original Code is "The Columba Project"
12
//
13
//The Initial Developers of the Original Code are Frederik Dietz and Timo
14
// Stich.
15
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
16
//
17
//All Rights Reserved.
18
package org.columba.chat.ui.dialog;
19
20 import java.awt.BorderLayout JavaDoc;
21 import java.awt.Frame JavaDoc;
22 import java.awt.GridLayout JavaDoc;
23 import java.awt.HeadlessException JavaDoc;
24 import java.awt.event.ActionEvent JavaDoc;
25 import java.awt.event.ActionListener JavaDoc;
26
27 import javax.swing.BorderFactory JavaDoc;
28 import javax.swing.JButton JavaDoc;
29 import javax.swing.JCheckBox JavaDoc;
30 import javax.swing.JDialog JavaDoc;
31 import javax.swing.JPanel JavaDoc;
32 import javax.swing.JSpinner JavaDoc;
33 import javax.swing.JTextField JavaDoc;
34 import javax.swing.SpinnerNumberModel JavaDoc;
35 import javax.swing.SwingConstants JavaDoc;
36
37 import org.columba.addressbook.util.AddressbookResourceLoader;
38 import org.columba.chat.config.api.IAccount;
39 import org.columba.core.gui.base.ButtonWithMnemonic;
40 import org.columba.core.gui.base.SingleSideEtchedBorder;
41
42 import com.jgoodies.forms.builder.DefaultFormBuilder;
43 import com.jgoodies.forms.layout.FormLayout;
44
45 /**
46  *
47  * @author fdietz
48  */

49
50 public class AccountDialog extends JDialog JavaDoc implements ActionListener JavaDoc {
51
52     
53     private JTextField JavaDoc serverTextField;
54
55     private JTextField JavaDoc idTextField;
56
57     // private JPasswordField passwordTextField;
58

59     private JTextField JavaDoc resourceTextField;
60
61     private JSpinner JavaDoc portSpinner;
62
63     private JCheckBox JavaDoc enableSSLCheckBox;
64
65     private JButton JavaDoc okButton;
66
67     private JButton JavaDoc registerButton;
68
69     private IAccount account;
70
71     /**
72      * @throws java.awt.HeadlessException
73      */

74     public AccountDialog(IAccount account) throws HeadlessException JavaDoc {
75         super(new Frame JavaDoc(), true);
76
77         this.account = account;
78
79         initComponents();
80
81         layoutComponents();
82
83         updateComponents(true);
84
85         pack();
86
87         setLocationRelativeTo(null);
88
89         setVisible(true);
90     }
91
92     private void updateComponents(boolean b) {
93         if (b) {
94             idTextField.setText(account.getId());
95             serverTextField.setText(account.getHost());
96             // passwordTextField.setText(account.getPassword());
97
enableSSLCheckBox.setSelected(account.isEnableSSL());
98             resourceTextField.setText(account.getResource());
99
100         } else {
101             account.setHost(getServer());
102             account.setEnableSSL(new Boolean JavaDoc(enableSSLCheckBox.isSelected())
103                     .booleanValue());
104             account.setResource(resourceTextField.getText());
105             account.setId(idTextField.getText());
106
107         }
108     }
109
110     /**
111      *
112      */

113     private void layoutComponents() {
114
115         JPanel JavaDoc panel = new JPanel JavaDoc();
116         panel.setLayout(new BorderLayout JavaDoc());
117
118         getContentPane().add(panel);
119
120         JPanel JavaDoc center = new JPanel JavaDoc();
121         center.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
122
123         panel.add(center, BorderLayout.CENTER);
124
125         FormLayout layout = new FormLayout("right:default, 3dlu, default:grow",
126                 "");
127
128         DefaultFormBuilder b = new DefaultFormBuilder(layout, center);
129         b.setRowGroupingEnabled(true);
130
131         // b.addSeparator("Account Options");
132

133         b.append("&Server:", serverTextField);
134
135         b.append("&User:", idTextField);
136         // b.append("Pass&word:", passwordTextField);
137
b.append("&Resource:", resourceTextField);
138         b.append("&Port:", portSpinner);
139
140         b.append(enableSSLCheckBox, 3);
141
142         JPanel JavaDoc bottomPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
143         bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
144
145         JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new GridLayout JavaDoc(1, 2, 5, 0));
146         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
147         okButton = new ButtonWithMnemonic(AddressbookResourceLoader.getString(
148                 "global", "ok"));
149         okButton.setActionCommand("OK");
150         okButton.addActionListener(this);
151
152         registerButton = new JButton JavaDoc("Register...");
153         registerButton.setActionCommand("REGISTER");
154         registerButton.addActionListener(this);
155
156         buttonPanel.add(registerButton);
157         buttonPanel.add(okButton);
158
159         bottomPanel.add(buttonPanel, BorderLayout.EAST);
160         panel.add(bottomPanel, BorderLayout.SOUTH);
161
162         getRootPane().setDefaultButton(okButton);
163
164     }
165
166     /**
167      *
168      */

169     private void initComponents() {
170
171         enableSSLCheckBox = new JCheckBox JavaDoc("Use Secure Connection (SSL)");
172         enableSSLCheckBox.setMnemonic('s');
173
174         serverTextField = new JTextField JavaDoc(10);
175         idTextField = new JTextField JavaDoc(10);
176         // passwordTextField = new JPasswordField(10);
177
resourceTextField = new JTextField JavaDoc(10);
178         portSpinner = new JSpinner JavaDoc(new SpinnerNumberModel JavaDoc(5222, 1, 65535, 1));
179         portSpinner.setEditor(new JSpinner.NumberEditor JavaDoc(portSpinner, "#####"));
180
181     }
182
183     public String JavaDoc getServer() {
184         return serverTextField.getText();
185     }
186
187     public String JavaDoc getUser() {
188         return idTextField.getText();
189     }
190
191     public String JavaDoc getResource() {
192         return resourceTextField.getText();
193     }
194
195     /*
196      * public String getPassword() { return passwordTextField.getText(); }
197      */

198
199     public boolean enableSSL() {
200         return enableSSLCheckBox.isSelected();
201     }
202
203     /**
204      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
205      */

206     public void actionPerformed(ActionEvent JavaDoc arg0) {
207
208         String JavaDoc action = arg0.getActionCommand();
209
210         if (action.equals("OK")) {
211             updateComponents(false);
212
213             setVisible(false);
214         }
215
216     }
217
218 }
Popular Tags