KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > sun > ide > sunresources > wizards > CommonGeneralFinishVisualPanel


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  * CommonGeneralFinishVisualPanel.java
21  *
22  * Created on October 10, 2002
23  */

24
25 package org.netbeans.modules.j2ee.sun.ide.sunresources.wizards;
26
27 import org.openide.util.NbBundle;
28 import java.util.ResourceBundle JavaDoc;
29 import java.util.ArrayList JavaDoc;
30 import javax.swing.*;
31 import javax.swing.event.ChangeListener JavaDoc;
32
33 import org.netbeans.modules.j2ee.sun.sunresources.beans.Field;
34 import org.netbeans.modules.j2ee.sun.sunresources.beans.FieldGroup;
35 import org.netbeans.modules.j2ee.sun.sunresources.beans.WizardConstants;
36 import org.netbeans.modules.j2ee.sun.sunresources.beans.FieldHelper;
37
38 /** A single panel for a wizard - the GUI portion.
39  *
40  * @author shirleyc
41  */

42 public class CommonGeneralFinishVisualPanel extends javax.swing.JPanel JavaDoc implements ChangeListener JavaDoc, WizardConstants {
43     
44     /** The wizard panel descriptor associated with this GUI panel.
45      * If you need to fire state changes or something similar, you can
46      * use this handle to do so.
47      */

48     
49     public static final String JavaDoc TYPE_JMS_RESOURCE = "_JMS"; //NOI18N
50
public static final String JavaDoc TYPE_MAIL_RESOUCE = "_MAIL"; //NOI18N
51

52     protected ResourceBundle JavaDoc bundle = NbBundle.getBundle("org.netbeans.modules.j2ee.sun.ide.sunresources.wizards.Bundle"); //NOI18N
53

54     protected final CommonGeneralFinishPanel panel;
55     protected FieldGroup[] groups;
56     protected int fieldSize;
57     protected ResourceConfigHelper helper;
58     protected String JavaDoc panelType = TYPE_JMS_RESOURCE;
59     protected ArrayList JavaDoc beans = new ArrayList JavaDoc();
60     protected boolean createNewResource = false;
61     
62     // Variables declaration - general attributes
63
protected javax.swing.JTextArea JavaDoc descriptionTextArea = null;
64     protected javax.swing.JPanel JavaDoc jPanel1[] = null;
65     protected javax.swing.JLabel JavaDoc jLabels[] = null;
66     protected javax.swing.JComponent JavaDoc jFields[] = null;
67     protected Field fields[] = null;
68     protected String JavaDoc resourceName;
69     protected boolean showGroupTitle = false;
70     
71     // Variable declaration - choice
72
private javax.swing.JPanel JavaDoc jPanel0;
73     private boolean firstTime = true;
74     private int y = 0;
75     
76     /** Create the wizard panel and set up some basic properties. */
77     public CommonGeneralFinishVisualPanel(CommonGeneralFinishPanel panel, FieldGroup[] groups, String JavaDoc panelType) {
78         this.firstTime = true;
79         this.panel = panel;
80         this.helper = panel.getHelper();
81         this.resourceName = panel.getResourceName();
82         setFieldGroups(groups);
83         if (groups.length > 1)
84             this.showGroupTitle = true;
85         
86         setLayout(new java.awt.GridBagLayout JavaDoc());
87         initDescriptionComponent();
88         
89             
90         setPanelType(panelType);
91         initComponents();
92
93         refreshFields();
94         // Provide a name in the title bar.
95
setName(NbBundle.getMessage(CommonGeneralFinishVisualPanel.class, "TITLE_" + groups[0].getName())); //NOI18N
96
getAccessibleContext().setAccessibleName(bundle.getString("TITLE_" + groups[0].getName()));
97         getAccessibleContext().setAccessibleDescription(bundle.getString("mail-resource_Description"));
98         this.firstTime = false;
99     }
100     
101     public void setFieldGroups(FieldGroup[] groups) {
102         this.groups = groups;
103         fieldSize = 0;
104         for (int i = 0; i < groups.length; i++) {
105             fieldSize += groups[i].sizeField();
106         }
107     }
108     
109     /** This method is called from within the constructor to
110      * initialize the form.
111      * WARNING: Do NOT modify this code. The content of this method is
112      * always regenerated by the Form Editor.
113      */

114     private void initComponents() {
115         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
116
117         int gap = 0;
118         int itemHeight = 28;
119         if (fieldSize < 6) {
120             itemHeight = 42;
121             gap = 7;
122         }
123         int i = 0;
124         jPanel1 = new JPanel[groups.length];
125         fields = new Field[fieldSize];
126         jLabels = new JLabel[fieldSize];
127         jFields = new JComponent[fieldSize];
128       
129       for (int j = 0; j < groups.length; j++) {
130         if (showGroupTitle) {
131             JLabel label = new JLabel();
132             label.setText(bundle.getString("LBL_GROUP_" + groups[j].getName())); //NOI18N
133
label.getAccessibleContext().setAccessibleDescription(bundle.getString("ACS_LBL_GROUP_" + groups[j].getName() + "A11yDesc")); //NOI18N
134
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
135             gridBagConstraints.gridx = 0;
136             gridBagConstraints.gridy = this.y; this.y++;
137             gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
138             gridBagConstraints.ipadx = 0;
139             gridBagConstraints.insets = new java.awt.Insets JavaDoc(5, 0, 0, 11);
140             add(label, gridBagConstraints);
141         }
142         
143         Field[] flds = groups[j].getField();
144         int size = flds.length;
145         jPanel1[j] = new javax.swing.JPanel JavaDoc();
146         jPanel1[j].setLayout(new java.awt.GridBagLayout JavaDoc());
147         
148         jPanel1[j].setMaximumSize(new java.awt.Dimension JavaDoc(480, itemHeight * size));
149         jPanel1[j].setMinimumSize(new java.awt.Dimension JavaDoc(480, itemHeight * size));
150         jPanel1[j].setPreferredSize(new java.awt.Dimension JavaDoc(480, itemHeight * size));
151         
152
153         for (int k = 0; k < size; k++) {
154             fields[i] = flds[k];
155             JLabel jLabel = new JLabel();
156             jLabel.setText(bundle.getString("LBL_" + fields[i].getName())); //NOI18N
157
jLabel.setDisplayedMnemonic(bundle.getString("LBL_" + fields[i].getName() + "_Mnemonic").charAt(0)); //NOI18N
158
gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
159             gridBagConstraints.gridx = 0;
160             gridBagConstraints.gridy = k;
161             gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
162             gridBagConstraints.ipadx = 0;
163             gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 12, gap, 0);
164             jLabels[i] = jLabel;
165             jPanel1[j].add(jLabels[i], gridBagConstraints);
166             
167             if (FieldHelper.isList(fields[i])) {
168                 JComboBox jComboBox = new JComboBox();
169                 jLabel.setLabelFor(jComboBox);
170                 jComboBox.getAccessibleContext().setAccessibleDescription(bundle.getString("ToolTip_" + fields[i].getName()));
171                 String JavaDoc tags[] = FieldHelper.getTags(fields[i]);
172                 for (int h = 0; h < tags.length; h++) {
173                     jComboBox.addItem(tags[h]);
174                 }
175                 final int index = i;
176                 jComboBox.addActionListener(new java.awt.event.ActionListener JavaDoc() {
177                     public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
178                         jComboBoxActionPerformed(evt, index);
179                     }
180                 });
181                 gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
182                 gridBagConstraints.gridx = 1;
183                 gridBagConstraints.gridy = k;
184                 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
185                 gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 20, gap, 0);
186                 gridBagConstraints.weightx = 1.0;
187                 jFields[i] = jComboBox;
188                 jPanel1[j].add(jComboBox, gridBagConstraints);
189             } else {
190                 JTextField jTextField = new JTextField();
191                 jTextField.setText("jTextField1"); //NOI18N
192
jLabel.setLabelFor(jTextField);
193                 jTextField.getAccessibleContext().setAccessibleDescription(bundle.getString("ToolTip_" + fields[i].getName()));
194                 jTextField.setToolTipText(bundle.getString("ToolTip_" + fields[i].getName())); //NOI18N
195
jTextField.setMinimumSize(new java.awt.Dimension JavaDoc(340, 21));
196                 jTextField.setPreferredSize(new java.awt.Dimension JavaDoc(340, 21));
197                 final int index = i;
198                 /*
199                 jTextField.addActionListener(new java.awt.event.ActionListener() {
200                     public void actionPerformed(java.awt.event.ActionEvent evt) {
201                         jTextField1ActionPerformed(evt, index);
202                     }
203                 });
204                  */

205                 jTextField.addKeyListener(new java.awt.event.KeyAdapter JavaDoc() {
206                     public void keyReleased(java.awt.event.KeyEvent JavaDoc evt) {
207                         jTextField1KeyReleased(evt, index);
208                     }
209                 });
210                 gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
211                 gridBagConstraints.gridx = 1;
212                 gridBagConstraints.gridy = k;
213                 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
214                 gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 20, gap, 0);
215                 jFields[i] = jTextField;
216                 jPanel1[j].add(jTextField, gridBagConstraints);
217             }
218             i++;
219         }
220         
221         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
222         gridBagConstraints.gridx = 0;
223         gridBagConstraints.gridy = this.y; this.y++;
224         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
225         gridBagConstraints.insets = new java.awt.Insets JavaDoc(5, 0, 10, 11);
226         jPanel1[j].setBorder(new javax.swing.border.EtchedBorder JavaDoc());
227         add(jPanel1[j], gridBagConstraints);
228       }
229     }
230     
231     private void initDescriptionComponent() {
232         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
233         
234         descriptionTextArea = new javax.swing.JTextArea JavaDoc();
235         descriptionTextArea.setEditable(false);
236         descriptionTextArea.setFont(javax.swing.UIManager.getFont("Label.font")); //NOI18N
237
descriptionTextArea.setText(bundle.getString(this.resourceName + "_Description")); //NOI18N
238
descriptionTextArea.setDisabledTextColor(javax.swing.UIManager.getColor("Label.foreground")); //NOI18N
239
descriptionTextArea.setRequestFocusEnabled(false);
240         descriptionTextArea.setEnabled(false);
241         descriptionTextArea.setOpaque(false);
242         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
243         gridBagConstraints.gridx = 0;
244         gridBagConstraints.gridy = this.y; this.y++;
245         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
246         gridBagConstraints.weightx = 1.0;
247         gridBagConstraints.weighty = 0.0;
248         gridBagConstraints.insets = new java.awt.Insets JavaDoc(12, 12, 20, 11);
249         add(descriptionTextArea, gridBagConstraints);
250     }
251     
252
253     
254     protected String JavaDoc getPanelType() {
255         return panelType;
256     }
257     
258     protected void setPanelType(String JavaDoc type) {
259         this.panelType = type;
260     }
261     
262
263     public void stateChanged(final javax.swing.event.ChangeEvent JavaDoc p1) {
264     }
265
266     public boolean createNew() {
267         return createNewResource;
268     }
269     
270     public void refreshFields() {
271         ResourceConfigData data = this.helper.getData();
272         for (int i = 0; i < jFields.length; i++) {
273             String JavaDoc item;
274             if (FieldHelper.isList(fields[i])) {
275                 item = (String JavaDoc)((JComboBox)jFields[i]).getSelectedItem();
276             } else {
277                 item = (String JavaDoc)((JTextField)jFields[i]).getText();
278             }
279             String JavaDoc fieldName = fields[i].getName();
280             Object JavaDoc value = data.get(fieldName);
281             if (value == null) {
282                 value = FieldHelper.getDefaultValue(fields[i]);
283                 data.set(fieldName, value);
284             }
285             String JavaDoc val = (String JavaDoc)value;
286             if (!item.equals(val)) {
287                 if (FieldHelper.isList(fields[i])) {
288                     ((JComboBox)jFields[i]).setSelectedItem(val);
289                 } else {
290                     ((JTextField)jFields[i]).setText(val);
291                 }
292             }
293          }
294     }
295     
296     private void jComboBoxActionPerformed(java.awt.event.ActionEvent JavaDoc evt, int index) {
297         ResourceConfigData data = this.helper.getData();
298         String JavaDoc item = (String JavaDoc)((JComboBox)jFields[index]).getSelectedItem();
299         String JavaDoc fieldName = fields[index].getName();
300         String JavaDoc val = data.getString(fieldName);
301         if (!item.equals(val))
302             data.setString(fieldName, item);
303     }
304     
305     private void jTextField1KeyReleased(java.awt.event.KeyEvent JavaDoc evt, int index) {
306         ResourceConfigData data = this.helper.getData();
307         String JavaDoc item = (String JavaDoc)((JTextField)jFields[index]).getText();
308         String JavaDoc fieldName = fields[index].getName();
309         String JavaDoc val = data.getString(fieldName);
310         if (FieldHelper.isInt(fields[index])) {
311             try {
312                 Integer.parseInt(item);
313             } catch (NumberFormatException JavaDoc ex) {
314                 JOptionPane.showMessageDialog(this, bundle.getString("MSG_NotNumber")); //NOI18N
315
if (val == null || val.length() == 0)
316                     val = FieldHelper.getDefaultValue(fields[index]);
317                 ((JTextField)jFields[index]).setText(val);
318                 return;
319             }
320         }
321         String JavaDoc jLabel = (String JavaDoc)this.jLabels[index].getText();
322         //if (!item.equals(val) && !jLabel.equals(bundle.getString("LBL_" + __JndiName)) ) { // don't save jndi name here or it will break 'duplicate jndi name validation' in edit mode
323
if (!item.equals(val) && jLabel.equals(bundle.getString("LBL_" + __JndiName)) ) {
324 // item = item + data.getTargetFile();
325
data.setString(fieldName, item);
326         }
327         if (!item.equals(val)){
328             data.setString(fieldName, item);
329             //panel.fireChangeEvent();
330
}
331         panel.fireChange(evt.getSource());
332     }
333     
334     public CommonGeneralFinishVisualPanel setFirstTime(boolean first) {
335         this.firstTime = first;
336         return this;
337     }
338     
339     public void initData() {
340         refreshFields();
341     }
342     
343      public void setHelper(ResourceConfigHelper helper){
344         this.helper = helper;
345         this.helper.getData().setString("jndi-name", helper.getData().getTargetFile()); //NOI18N
346
refreshFields();
347     }
348 }
349
Popular Tags