1 19 24 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp; 25 26 import java.awt.event.ActionListener ; 27 import java.beans.PropertyChangeEvent ; 28 import java.beans.PropertyChangeListener ; 29 import java.util.Iterator ; 30 import java.util.Map ; 31 import java.util.ResourceBundle ; 32 import java.util.SortedMap ; 33 import javax.swing.DefaultComboBoxModel ; 34 import org.netbeans.modules.j2ee.sun.share.CharsetMapping; 35 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion; 36 37 38 42 public class ParameterEncodingPanel extends javax.swing.JPanel { 43 44 private static final ResourceBundle webappBundle = ResourceBundle.getBundle( 45 "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); 47 public static final String PROP_FORM_HINT_FIELD = "formHintField"; public static final String PROP_DEFAULT_CHARSET = "defaultCharset"; 50 private String defaultCharset; 53 private String formHintField; 54 55 private DefaultComboBoxModel defaultCharsetCbxModel; 56 57 private ActionListener defaultCharsetActionListener; 59 60 private PropertyChangeListener charsetChangeListener; 62 63 private boolean as81FeaturesVisible; 65 66 67 public ParameterEncodingPanel() { 68 initComponents(); 69 initUserComponents(); 70 } 71 72 77 private void initComponents() { 79 java.awt.GridBagConstraints gridBagConstraints; 80 81 jLblParameterEncoding = new javax.swing.JLabel (); 82 jPnlParameterEncoding = new javax.swing.JPanel (); 83 jLblDefaultCharset = new javax.swing.JLabel (); 84 jCbxDefaultCharset = new javax.swing.JComboBox (); 85 jLblFormHintField = new javax.swing.JLabel (); 86 jTxtFormHintField = new javax.swing.JTextField (); 87 88 setLayout(new java.awt.GridBagLayout ()); 89 90 jLblParameterEncoding.setLabelFor(jPnlParameterEncoding); 91 jLblParameterEncoding.setText(webappBundle.getString("LBL_ParameterEncoding")); 92 gridBagConstraints = new java.awt.GridBagConstraints (); 93 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 94 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 95 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 96 add(jLblParameterEncoding, gridBagConstraints); 97 98 jPnlParameterEncoding.setLayout(new java.awt.GridBagLayout ()); 99 100 jPnlParameterEncoding.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 101 jLblDefaultCharset.setLabelFor(jCbxDefaultCharset); 102 jLblDefaultCharset.setText(webappBundle.getString("LBL_DefaultCharset_1")); 103 gridBagConstraints = new java.awt.GridBagConstraints (); 104 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 105 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 106 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 107 jPnlParameterEncoding.add(jLblDefaultCharset, gridBagConstraints); 108 109 jCbxDefaultCharset.setPrototypeDisplayValue(""); 110 gridBagConstraints = new java.awt.GridBagConstraints (); 111 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 112 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 113 gridBagConstraints.weightx = 1.0; 114 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 115 jPnlParameterEncoding.add(jCbxDefaultCharset, gridBagConstraints); 116 117 jLblFormHintField.setLabelFor(jTxtFormHintField); 118 jLblFormHintField.setText(webappBundle.getString("LBL_FormHintField_1")); 119 gridBagConstraints = new java.awt.GridBagConstraints (); 120 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 121 gridBagConstraints.ipady = 4; 122 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 123 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 0); 124 jPnlParameterEncoding.add(jLblFormHintField, gridBagConstraints); 125 126 jTxtFormHintField.addKeyListener(new java.awt.event.KeyAdapter () { 127 public void keyReleased(java.awt.event.KeyEvent evt) { 128 jTxtFormHintFieldKeyReleased(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, 5, 5); 137 jPnlParameterEncoding.add(jTxtFormHintField, gridBagConstraints); 138 139 gridBagConstraints = new java.awt.GridBagConstraints (); 140 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 141 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 142 gridBagConstraints.weightx = 1.0; 143 gridBagConstraints.insets = new java.awt.Insets (0, 6, 5, 5); 144 add(jPnlParameterEncoding, gridBagConstraints); 145 146 } 148 private void jTxtFormHintFieldKeyReleased(java.awt.event.KeyEvent evt) { String oldFormHintField = formHintField; 150 formHintField = jTxtFormHintField.getText(); 151 firePropertyChange(PROP_FORM_HINT_FIELD, oldFormHintField, formHintField); 152 } 154 private void jCbxDefaultCharsetActionPerformed(java.awt.event.ActionEvent evt) { 155 String oldDefaultCharset = defaultCharset; 156 Object item = defaultCharsetCbxModel.getSelectedItem(); 157 if(item instanceof CharsetMapping) { 158 defaultCharset = ((CharsetMapping) item).getAlias(); 159 } else { 160 defaultCharset = null; 161 } 162 firePropertyChange(PROP_DEFAULT_CHARSET, oldDefaultCharset, defaultCharset); 163 } 164 165 private javax.swing.JComboBox jCbxDefaultCharset; 167 private javax.swing.JLabel jLblDefaultCharset; 168 private javax.swing.JLabel jLblFormHintField; 169 private javax.swing.JLabel jLblParameterEncoding; 170 private javax.swing.JPanel jPnlParameterEncoding; 171 private javax.swing.JTextField jTxtFormHintField; 172 174 private void initUserComponents() { 175 defaultCharsetCbxModel = new DefaultComboBoxModel (); 177 defaultCharsetCbxModel.addElement(""); SortedMap charsets = CharsetMapping.getSortedAvailableCharsetMappings(); 179 for(Iterator iter = charsets.entrySet().iterator(); iter.hasNext(); ) { 180 CharsetMapping cm = (CharsetMapping) ((Map.Entry ) iter.next()).getValue(); 181 defaultCharsetCbxModel.addElement(cm); 182 } 183 jCbxDefaultCharset.setModel(defaultCharsetCbxModel); 184 185 defaultCharsetActionListener = new java.awt.event.ActionListener () { 186 public void actionPerformed(java.awt.event.ActionEvent evt) { 187 jCbxDefaultCharsetActionPerformed(evt); 188 } 189 }; 190 191 charsetChangeListener = new PropertyChangeListener () { 192 public void propertyChange(PropertyChangeEvent pce) { 193 updateDefaultCharsetModel(); 194 } 195 }; 196 } 197 198 public void addListeners() { 199 jCbxDefaultCharset.addActionListener(defaultCharsetActionListener); 200 CharsetMapping.addPropertyChangeListener(charsetChangeListener); 201 } 202 203 public void removeListeners() { 204 jCbxDefaultCharset.removeActionListener(defaultCharsetActionListener); 205 CharsetMapping.removePropertyChangeListener(charsetChangeListener); 206 } 207 208 public void initFields(ASDDVersion asVersion, String defaultCharset, String formHintField, boolean enabled) { 209 if(ASDDVersion.SUN_APPSERVER_8_0.compareTo(asVersion) >= 0) { 210 showAS81Fields(); 211 } else { 212 hideAS81Fields(); 213 } 214 215 enableFields(enabled); 216 217 if(enabled) { 218 this.defaultCharset = defaultCharset; 220 this.formHintField = formHintField; 221 222 if(as81FeaturesVisible) { 223 defaultCharsetCbxModel.setSelectedItem(CharsetMapping.getCharsetMapping(defaultCharset)); 224 } 225 jTxtFormHintField.setText(formHintField); 226 } else { 227 if(as81FeaturesVisible) { 228 jCbxDefaultCharset.setSelectedItem(null); 229 } 230 jTxtFormHintField.setText(""); 231 } 232 } 233 234 private void showAS81Fields() { 237 if(!as81FeaturesVisible) { 238 jLblDefaultCharset.setVisible(true); 239 jCbxDefaultCharset.setVisible(true); 240 as81FeaturesVisible = true; 241 } 242 } 243 244 private void hideAS81Fields() { 245 if(as81FeaturesVisible) { 246 jLblDefaultCharset.setVisible(false); 247 jCbxDefaultCharset.setVisible(false); 248 as81FeaturesVisible = false; 249 } 250 } 251 252 public String getFormHintField() { 253 return formHintField; 254 } 255 256 public String getDefaultCharset() { 257 return defaultCharset; 258 } 259 260 private void enableFields(boolean enable) { 261 jLblParameterEncoding.setEnabled(enable); 262 jLblDefaultCharset.setEnabled(enable); 263 jCbxDefaultCharset.setEnabled(enable); 264 jLblFormHintField.setEnabled(enable); 265 jTxtFormHintField.setEnabled(enable); 266 jTxtFormHintField.setEditable(enable); 267 } 268 269 private void updateDefaultCharsetModel() { 270 Object mapping = defaultCharsetCbxModel.getSelectedItem(); 271 CharsetMapping oldMapping; 272 273 if(mapping instanceof CharsetMapping) { 274 oldMapping = (CharsetMapping) mapping; 275 } else { 276 oldMapping = null; 277 } 278 279 defaultCharsetCbxModel = new DefaultComboBoxModel (); 280 defaultCharsetCbxModel.addElement(""); SortedMap charsets = CharsetMapping.getSortedAvailableCharsetMappings(); 282 for(Iterator iter = charsets.entrySet().iterator(); iter.hasNext(); ) { 283 CharsetMapping cm = (CharsetMapping) ((Map.Entry ) iter.next()).getValue(); 284 defaultCharsetCbxModel.addElement(cm); 285 } 286 jCbxDefaultCharset.setModel(defaultCharsetCbxModel); 287 288 if(oldMapping != null) { 289 oldMapping = CharsetMapping.getCharsetMapping(oldMapping.getCharset()); 290 } 291 292 defaultCharsetCbxModel.setSelectedItem(oldMapping); 293 } 294 295 } 296 | Popular Tags |