KickJava   Java API By Example, From Geeks To Geeks.

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


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.ResourceRef;
23 import org.netbeans.modules.j2ee.dd.api.web.WebApp;
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 /** ResRefsTablePanel - panel containing table for resource references
31  *
32  * @author mk115033
33  * Created on April 11, 2005
34  */

35 public class ResRefsTablePanel extends DefaultTablePanel {
36     private ResRefTableModel model;
37     private WebApp webApp;
38     private DDDataObject dObj;
39     
40     /** Creates new form ContextParamPanel */
41     public ResRefsTablePanel(final DDDataObject dObj, final ResRefTableModel 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                 dObj.modelUpdatedFromUI();
48                 dObj.setChangedFromUI(true);
49                 int row = getTable().getSelectedRow();
50                 model.removeRow(row);
51                 dObj.setChangedFromUI(false);
52             }
53         });
54         editButton.addActionListener(new TableActionListener(false));
55         addButton.addActionListener(new TableActionListener(true));
56     }
57
58     void setModel(WebApp webApp, ResourceRef[] params) {
59         model.setData(webApp,params);
60         this.webApp=webApp;
61     }
62     
63     private class TableActionListener implements java.awt.event.ActionListener JavaDoc {
64         private boolean add;
65         TableActionListener(boolean add) {
66             this.add=add;
67         }
68         public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
69             
70             final int row = (add?-1:getTable().getSelectedRow());
71             final ResRefPanel dialogPanel = new ResRefPanel();
72             if (!add) {
73                 ResourceRef resRef = model.getResourceRef(row);
74                 dialogPanel.setResRefName(resRef.getResRefName());
75                 dialogPanel.setResType(resRef.getResType());
76                 String JavaDoc auth = resRef.getResAuth();
77                 dialogPanel.setResAuth(auth==null?"Container":auth);
78                 String JavaDoc scope = resRef.getResSharingScope();
79                 dialogPanel.setResScope(scope==null?"Shareable":scope); //NOI18N
80
dialogPanel.setDescription(resRef.getDefaultDescription());
81             }
82             EditDialog dialog = new EditDialog(dialogPanel,NbBundle.getMessage(ResRefsTablePanel.class,"TTL_ResourceRef"),add) {
83                 protected String JavaDoc validate() {
84                     String JavaDoc name = dialogPanel.getResRefName().trim();
85                     String JavaDoc type = dialogPanel.getResType().trim();
86                     if (name.length()==0) {
87                         return NbBundle.getMessage(ResRefsTablePanel.class,"TXT_EmptyResRefName");
88                     } else {
89                         ResourceRef[] params = webApp.getResourceRef();
90                         boolean exists=false;
91                         for (int i=0;i<params.length;i++) {
92                             if (row!=i && name.equals(params[i].getResRefName())) {
93                                 exists=true;
94                                 break;
95                             }
96                         }
97                         if (exists) {
98                             return NbBundle.getMessage(ResRefsTablePanel.class,"TXT_ResRefNameExists",name);
99                         }
100                     }
101                     if (type.length()==0) {
102                         return NbBundle.getMessage(ResRefsTablePanel.class,"TXT_EmptyResTypeValue");
103                     }
104                     return null;
105                 }
106             };
107             
108             if (add) dialog.setValid(false); // disable OK button
109
javax.swing.event.DocumentListener JavaDoc docListener = new EditDialog.DocListener(dialog);
110             dialogPanel.getNameTF().getDocument().addDocumentListener(docListener);
111             dialogPanel.getTypeTF().getDocument().addDocumentListener(docListener);
112             
113             java.awt.Dialog JavaDoc d = org.openide.DialogDisplayer.getDefault().createDialog(dialog);
114             d.setVisible(true);
115             dialogPanel.getNameTF().getDocument().removeDocumentListener(docListener);
116             dialogPanel.getTypeTF().getDocument().removeDocumentListener(docListener);
117             
118             if (dialog.getValue().equals(EditDialog.OK_OPTION)) {
119                 dObj.modelUpdatedFromUI();
120                 dObj.setChangedFromUI(true);
121                 String JavaDoc name = dialogPanel.getResRefName().trim();
122                 String JavaDoc type = dialogPanel.getResType().trim();
123                 String JavaDoc auth = dialogPanel.getResAuth();
124                 String JavaDoc scope = dialogPanel.getResScope();
125                 String JavaDoc description = dialogPanel.getDescription();
126                 if (add) model.addRow(new String JavaDoc[]{name,type,auth,scope,description});
127                 else model.editRow(row,new String JavaDoc[]{name,type,auth,scope,description});
128                 dObj.setChangedFromUI(false);
129             }
130         }
131     }
132 }
133
Popular Tags