1 19 package org.columba.addressbook.gui.dialog.contact; 20 21 import java.awt.BorderLayout ; 22 import java.awt.GridLayout ; 23 import java.awt.event.ActionEvent ; 24 import java.awt.event.ActionListener ; 25 import java.awt.event.KeyEvent ; 26 27 import javax.swing.BorderFactory ; 28 import javax.swing.JButton ; 29 import javax.swing.JComponent ; 30 import javax.swing.JDialog ; 31 import javax.swing.JLabel ; 32 import javax.swing.JOptionPane ; 33 import javax.swing.JPanel ; 34 import javax.swing.JTextField ; 35 import javax.swing.KeyStroke ; 36 import javax.swing.SwingConstants ; 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 49 50 public class FullNameDialog extends JDialog implements ActionListener { 51 private JLabel titleLabel; 52 53 private JTextField namePrefixTextField; 54 55 private JLabel fornameLabel; 56 57 private JTextField firstNameTextField; 58 59 private JLabel middlenameLabel; 60 61 private JTextField middleNameTextField; 62 63 private JLabel lastnameLabel; 64 65 private JTextField lastNameTextField; 66 67 private JLabel suffixLabel; 68 69 private JTextField nameSuffixTextField; 70 71 private JButton okButton; 72 73 private JButton cancelButton; 74 75 private boolean success = false; 76 77 public FullNameDialog(JDialog 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 95 public JTextField getFirstNameTextField() { 96 return firstNameTextField; 97 } 98 99 102 public JTextField getLastNameTextField() { 103 return lastNameTextField; 104 } 105 106 109 public JTextField getMiddleNameTextField() { 110 return middleNameTextField; 111 } 112 113 116 public JTextField getNamePrefixTextField() { 117 return namePrefixTextField; 118 } 119 120 123 public JTextField getNameSuffixTextField() { 124 return nameSuffixTextField; 125 } 126 127 protected void layoutComponents() { 128 JPanel mainPanel = new JPanel (); 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 ()); 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 bottomPanel = new JPanel (new BorderLayout ()); 156 bottomPanel.setBorder(new SingleSideEtchedBorder(SwingConstants.TOP)); 157 158 JPanel buttonPanel = new JPanel (new GridLayout (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 (20); 185 titleLabel.setLabelFor(namePrefixTextField); 186 fornameLabel = new LabelWithMnemonic(AddressbookResourceLoader 187 .getString("dialog", "contact", "first_name")); 188 firstNameTextField = new JTextField (20); 189 fornameLabel.setLabelFor(firstNameTextField); 190 middlenameLabel = new LabelWithMnemonic(AddressbookResourceLoader 191 .getString("dialog", "contact", "middle_name")); 192 middleNameTextField = new JTextField (20); 193 middlenameLabel.setLabelFor(middleNameTextField); 194 lastnameLabel = new LabelWithMnemonic(AddressbookResourceLoader 195 .getString("dialog", "contact", "last_name")); 196 lastNameTextField = new JTextField (20); 197 lastnameLabel.setLabelFor(lastNameTextField); 198 suffixLabel = new LabelWithMnemonic(AddressbookResourceLoader 199 .getString("dialog", "contact", "suffix")); 200 nameSuffixTextField = new JTextField (20); 201 suffixLabel.setLabelFor(nameSuffixTextField); 202 } 203 204 public void actionPerformed(ActionEvent event) { 205 if (event.getActionCommand().equals("OK")) { 206 207 210 if (firstNameTextField.getText() != null) { 211 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 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 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 getFormattedName() { 247 StringBuffer buf = new StringBuffer (); 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 |