KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > addressbook > gui > dialog > contact > FullNameDialog


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

19 package org.columba.addressbook.gui.dialog.contact;
20
21 import java.awt.BorderLayout JavaDoc;
22 import java.awt.GridLayout JavaDoc;
23 import java.awt.event.ActionEvent JavaDoc;
24 import java.awt.event.ActionListener JavaDoc;
25 import java.awt.event.KeyEvent JavaDoc;
26
27 import javax.swing.BorderFactory JavaDoc;
28 import javax.swing.JButton JavaDoc;
29 import javax.swing.JComponent JavaDoc;
30 import javax.swing.JDialog JavaDoc;
31 import javax.swing.JLabel JavaDoc;
32 import javax.swing.JOptionPane JavaDoc;
33 import javax.swing.JPanel JavaDoc;
34 import javax.swing.JTextField JavaDoc;
35 import javax.swing.KeyStroke JavaDoc;
36 import javax.swing.SwingConstants JavaDoc;
37
38 import org.columba.addressbook.util.AddressbookResourceLoader;
39 import org.columba.core.gui.base.ButtonWithMnemonic;
40 import org.columba.core.gui.base.LabelWithMnemonic;
41 import org.columba.core.gui.base.SingleSideEtchedBorder;
42
43 import com.jgoodies.forms.builder.DefaultFormBuilder;
44 import com.jgoodies.forms.layout.FormLayout;
45
46 /**
47  * A dialog for editing a contact's full name.
48  */

49
50 public class FullNameDialog extends JDialog JavaDoc implements ActionListener JavaDoc {
51     private JLabel JavaDoc titleLabel;
52
53     private JTextField JavaDoc namePrefixTextField;
54
55     private JLabel JavaDoc fornameLabel;
56
57     private JTextField JavaDoc firstNameTextField;
58
59     private JLabel JavaDoc middlenameLabel;
60
61     private JTextField JavaDoc middleNameTextField;
62
63     private JLabel JavaDoc lastnameLabel;
64
65     private JTextField JavaDoc lastNameTextField;
66
67     private JLabel JavaDoc suffixLabel;
68
69     private JTextField JavaDoc nameSuffixTextField;
70
71     private JButton JavaDoc okButton;
72
73     private JButton JavaDoc cancelButton;
74
75     private boolean success = false;
76
77     public FullNameDialog(JDialog JavaDoc frame) {
78         super(frame, AddressbookResourceLoader.getString("dialog", "contact",
79                 "edit_fullname"), true);
80
81         initComponents();
82         layoutComponents();
83
84         pack();
85         setLocationRelativeTo(null);
86     }
87
88     public boolean getResult() {
89         return success;
90     }
91
92     /**
93      * @return Returns the firstNameTextField.
94      */

95     public JTextField JavaDoc getFirstNameTextField() {
96         return firstNameTextField;
97     }
98
99     /**
100      * @return Returns the lastNameTextField.
101      */

102     public JTextField JavaDoc getLastNameTextField() {
103         return lastNameTextField;
104     }
105
106     /**
107      * @return Returns the middleNameTextField.
108      */

109     public JTextField JavaDoc getMiddleNameTextField() {
110         return middleNameTextField;
111     }
112
113     /**
114      * @return Returns the namePrefixTextField.
115      */

116     public JTextField JavaDoc getNamePrefixTextField() {
117         return namePrefixTextField;
118     }
119
120     /**
121      * @return Returns the nameSuffixTextField.
122      */

123     public JTextField JavaDoc getNameSuffixTextField() {
124         return nameSuffixTextField;
125     }
126
127     protected void layoutComponents() {
128         JPanel JavaDoc mainPanel = new JPanel JavaDoc();
129         mainPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
130
131         FormLayout layout = new FormLayout("right:default, 3dlu, default:grow",
132                 "");
133
134         DefaultFormBuilder b = new DefaultFormBuilder(layout, mainPanel);
135         b.setRowGroupingEnabled(true);
136
137         getContentPane().setLayout(new BorderLayout JavaDoc());
138         getContentPane().add(mainPanel, BorderLayout.CENTER);
139
140         b.append(titleLabel);
141         b.append(namePrefixTextField);
142
143         b.append(fornameLabel);
144         b.append(firstNameTextField);
145
146         b.append(middlenameLabel);
147         b.append(middleNameTextField);
148
149         b.append(lastnameLabel);
150         b.append(lastNameTextField);
151
152         b.append(suffixLabel);
153         b.append(nameSuffixTextField);
154
155         JPanel JavaDoc bottomPanel = new JPanel JavaDoc(new BorderLayout JavaDoc());
156         bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP));
157
158         JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new GridLayout JavaDoc(1, 2, 10, 0));
159         buttonPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
160         bottomPanel.add(buttonPanel, BorderLayout.EAST);
161
162         cancelButton = new ButtonWithMnemonic(AddressbookResourceLoader
163                 .getString(null, "cancel"));
164         cancelButton.setActionCommand("CANCEL");
165         cancelButton.addActionListener(this);
166         buttonPanel.add(cancelButton);
167         okButton = new ButtonWithMnemonic(AddressbookResourceLoader.getString(
168                 null, "ok"));
169         okButton.setActionCommand("OK");
170         okButton.addActionListener(this);
171         buttonPanel.add(okButton);
172
173         getRootPane().registerKeyboardAction(this, "CANCEL",
174                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
175                 JComponent.WHEN_IN_FOCUSED_WINDOW);
176
177         getRootPane().setDefaultButton(okButton);
178         getContentPane().add(bottomPanel, BorderLayout.SOUTH);
179     }
180
181     protected void initComponents() {
182         titleLabel = new LabelWithMnemonic(AddressbookResourceLoader.getString(
183                 "dialog", "contact", "title"));
184         namePrefixTextField = new JTextField JavaDoc(20);
185         titleLabel.setLabelFor(namePrefixTextField);
186         fornameLabel = new LabelWithMnemonic(AddressbookResourceLoader
187                 .getString("dialog", "contact", "first_name"));
188         firstNameTextField = new JTextField JavaDoc(20);
189         fornameLabel.setLabelFor(firstNameTextField);
190         middlenameLabel = new LabelWithMnemonic(AddressbookResourceLoader
191                 .getString("dialog", "contact", "middle_name"));
192         middleNameTextField = new JTextField JavaDoc(20);
193         middlenameLabel.setLabelFor(middleNameTextField);
194         lastnameLabel = new LabelWithMnemonic(AddressbookResourceLoader
195                 .getString("dialog", "contact", "last_name"));
196         lastNameTextField = new JTextField JavaDoc(20);
197         lastnameLabel.setLabelFor(lastNameTextField);
198         suffixLabel = new LabelWithMnemonic(AddressbookResourceLoader
199                 .getString("dialog", "contact", "suffix"));
200         nameSuffixTextField = new JTextField JavaDoc(20);
201         suffixLabel.setLabelFor(nameSuffixTextField);
202     }
203
204     public void actionPerformed(ActionEvent JavaDoc event) {
205         if (event.getActionCommand().equals("OK")) {
206
207             // check if firstname, middlename or lastname contain only valid
208
// characters
209

210             if (firstNameTextField.getText() != null) {
211                 // contains "," comma character
212
if (firstNameTextField.getText().indexOf(",") != -1) {
213                     JOptionPane.showInternalMessageDialog(this,
214                             "Firstname can't contain comma character.");
215                     return;
216                 }
217             }
218             
219             if (middleNameTextField.getText() != null) {
220                 // contains "," comma character
221
if (middleNameTextField.getText().indexOf(",") != -1) {
222                     JOptionPane.showInternalMessageDialog(this,
223                             "Middle name can't contain comma character.");
224                     return;
225                 }
226             }
227             
228             if (lastNameTextField.getText() != null) {
229                 // contains "," comma character
230
if (lastNameTextField.getText().indexOf(",") != -1) {
231                     JOptionPane.showInternalMessageDialog(this,
232                             "Lastname can't contain comma character.");
233                     return;
234                 }
235             }
236
237             success = true;
238             setVisible(false);
239         } else if (event.getActionCommand().equals("CANCEL")) {
240             success = false;
241             setVisible(false);
242         }
243
244     }
245
246     public String JavaDoc getFormattedName() {
247         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
248
249         if (namePrefixTextField.getText().length() > 0) {
250             buf.append(namePrefixTextField.getText() + " ");
251         }
252
253         if (firstNameTextField.getText().length() > 0) {
254             buf.append(firstNameTextField.getText() + " ");
255         }
256
257         if (middleNameTextField.getText().length() > 0) {
258             buf.append(middleNameTextField.getText() + " ");
259         }
260
261         if (lastNameTextField.getText().length() > 0) {
262             buf.append(lastNameTextField.getText() + " ");
263         }
264
265         if (nameSuffixTextField.getText().length() > 0) {
266             buf.append(nameSuffixTextField.getText() + " ");
267         }
268
269         return buf.toString();
270     }
271 }
272
Popular Tags