KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > JRFieldDialog


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * JRFieldDialog.java
28  *
29  * Created on 9 maggio 2003, 17.25
30  *
31  */

32
33 package it.businesslogic.ireport.gui;
34
35 import it.businesslogic.ireport.util.*;
36 import it.businesslogic.ireport.*;
37 /**
38  *
39  * @author Administrator
40  */

41 public class JRFieldDialog extends javax.swing.JDialog JavaDoc {
42     /** Creates new form JRParameterDialog */
43     JRField tmpField = null;
44     private SubDataset subDataset = null;
45     private String JavaDoc originalName = null;
46     
47     public JRFieldDialog(java.awt.Frame JavaDoc parent, boolean modal) {
48         super(parent, modal);
49         initComponents();
50                 applyI18n();
51         setClassTypes();
52         this.jComboBoxType.setSelectedItem("java.lang.String");
53                 
54                 
55                 javax.swing.KeyStroke JavaDoc escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false);
56                 javax.swing.Action JavaDoc escapeAction = new javax.swing.AbstractAction JavaDoc() {
57                     public void actionPerformed(java.awt.event.ActionEvent JavaDoc e) {
58                         jButtonCancelActionPerformed(e);
59                     }
60                 };
61
62                 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE");
63                 getRootPane().getActionMap().put("ESCAPE", escapeAction);
64
65
66                 //to make the default button ...
67
this.getRootPane().setDefaultButton(this.jButtonOK);
68     }
69     
70     public void setClassTypes() {
71         this.jComboBoxType.addItem("java.lang.String");
72         this.jComboBoxType.addItem("java.lang.Object");
73         this.jComboBoxType.addItem("java.lang.Boolean");
74         this.jComboBoxType.addItem("java.lang.Byte");
75         this.jComboBoxType.addItem("java.util.Date");
76         this.jComboBoxType.addItem("java.sql.Timestamp");
77         this.jComboBoxType.addItem("java.sql.Time");
78         this.jComboBoxType.addItem("java.lang.Double");
79         this.jComboBoxType.addItem("java.lang.Float");
80         this.jComboBoxType.addItem("java.lang.Integer");
81         this.jComboBoxType.addItem("java.io.InputStream");
82         this.jComboBoxType.addItem("java.lang.Long");
83         this.jComboBoxType.addItem("java.lang.Short");
84         this.jComboBoxType.addItem("java.math.BigDecimal");
85     }
86     
87     
88     /** This method is called from within the constructor to
89      * initialize the form.
90      * WARNING: Do NOT modify this code. The content of this method is
91      * always regenerated by the Form Editor.
92      */

93     private void initComponents() {//GEN-BEGIN:initComponents
94
java.awt.GridBagConstraints JavaDoc gridBagConstraints;
95
96         jLabel1 = new javax.swing.JLabel JavaDoc();
97         jTextFieldName = new javax.swing.JTextField JavaDoc();
98         jLabel2 = new javax.swing.JLabel JavaDoc();
99         jComboBoxType = new javax.swing.JComboBox JavaDoc();
100         jLabel4 = new javax.swing.JLabel JavaDoc();
101         jPanel1 = new javax.swing.JPanel JavaDoc();
102         jButtonOK = new javax.swing.JButton JavaDoc();
103         jButtonCancel = new javax.swing.JButton JavaDoc();
104         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
105         jTextAreaDescription = new javax.swing.JTextArea JavaDoc();
106
107         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
108
109         setTitle("Add/modify field");
110         setModal(true);
111         addWindowListener(new java.awt.event.WindowAdapter JavaDoc() {
112             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
113                 closeDialog(evt);
114             }
115         });
116
117         jLabel1.setText("Field name");
118         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
119         gridBagConstraints.gridx = 0;
120         gridBagConstraints.gridy = 0;
121         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
122         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
123         getContentPane().add(jLabel1, gridBagConstraints);
124
125         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
126         gridBagConstraints.gridx = 0;
127         gridBagConstraints.gridy = 1;
128         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
129         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
130         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
131         getContentPane().add(jTextFieldName, gridBagConstraints);
132
133         jLabel2.setText("Field class type");
134         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
135         gridBagConstraints.gridx = 0;
136         gridBagConstraints.gridy = 2;
137         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
138         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
139         getContentPane().add(jLabel2, gridBagConstraints);
140
141         jComboBoxType.setEditable(true);
142         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
143         gridBagConstraints.gridx = 0;
144         gridBagConstraints.gridy = 3;
145         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
146         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
147         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
148         getContentPane().add(jComboBoxType, gridBagConstraints);
149
150         jLabel4.setText("Field description");
151         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
152         gridBagConstraints.gridx = 0;
153         gridBagConstraints.gridy = 4;
154         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
155         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
156         getContentPane().add(jLabel4, gridBagConstraints);
157
158         jPanel1.setLayout(new java.awt.FlowLayout JavaDoc(java.awt.FlowLayout.RIGHT));
159
160         jButtonOK.setText("OK");
161         jButtonOK.setMnemonic('o');
162         jButtonOK.addActionListener(new java.awt.event.ActionListener JavaDoc() {
163             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
164                 jButtonOKActionPerformed(evt);
165             }
166         });
167
168         jPanel1.add(jButtonOK);
169
170         jButtonCancel.setText("Cancel");
171         jButtonCancel.setMnemonic('c');
172         jButtonCancel.addActionListener(new java.awt.event.ActionListener JavaDoc() {
173             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
174                 jButtonCancelActionPerformed(evt);
175             }
176         });
177
178         jPanel1.add(jButtonCancel);
179
180         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
181         gridBagConstraints.gridx = 0;
182         gridBagConstraints.gridy = 7;
183         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
184         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
185         gridBagConstraints.weightx = 1.0;
186         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
187         getContentPane().add(jPanel1, gridBagConstraints);
188
189         jScrollPane1.setPreferredSize(new java.awt.Dimension JavaDoc(300, 80));
190         jScrollPane1.setViewportView(jTextAreaDescription);
191
192         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
193         gridBagConstraints.gridx = 0;
194         gridBagConstraints.gridy = 6;
195         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
196         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
197         gridBagConstraints.weightx = 1.0;
198         gridBagConstraints.weighty = 1.0;
199         gridBagConstraints.insets = new java.awt.Insets JavaDoc(3, 3, 3, 3);
200         getContentPane().add(jScrollPane1, gridBagConstraints);
201
202         pack();
203         java.awt.Dimension JavaDoc screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
204         java.awt.Dimension JavaDoc dialogSize = getSize();
205         setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2);
206     }//GEN-END:initComponents
207

208     private void jButtonCancelActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCancelActionPerformed
209
setVisible(false);
210         this.setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION);
211         dispose();
212     }//GEN-LAST:event_jButtonCancelActionPerformed
213

214     private void jButtonOKActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonOKActionPerformed
215

216         if (this.jTextFieldName.getText().trim().length() <= 0) {
217             javax.swing.JOptionPane.showMessageDialog(this,
218                             I18n.getString( "messages.jRFieldDialog.notValidFieldName","Please insert a valid field name!"),
219                             I18n.getString( "messages.jRFieldDialog.notValidFieldNameCaption","Invalid field!"),
220                             javax.swing.JOptionPane.WARNING_MESSAGE );
221             return;
222         }
223         
224             if (getSubDataset() != null)
225             {
226                  //check unique name...
227
String JavaDoc newName = this.jTextFieldName.getText();
228                  if (getOriginalName() == null || !getOriginalName().equals(newName))
229                  {
230                      for (int i=0; i< getSubDataset().getFields().size(); ++i)
231                      {
232                          JRField f = (JRField)getSubDataset().getFields().get(i);
233                          if (f.getName().equals(newName))
234                          {
235                              javax.swing.JOptionPane.showMessageDialog(this,
236                                 I18n.getString( "messages.JRFieldDialog.DuplicatedFieldName","A field with this name already exists!"),
237                                 I18n.getString( "messages.JRFieldDialog.notValidFieldNameCaption","Invalid field!"),
238                                 javax.swing.JOptionPane.WARNING_MESSAGE );
239                              return;
240                          }
241                      }
242                  }
243             }
244             
245         tmpField = new JRField( this.jTextFieldName.getText(), "java.lang.String" );
246         
247         if (this.jComboBoxType.getSelectedItem().toString().trim().length() != 0) {
248             tmpField.setClassType( this.jComboBoxType.getSelectedItem().toString().trim() );
249         }
250         tmpField.setDescription( this.jTextAreaDescription.getText());
251         setVisible(false);
252         this.setDialogResult( javax.swing.JOptionPane.OK_OPTION);
253         dispose();
254     }//GEN-LAST:event_jButtonOKActionPerformed
255

256     /** Closes the dialog */
257     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {//GEN-FIRST:event_closeDialog
258
setVisible(false);
259         this.setDialogResult( javax.swing.JOptionPane.CLOSED_OPTION);
260         dispose();
261     }//GEN-LAST:event_closeDialog
262

263     /**
264      * @param args the command line arguments
265      */

266     public static void main(String JavaDoc args[]) {
267         new JRParameterDialog(new javax.swing.JFrame JavaDoc(), true).setVisible(true);
268     }
269     
270     /** Getter for property tmpParameter.
271      * @return Value of property tmpParameter.
272      *
273      */

274     public it.businesslogic.ireport.JRField getField() {
275         return tmpField;
276     }
277     
278     /** Setter for property tmpParameter.
279      * @param tmpParameter New value of property tmpParameter.
280      *
281      */

282     public void setField(it.businesslogic.ireport.JRField tmpField) {
283             originalName = tmpField.getName();
284         this.jTextFieldName.setText( new String JavaDoc(tmpField.getName()));
285         this.jComboBoxType.setSelectedItem( new String JavaDoc(tmpField.getClassType()));
286         this.jTextAreaDescription.setText( new String JavaDoc(tmpField.getDescription()));
287     }
288     
289     /** Getter for property dialogResult.
290      * @return Value of property dialogResult.
291      *
292      */

293     public int getDialogResult() {
294         return dialogResult;
295     }
296     
297     /** Setter for property dialogResult.
298      * @param dialogResult New value of property dialogResult.
299      *
300      */

301     public void setDialogResult(int dialogResult) {
302         this.dialogResult = dialogResult;
303     }
304     
305     // Variables declaration - do not modify//GEN-BEGIN:variables
306
private javax.swing.JButton JavaDoc jButtonCancel;
307     private javax.swing.JButton JavaDoc jButtonOK;
308     private javax.swing.JComboBox JavaDoc jComboBoxType;
309     private javax.swing.JLabel JavaDoc jLabel1;
310     private javax.swing.JLabel JavaDoc jLabel2;
311     private javax.swing.JLabel JavaDoc jLabel4;
312     private javax.swing.JPanel JavaDoc jPanel1;
313     private javax.swing.JScrollPane JavaDoc jScrollPane1;
314     private javax.swing.JTextArea JavaDoc jTextAreaDescription;
315     private javax.swing.JTextField JavaDoc jTextFieldName;
316     // End of variables declaration//GEN-END:variables
317

318     private int dialogResult;
319     
320     public void applyI18n(){
321                 // Start autogenerated code ----------------------
322
jButtonCancel.setText(I18n.getString("jRFieldDialog.buttonCancel","Cancel"));
323                 jButtonOK.setText(I18n.getString("jRFieldDialog.buttonOK","OK"));
324                 jLabel1.setText(I18n.getString("jRFieldDialog.label1","Field name"));
325                 jLabel2.setText(I18n.getString("jRFieldDialog.label2","Field class type"));
326                 jLabel4.setText(I18n.getString("jRFieldDialog.label4","Field description"));
327                 // End autogenerated code ----------------------
328
}
329
330     public SubDataset getSubDataset() {
331         return subDataset;
332     }
333
334     public void setSubDataset(SubDataset subDataset) {
335         this.subDataset = subDataset;
336     }
337
338     public String JavaDoc getOriginalName() {
339         return originalName;
340     }
341
342     public void setOriginalName(String JavaDoc originalName) {
343         this.originalName = originalName;
344     }
345 }
346
Popular Tags