KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > sun > share > configbean > customizers > webapp > ParameterEncodingPanel


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 /*
20  * ParameterEncodingPanel.java
21  *
22  * Created on August 31, 2005, 2:27 PM
23  */

24 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp;
25
26 import java.awt.event.ActionListener JavaDoc;
27 import java.beans.PropertyChangeEvent JavaDoc;
28 import java.beans.PropertyChangeListener JavaDoc;
29 import java.util.Iterator JavaDoc;
30 import java.util.Map JavaDoc;
31 import java.util.ResourceBundle JavaDoc;
32 import java.util.SortedMap JavaDoc;
33 import javax.swing.DefaultComboBoxModel JavaDoc;
34 import org.netbeans.modules.j2ee.sun.share.CharsetMapping;
35 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion;
36
37
38 /**
39  *
40  * @author peterw99
41  */

42 public class ParameterEncodingPanel extends javax.swing.JPanel JavaDoc {
43
44     private static final ResourceBundle JavaDoc webappBundle = ResourceBundle.getBundle(
45         "org.netbeans.modules.j2ee.sun.share.configbean.customizers.webapp.Bundle"); // NOI18N
46

47     public static final String JavaDoc PROP_FORM_HINT_FIELD = "formHintField"; // NOI18N
48
public static final String JavaDoc PROP_DEFAULT_CHARSET = "defaultCharset"; // NOI18N
49

50     // Temporary storage for quick determination of presence of parameter encoding
51
// entry
52
private String JavaDoc defaultCharset;
53     private String JavaDoc formHintField;
54
55     private DefaultComboBoxModel JavaDoc defaultCharsetCbxModel;
56
57     // Listens for selections in the charset combobox.
58
private ActionListener JavaDoc defaultCharsetActionListener;
59     
60     // Listens for changes to the default list of charsets
61
private PropertyChangeListener JavaDoc charsetChangeListener;
62
63     // true if AS 8.1+ fields are visible.
64
private boolean as81FeaturesVisible;
65     
66     /** Creates new form ParameterEncodingPanel */
67     public ParameterEncodingPanel() {
68         initComponents();
69         initUserComponents();
70     }
71     
72     /** This method is called from within the constructor to
73      * initialize the form.
74      * WARNING: Do NOT modify this code. The content of this method is
75      * always regenerated by the Form Editor.
76      */

77     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
78
private void initComponents() {
79         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
80
81         jLblParameterEncoding = new javax.swing.JLabel JavaDoc();
82         jPnlParameterEncoding = new javax.swing.JPanel JavaDoc();
83         jLblDefaultCharset = new javax.swing.JLabel JavaDoc();
84         jCbxDefaultCharset = new javax.swing.JComboBox JavaDoc();
85         jLblFormHintField = new javax.swing.JLabel JavaDoc();
86         jTxtFormHintField = new javax.swing.JTextField JavaDoc();
87
88         setLayout(new java.awt.GridBagLayout JavaDoc());
89
90         jLblParameterEncoding.setLabelFor(jPnlParameterEncoding);
91         jLblParameterEncoding.setText(webappBundle.getString("LBL_ParameterEncoding"));
92         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
93         gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
94         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
95         gridBagConstraints.insets = new java.awt.Insets JavaDoc(6, 6, 0, 0);
96         add(jLblParameterEncoding, gridBagConstraints);
97
98         jPnlParameterEncoding.setLayout(new java.awt.GridBagLayout JavaDoc());
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 JavaDoc();
104         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
105         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
106         gridBagConstraints.insets = new java.awt.Insets JavaDoc(6, 6, 0, 0);
107         jPnlParameterEncoding.add(jLblDefaultCharset, gridBagConstraints);
108
109         jCbxDefaultCharset.setPrototypeDisplayValue("");
110         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(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 JavaDoc();
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 JavaDoc(6, 6, 5, 0);
124         jPnlParameterEncoding.add(jLblFormHintField, gridBagConstraints);
125
126         jTxtFormHintField.addKeyListener(new java.awt.event.KeyAdapter JavaDoc() {
127             public void keyReleased(java.awt.event.KeyEvent JavaDoc evt) {
128                 jTxtFormHintFieldKeyReleased(evt);
129             }
130         });
131
132         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(6, 6, 5, 5);
137         jPnlParameterEncoding.add(jTxtFormHintField, gridBagConstraints);
138
139         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 6, 5, 5);
144         add(jPnlParameterEncoding, gridBagConstraints);
145
146     }// </editor-fold>//GEN-END:initComponents
147

148     private void jTxtFormHintFieldKeyReleased(java.awt.event.KeyEvent JavaDoc evt) {//GEN-FIRST:event_jTxtFormHintFieldKeyReleased
149
String JavaDoc oldFormHintField = formHintField;
150         formHintField = jTxtFormHintField.getText();
151         firePropertyChange(PROP_FORM_HINT_FIELD, oldFormHintField, formHintField);
152     }//GEN-LAST:event_jTxtFormHintFieldKeyReleased
153

154     private void jCbxDefaultCharsetActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
155         String JavaDoc oldDefaultCharset = defaultCharset;
156         Object JavaDoc 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     // Variables declaration - do not modify//GEN-BEGIN:variables
166
private javax.swing.JComboBox JavaDoc jCbxDefaultCharset;
167     private javax.swing.JLabel JavaDoc jLblDefaultCharset;
168     private javax.swing.JLabel JavaDoc jLblFormHintField;
169     private javax.swing.JLabel JavaDoc jLblParameterEncoding;
170     private javax.swing.JPanel JavaDoc jPnlParameterEncoding;
171     private javax.swing.JTextField JavaDoc jTxtFormHintField;
172     // End of variables declaration//GEN-END:variables
173

174     private void initUserComponents() {
175         // Init default charset combo box
176
defaultCharsetCbxModel = new DefaultComboBoxModel JavaDoc();
177         defaultCharsetCbxModel.addElement(""); // NOI18N
178
SortedMap JavaDoc charsets = CharsetMapping.getSortedAvailableCharsetMappings();
179         for(Iterator JavaDoc iter = charsets.entrySet().iterator(); iter.hasNext(); ) {
180             CharsetMapping cm = (CharsetMapping) ((Map.Entry JavaDoc) iter.next()).getValue();
181             defaultCharsetCbxModel.addElement(cm);
182         }
183         jCbxDefaultCharset.setModel(defaultCharsetCbxModel);
184
185         defaultCharsetActionListener = new java.awt.event.ActionListener JavaDoc() {
186             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
187                 jCbxDefaultCharsetActionPerformed(evt);
188             }
189         };
190         
191         charsetChangeListener = new PropertyChangeListener JavaDoc() {
192             public void propertyChange(PropertyChangeEvent JavaDoc 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 JavaDoc defaultCharset, String JavaDoc 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             // init parameter encoding fields
219
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     // TODO after 5.0, generalize version based field display for multiple (> 2)
235
// appserver versions.
236
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 JavaDoc getFormHintField() {
253         return formHintField;
254     }
255     
256     public String JavaDoc 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 JavaDoc 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 JavaDoc();
280         defaultCharsetCbxModel.addElement(""); // NOI18N
281
SortedMap JavaDoc charsets = CharsetMapping.getSortedAvailableCharsetMappings();
282         for(Iterator JavaDoc iter = charsets.entrySet().iterator(); iter.hasNext(); ) {
283             CharsetMapping cm = (CharsetMapping) ((Map.Entry JavaDoc) 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