KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > ddloaders > web > multiview > InitParamsPanel


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 package org.netbeans.modules.j2ee.ddloaders.web.multiview;
21
22 import org.netbeans.modules.j2ee.dd.api.common.InitParam;
23 import org.netbeans.modules.j2ee.dd.api.web.Servlet;
24 import org.netbeans.modules.j2ee.ddloaders.web.DDDataObject;
25 import org.netbeans.modules.xml.multiview.ui.DefaultTablePanel;
26 import org.netbeans.modules.xml.multiview.ui.EditDialog;
27 import org.netbeans.modules.xml.multiview.ui.SimpleDialogPanel;
28 import org.openide.util.NbBundle;
29
30 /**
31  *
32  * @author mk115033
33  * Created on October 1, 2002, 3:52 PM
34  */

35 public class InitParamsPanel extends DefaultTablePanel {
36     private InitParamTableModel model;
37     private Servlet servlet;
38     private DDDataObject dObj;
39     
40     /** Creates new form InitParamsPanel */
41     public InitParamsPanel(final DDDataObject dObj, final InitParamTableModel model) {
42         super(model);
43         this.model=model;
44         this.dObj=dObj;
45         removeButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
46             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
47                 
48                 int row = getTable().getSelectedRow();
49                 dObj.modelUpdatedFromUI();
50                 dObj.setChangedFromUI(true);
51                 model.removeRow(row);
52                 dObj.setChangedFromUI(false);
53             }
54         });
55         editButton.addActionListener(new TableActionListener(false));
56         addButton.addActionListener(new TableActionListener(true));
57     }
58
59     void setModel(Servlet servlet, InitParam[] params) {
60         model.setData(servlet,params);
61         this.servlet=servlet;
62     }
63     
64     private class TableActionListener implements java.awt.event.ActionListener JavaDoc {
65         private boolean add;
66         TableActionListener(boolean add) {
67             this.add=add;
68         }
69         public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
70             final int row = (add?-1:getTable().getSelectedRow());
71             String JavaDoc[] labels = new String JavaDoc[]{
72                 NbBundle.getMessage(InitParamsPanel.class,"LBL_initParamName"),
73                 NbBundle.getMessage(InitParamsPanel.class,"LBL_initParamValue"),
74                 NbBundle.getMessage(InitParamsPanel.class,"LBL_description")
75             };
76             char[] mnem = new char[] {
77                 NbBundle.getMessage(InitParamsPanel.class,"LBL_initParamName_mnem").charAt(0),
78                 NbBundle.getMessage(InitParamsPanel.class,"LBL_initParamValue_mnem").charAt(0),
79                 NbBundle.getMessage(InitParamsPanel.class,"LBL_description_mnem").charAt(0)
80             };
81             SimpleDialogPanel.DialogDescriptor descriptor = new SimpleDialogPanel.DialogDescriptor(labels);
82             if (!add) {
83                 String JavaDoc[] initValues = new String JavaDoc[] {
84                     (String JavaDoc)model.getValueAt(row,0),
85                     (String JavaDoc)model.getValueAt(row,1),
86                     (String JavaDoc)model.getValueAt(row,2)
87                 };
88                 descriptor.setInitValues(initValues);
89             }
90             descriptor.setMnemonics(mnem);
91             descriptor.setTextField(new boolean[]{true,true,false});
92             final SimpleDialogPanel dialogPanel = new SimpleDialogPanel(descriptor);
93             
94             EditDialog dialog = new EditDialog(dialogPanel,NbBundle.getMessage(InitParamsPanel.class,"TTL_InitParam"),add) {
95                 protected String JavaDoc validate() {
96                     String JavaDoc[] values = dialogPanel.getValues();
97                     String JavaDoc name = values[0];
98                     String JavaDoc value = values[1];
99                     if (name.length()==0) {
100                         return NbBundle.getMessage(InitParamsPanel.class,"TXT_EmptyInitParamName");
101                     } else {
102                         InitParam[] params = servlet.getInitParam();
103                         boolean exists=false;
104                         for (int i=0;i<params.length;i++) {
105                             if (row!=i && name.equals(params[i].getParamName())) {
106                                 exists=true;
107                                 break;
108                             }
109                         }
110                         if (exists) {
111                             return NbBundle.getMessage(InitParamsPanel.class,"TXT_InitParamNameExists",name);
112                         }
113                     }
114                     if (value.length()==0) {
115                         return NbBundle.getMessage(InitParamsPanel.class,"TXT_EmptyInitParamValue");
116                     }
117                     return null;
118                 }
119             };
120             
121             if (add) dialog.setValid(false); // disable OK button
122
javax.swing.event.DocumentListener JavaDoc docListener = new EditDialog.DocListener(dialog);
123             dialogPanel.getTextComponents()[0].getDocument().addDocumentListener(docListener);
124             dialogPanel.getTextComponents()[1].getDocument().addDocumentListener(docListener);
125             
126             java.awt.Dialog JavaDoc d = org.openide.DialogDisplayer.getDefault().createDialog(dialog);
127             d.setVisible(true);
128             dialogPanel.getTextComponents()[0].getDocument().removeDocumentListener(docListener);
129             dialogPanel.getTextComponents()[1].getDocument().removeDocumentListener(docListener);
130             
131             if (dialog.getValue().equals(EditDialog.OK_OPTION)) {
132                 dObj.modelUpdatedFromUI();
133                 dObj.setChangedFromUI(true);
134                 String JavaDoc[] values = dialogPanel.getValues();
135                 String JavaDoc name = values[0];
136                 String JavaDoc value = values[1];
137                 String JavaDoc description = values[2];
138                 if (add) model.addRow(new String JavaDoc[]{name,value,description});
139                 else model.editRow(row,new String JavaDoc[]{name,value,description});
140                 dObj.setChangedFromUI(false);
141             }
142         }
143     }
144 }
145
Popular Tags