1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp; 26 27 import java.util.ArrayList ; 28 import java.util.Collection ; 29 import java.util.Iterator ; 30 import java.util.Map ; 31 import java.util.List ; 32 import java.util.ResourceBundle ; 33 import java.util.SortedMap ; 34 35 import java.awt.Dimension ; 36 import javax.swing.JPanel ; 37 import javax.swing.DefaultComboBoxModel ; 38 39 import java.util.Locale ; 40 41 import org.netbeans.modules.j2ee.sun.share.Constants; 42 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion; 43 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.ValidationSupport; 44 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableDialogPanelAccessor; 45 46 import org.netbeans.modules.j2ee.sun.share.CharsetMapping; 47 48 49 53 public class LocaleCharsetMapEntryPanel extends JPanel implements GenericTableDialogPanelAccessor { 54 55 private static final ResourceBundle webappBundle = ResourceBundle.getBundle( 56 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); 58 private static final ResourceBundle commonBundle = ResourceBundle.getBundle( 59 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.Bundle"); 61 private static final String DEFAULT_CHARSET="UTF8"; 63 private static final int LOCALE_FIELD = 0; 65 private static final int CHARSET_FIELD = 1; 66 private static final int AGENT_FIELD = 2; 67 private static final int DESCRIPTION_FIELD = 3; 68 private static final int NUM_FIELDS = 4; 70 private LocaleMapping localeMap; 72 private CharsetMapping charsetMap; 73 private String agent; 74 private String description; 75 76 private DefaultComboBoxModel localeCbxModel; 77 private DefaultComboBoxModel charsetCbxModel; 78 79 80 public LocaleCharsetMapEntryPanel() { 81 initComponents(); 82 initUserComponents(); 83 } 84 85 90 private void initComponents() { 92 java.awt.GridBagConstraints gridBagConstraints; 93 94 jLblLocaleReqFlag = new javax.swing.JLabel (); 95 jLblLocale = new javax.swing.JLabel (); 96 jCbxLocale = new javax.swing.JComboBox (); 97 jLblCharsetReqFlag = new javax.swing.JLabel (); 98 jLblCharset = new javax.swing.JLabel (); 99 jCbxCharset = new javax.swing.JComboBox (); 100 jLblFiller1 = new javax.swing.JLabel (); 101 jLblAgent = new javax.swing.JLabel (); 102 jTxtAgent = new javax.swing.JTextField (); 103 jLblFiller2 = new javax.swing.JLabel (); 104 jLblDescription = new javax.swing.JLabel (); 105 jTxtDescription = new javax.swing.JTextField (); 106 107 setLayout(new java.awt.GridBagLayout ()); 108 109 jLblLocaleReqFlag.setLabelFor(jCbxLocale); 110 jLblLocaleReqFlag.setText(commonBundle.getString("LBL_RequiredMark")); 111 gridBagConstraints = new java.awt.GridBagConstraints (); 112 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 113 add(jLblLocaleReqFlag, gridBagConstraints); 114 jLblLocaleReqFlag.getAccessibleContext().setAccessibleName(commonBundle.getString("ACSN_RequiredMark")); 115 jLblLocaleReqFlag.getAccessibleContext().setAccessibleDescription(commonBundle.getString("ACSD_RequiredMark")); 116 117 jLblLocale.setDisplayedMnemonic(webappBundle.getString("MNE_Locale").charAt(0)); 118 jLblLocale.setLabelFor(jCbxLocale); 119 jLblLocale.setText(webappBundle.getString("LBL_Locale_1")); 120 gridBagConstraints = new java.awt.GridBagConstraints (); 121 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 122 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 123 add(jLblLocale, gridBagConstraints); 124 125 jCbxLocale.setPrototypeDisplayValue(""); 126 jCbxLocale.addActionListener(new java.awt.event.ActionListener () { 127 public void actionPerformed(java.awt.event.ActionEvent evt) { 128 jCbxLocaleActionPerformed(evt); 129 } 130 }); 131 132 gridBagConstraints = new java.awt.GridBagConstraints (); 133 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 134 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 135 gridBagConstraints.weightx = 1.0; 136 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 137 add(jCbxLocale, gridBagConstraints); 138 jCbxLocale.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_Locale")); 139 jCbxLocale.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_Locale")); 140 141 jLblCharsetReqFlag.setLabelFor(jCbxCharset); 142 jLblCharsetReqFlag.setText(commonBundle.getString("LBL_RequiredMark")); 143 gridBagConstraints = new java.awt.GridBagConstraints (); 144 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 145 add(jLblCharsetReqFlag, gridBagConstraints); 146 jLblCharsetReqFlag.getAccessibleContext().setAccessibleName(commonBundle.getString("ACSN_RequiredMark")); 147 jLblCharsetReqFlag.getAccessibleContext().setAccessibleDescription(commonBundle.getString("ACSD_RequiredMark")); 148 149 jLblCharset.setDisplayedMnemonic(webappBundle.getString("MNE_CharacterSet").charAt(0)); 150 jLblCharset.setLabelFor(jCbxCharset); 151 jLblCharset.setText(webappBundle.getString("LBL_CharacterSet_1")); 152 gridBagConstraints = new java.awt.GridBagConstraints (); 153 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 154 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 155 add(jLblCharset, gridBagConstraints); 156 157 jCbxCharset.setPrototypeDisplayValue(""); 158 jCbxCharset.addActionListener(new java.awt.event.ActionListener () { 159 public void actionPerformed(java.awt.event.ActionEvent evt) { 160 jCbxCharsetActionPerformed(evt); 161 } 162 }); 163 164 gridBagConstraints = new java.awt.GridBagConstraints (); 165 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 166 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 167 gridBagConstraints.weightx = 1.0; 168 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 169 add(jCbxCharset, gridBagConstraints); 170 jCbxCharset.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_CharacterSet")); 171 jCbxCharset.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_CharacterSet")); 172 173 gridBagConstraints = new java.awt.GridBagConstraints (); 174 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 175 add(jLblFiller1, gridBagConstraints); 176 177 jLblAgent.setDisplayedMnemonic(webappBundle.getString("MNE_Agent").charAt(0)); 178 jLblAgent.setLabelFor(jTxtAgent); 179 jLblAgent.setText(webappBundle.getString("LBL_Agent_1")); 180 gridBagConstraints = new java.awt.GridBagConstraints (); 181 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 182 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 183 add(jLblAgent, gridBagConstraints); 184 185 jTxtAgent.addKeyListener(new java.awt.event.KeyAdapter () { 186 public void keyReleased(java.awt.event.KeyEvent evt) { 187 jTxtAgentKeyReleased(evt); 188 } 189 }); 190 191 gridBagConstraints = new java.awt.GridBagConstraints (); 192 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 193 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 194 gridBagConstraints.weightx = 1.0; 195 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 196 add(jTxtAgent, gridBagConstraints); 197 jTxtAgent.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_Agent")); 198 jTxtAgent.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_Agent")); 199 200 gridBagConstraints = new java.awt.GridBagConstraints (); 201 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 0); 202 add(jLblFiller2, gridBagConstraints); 203 204 jLblDescription.setDisplayedMnemonic(webappBundle.getString("MNE_LocaleDescription").charAt(0)); 205 jLblDescription.setLabelFor(jTxtDescription); 206 jLblDescription.setText(webappBundle.getString("LBL_LocaleDescription_1")); 207 gridBagConstraints = new java.awt.GridBagConstraints (); 208 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 209 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 0); 210 add(jLblDescription, gridBagConstraints); 211 212 jTxtDescription.addKeyListener(new java.awt.event.KeyAdapter () { 213 public void keyReleased(java.awt.event.KeyEvent evt) { 214 jTxtDescriptionKeyReleased(evt); 215 } 216 }); 217 218 gridBagConstraints = new java.awt.GridBagConstraints (); 219 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 220 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 221 gridBagConstraints.weightx = 1.0; 222 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 5); 223 add(jTxtDescription, gridBagConstraints); 224 jTxtDescription.getAccessibleContext().setAccessibleName(webappBundle.getString("ACSN_LocaleDescription")); 225 jTxtDescription.getAccessibleContext().setAccessibleDescription(webappBundle.getString("ACSD_LocaleDescription")); 226 227 } 229 private void jCbxCharsetActionPerformed(java.awt.event.ActionEvent evt) { charsetMap = (CharsetMapping) charsetCbxModel.getSelectedItem(); 232 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 233 } 235 private void jCbxLocaleActionPerformed(java.awt.event.ActionEvent evt) { localeMap = (LocaleMapping) localeCbxModel.getSelectedItem(); 238 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 239 } 241 private void jTxtDescriptionKeyReleased(java.awt.event.KeyEvent evt) { description = jTxtDescription.getText(); 244 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 245 } 247 private void jTxtAgentKeyReleased(java.awt.event.KeyEvent evt) { agent = jTxtAgent.getText(); 250 firePropertyChange(Constants.USER_DATA_CHANGED, null, null); 251 } 253 private javax.swing.JComboBox jCbxCharset; 255 private javax.swing.JComboBox jCbxLocale; 256 private javax.swing.JLabel jLblAgent; 257 private javax.swing.JLabel jLblCharset; 258 private javax.swing.JLabel jLblCharsetReqFlag; 259 private javax.swing.JLabel jLblDescription; 260 private javax.swing.JLabel jLblFiller1; 261 private javax.swing.JLabel jLblFiller2; 262 private javax.swing.JLabel jLblLocale; 263 private javax.swing.JLabel jLblLocaleReqFlag; 264 private javax.swing.JTextField jTxtAgent; 265 private javax.swing.JTextField jTxtDescription; 266 268 protected void initUserComponents() { 269 localeCbxModel = new DefaultComboBoxModel (); 270 SortedMap locales = LocaleMapping.getSortedAvailableLocaleMappings(); 271 for(Iterator iter = locales.entrySet().iterator(); iter.hasNext(); ) { 272 LocaleMapping lm = (LocaleMapping) ((Map.Entry ) iter.next()).getValue(); 273 localeCbxModel.addElement(lm); 274 } 275 jCbxLocale.setModel(localeCbxModel); 276 jCbxLocale.setSelectedItem(LocaleMapping.getLocaleMapping(Locale.getDefault())); 277 278 charsetCbxModel = new DefaultComboBoxModel (); 279 SortedMap charsets = CharsetMapping.getSortedAvailableCharsetMappings(); 280 for(Iterator iter = charsets.entrySet().iterator(); iter.hasNext(); ) { 281 CharsetMapping cm = (CharsetMapping) ((Map.Entry ) iter.next()).getValue(); 282 charsetCbxModel.addElement(cm); 283 } 284 jCbxCharset.setModel(charsetCbxModel); 285 jCbxCharset.setSelectedItem(CharsetMapping.getCharsetMapping(DEFAULT_CHARSET)); 286 } 287 288 public Collection getErrors(ValidationSupport validationSupport) { 289 ArrayList errorList = new ArrayList (); 290 291 if(localeMap == null) { 292 errorList.add(webappBundle.getString("ERR_LocaleFieldRequired")); } else if(charsetMap == null) { 294 errorList.add(webappBundle.getString("ERR_CharsetFieldRequired")); } 296 297 return errorList; 298 } 299 300 public Object [] getValues() { 301 Object [] result = new Object [NUM_FIELDS]; 302 303 if(localeMap != null) { 304 result[LOCALE_FIELD] = localeMap.getLocale().toString(); 305 } 306 307 if(charsetMap != null) { 308 result[CHARSET_FIELD] = charsetMap.getCharset().toString(); 309 } 310 311 result[AGENT_FIELD] = agent; 312 result[DESCRIPTION_FIELD] = description; 313 return result; 314 } 315 316 public void init(ASDDVersion asVersion, int preferredWidth, List entries, Object data) { 317 setPreferredSize(new Dimension (preferredWidth, getPreferredSize().height)); 318 } 319 320 public void setValues(Object [] values) { 321 if(values != null && values.length == NUM_FIELDS) { 322 localeMap = LocaleMapping.getLocaleMapping((String ) values[LOCALE_FIELD]); 323 charsetMap = CharsetMapping.getCharsetMapping((String ) values[CHARSET_FIELD]); 324 agent = (String ) values[AGENT_FIELD]; 325 description = (String ) values[DESCRIPTION_FIELD]; 326 } else { 327 if(values != null) { 328 assert (values.length == NUM_FIELDS); } 330 331 localeMap = LocaleMapping.getLocaleMapping(Locale.getDefault()); 333 charsetMap = null; agent = ""; description = ""; } 337 338 setComponentValues(); 339 } 340 341 private void setComponentValues() { 342 jCbxLocale.setSelectedItem(localeMap); 343 jCbxCharset.setSelectedItem(charsetMap); 344 jTxtAgent.setText(agent); 345 jTxtDescription.setText(description); 346 } 347 348 public boolean requiredFieldsFilled() { 349 return (localeMap != null && charsetMap != null); 350 } 351 } 352 | Popular Tags |