KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > prompt > PromptDialog


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  * PromptDialog.java
28  *
29  * Created on 5 maggio 2005, 0.25
30  *
31  */

32
33 package it.businesslogic.ireport.gui.prompt;
34
35 import it.businesslogic.ireport.util.I18n;
36 import java.awt.BorderLayout JavaDoc;
37
38 import java.awt.Frame JavaDoc;
39 import java.awt.event.KeyAdapter JavaDoc;
40 import java.awt.event.KeyEvent JavaDoc;
41 import java.text.SimpleDateFormat JavaDoc;
42 import java.util.StringTokenizer JavaDoc;
43
44 import java.util.Vector JavaDoc;
45
46 import javax.swing.JOptionPane JavaDoc;
47
48
49 /**
50  * @author Administrator
51  */

52 public class PromptDialog
53     extends javax.swing.JDialog JavaDoc
54 {
55
56     static Vector JavaDoc cachedValues = new Vector JavaDoc();
57     private int dialogResult = JOptionPane.CANCEL_OPTION;
58     private Object JavaDoc value = null;
59     
60     private com.michaelbaranov.microba.calendar.DatePicker datePicker = null;
61     private JDateTimePicker datetimePicker = null;
62     
63     private boolean isCollection = false;
64     
65     /**
66      * Creates new form PromptDialog
67      *
68      * @param parent DOCUMENT ME!
69      * @param modal DOCUMENT ME!
70      */

71     public PromptDialog(Frame JavaDoc parent, boolean modal)
72     {
73         super(parent, modal);
74         initComponents();
75         applyI18n();
76         jLabelYouCan.setText(it.businesslogic.ireport.util.I18n.getString(
77                                      "gui.prompt.parameter",
78                                      "You can provide a value for the parameter:"));
79
80         for (int i = 0; i < cachedValues.size(); ++i)
81         {
82             this.jComboBox1.addItem(cachedValues.elementAt(i));
83         }
84
85         this.jComboBox1.getEditor().getEditorComponent().addKeyListener(new KeyAdapter JavaDoc() {
86             public void keyPressed(KeyEvent JavaDoc evt)
87             {
88                 jButton1KeyPressed(evt);
89             }
90
91             public void keyTyped(KeyEvent JavaDoc evt)
92             {
93             }
94         });
95
96         it.businesslogic.ireport.util.Misc.centerFrame(this);
97         
98         javax.swing.KeyStroke JavaDoc escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false);
99         javax.swing.Action JavaDoc escapeAction = new javax.swing.AbstractAction JavaDoc() {
100             public void actionPerformed(java.awt.event.ActionEvent JavaDoc e) {
101                 jButton2ActionPerformed(e);
102             }
103         };
104        
105         getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE");
106         getRootPane().getActionMap().put("ESCAPE", escapeAction);
107
108
109         //to make the default button ...
110
this.getRootPane().setDefaultButton(this.jButton2);
111     }
112
113     /**
114      * DOCUMENT ME!
115      *
116      * @param param DOCUMENT ME!
117      */

118     public void setParameter(it.businesslogic.ireport.JRParameter param)
119     {
120
121         Object JavaDoc val = param.getLastDefaultValue();
122
123         String JavaDoc format = "";
124         
125         if (param.getClassType().equals("java.util.Date"))
126         {
127             format="";
128             jPanel4.removeAll();
129             datePicker = new com.michaelbaranov.microba.calendar.DatePicker();
130             datePicker.setLocale( I18n.getCurrentLocale() );
131             SimpleDateFormat JavaDoc sdf = new SimpleDateFormat JavaDoc();
132             try {
133                 if (val instanceof java.util.Date JavaDoc)
134                 {
135                     datePicker.setDate( (java.util.Date JavaDoc)val );
136                 }
137             } catch (Exception JavaDoc ex)
138             {
139                 ex.printStackTrace();
140             }
141             jPanel4.add(datePicker, BorderLayout.CENTER);
142         }
143         else if (param.getClassType().equals("java.sql.Time") ||
144             param.getClassType().equals("java.sql.Timestamp"))
145         {
146             format="";
147             jPanel4.removeAll();
148             datetimePicker = new JDateTimePicker();
149             datetimePicker.setLocale( I18n.getCurrentLocale() );
150             
151             try {
152                 if (val instanceof java.util.Date JavaDoc)
153                 {
154                     datetimePicker.setDate( (java.util.Date JavaDoc)val );
155                 }
156             } catch (Exception JavaDoc ex)
157             {
158                 ex.printStackTrace();
159             }
160             jPanel4.add(datetimePicker, BorderLayout.CENTER);
161         }
162         else
163         {
164             val = (val == null) ? "" : val;
165             this.jComboBox1.setSelectedItem(val);
166             this.jComboBox1.getEditor().selectAll();
167         }
168         
169         jLabelParamName.setText(param.getName());
170
171         if (param.getDescription() != null &&
172             param.getDescription().length() > 0)
173         {
174             jLabelParamName.setToolTipText(param.getDescription());
175         }
176
177         
178
179         if (param.getClassType().equals("java.util.Date"))
180         {
181             //format = " (" +
182
// it.businesslogic.ireport.gui.MainFrame.getMainInstance().getProperties()
183
// .getProperty("dateformat", "d/M/y") +
184
// ")";
185
}
186         else if (param.getClassType().equals("java.sql.Time") ||
187             param.getClassType().equals("java.sql.Timestamp"))
188         {
189             //format = " (" +
190
// it.businesslogic.ireport.gui.MainFrame.getMainInstance().getProperties()
191
// .getProperty("timeformat", "d/M/y H:m:s") +
192
// ")";
193
}
194         else if (param.getClassType().equals("java.lang.Boolean"))
195         {
196             format = " (true | false)";
197         }
198         else if (param.getClassType().equals("java.lang.String"))
199         {
200             
201         }
202         else
203         {
204             
205             try {
206                 Class JavaDoc clazz = Class.forName(param.getClassType());
207                 if ( java.util.Collection JavaDoc.class.isAssignableFrom(clazz) )
208                 {
209                         format = " ( foo,bar,test )";
210                 }
211                 
212             } catch (Exception JavaDoc ex)
213             {
214
215             }
216         }
217
218         jLabelClass.setText(
219                 it.businesslogic.ireport.util.I18n.getString(
220                         "gui.prompt.class", "The class type is:") + " " +
221                 param.getClassType() + format);
222
223         if (param.getDescription() != null &&
224             param.getDescription().length()>0)
225         {
226             jTextArea1.setText( param.getDescription() );
227             jScrollPane1.setVisible(true);
228         }
229         else
230         {
231             jScrollPane1.setVisible(false);
232         }
233         if (jComboBox1.isVisible()) this.jComboBox1.requestFocusInWindow();
234     }
235
236     /**
237      * This method is called from within the constructor to initialize the
238      * form. WARNING: Do NOT modify this code. The content of this method is
239      * always regenerated by the Form Editor.
240      */

241
242
243     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
244
private void initComponents() {
245         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
246
247         jLabel1 = new javax.swing.JLabel JavaDoc();
248         jPanel1 = new javax.swing.JPanel JavaDoc();
249         jLabelYouCan = new javax.swing.JLabel JavaDoc();
250         jLabelParamName = new javax.swing.JLabel JavaDoc();
251         jPanel4 = new javax.swing.JPanel JavaDoc();
252         jComboBox1 = new javax.swing.JComboBox JavaDoc();
253         jLabelClass = new javax.swing.JLabel JavaDoc();
254         jSeparator1 = new javax.swing.JSeparator JavaDoc();
255         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
256         jTextArea1 = new javax.swing.JTextArea JavaDoc();
257         jPanel2 = new javax.swing.JPanel JavaDoc();
258         jPanel3 = new javax.swing.JPanel JavaDoc();
259         jButton1 = new javax.swing.JButton JavaDoc();
260         jButton2 = new javax.swing.JButton JavaDoc();
261
262         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
263
264         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
265         setTitle("Parameter prompt");
266         jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
267         jLabel1.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/it/businesslogic/ireport/icons/keyboard.png")));
268         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
269         gridBagConstraints.gridx = 0;
270         gridBagConstraints.gridy = 0;
271         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
272         gridBagConstraints.ipadx = 10;
273         gridBagConstraints.ipady = 10;
274         getContentPane().add(jLabel1, gridBagConstraints);
275
276         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
277
278         jLabelYouCan.setFont(new java.awt.Font JavaDoc("SansSerif", 0, 12));
279         jLabelYouCan.setText("You can provide a value for the parameter:");
280         jLabelYouCan.setVerticalAlignment(javax.swing.SwingConstants.TOP);
281         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
282         gridBagConstraints.gridx = 0;
283         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
284         gridBagConstraints.weightx = 1.0;
285         jPanel1.add(jLabelYouCan, gridBagConstraints);
286
287         jLabelParamName.setFont(new java.awt.Font JavaDoc("SansSerif", 1, 16));
288         jLabelParamName.setText("Param name");
289         jLabelParamName.setVerticalAlignment(javax.swing.SwingConstants.TOP);
290         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
291         gridBagConstraints.gridx = 0;
292         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
293         gridBagConstraints.weightx = 1.0;
294         jPanel1.add(jLabelParamName, gridBagConstraints);
295
296         jPanel4.setLayout(new java.awt.BorderLayout JavaDoc());
297
298         jPanel4.setMinimumSize(new java.awt.Dimension JavaDoc(118, 18));
299         jPanel4.setPreferredSize(new java.awt.Dimension JavaDoc(400, 25));
300         jComboBox1.setEditable(true);
301         jComboBox1.setPreferredSize(new java.awt.Dimension JavaDoc(400, 25));
302         jComboBox1.addKeyListener(new java.awt.event.KeyAdapter JavaDoc() {
303             public void keyPressed(java.awt.event.KeyEvent JavaDoc evt) {
304                 jComboBox1KeyPressed(evt);
305             }
306         });
307
308         jPanel4.add(jComboBox1, java.awt.BorderLayout.CENTER);
309
310         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
311         gridBagConstraints.gridx = 0;
312         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
313         gridBagConstraints.weightx = 1.0;
314         jPanel1.add(jPanel4, gridBagConstraints);
315
316         jLabelClass.setFont(new java.awt.Font JavaDoc("SansSerif", 0, 12));
317         jLabelClass.setText("The class type is:");
318         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
319         gridBagConstraints.gridx = 0;
320         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
321         jPanel1.add(jLabelClass, gridBagConstraints);
322
323         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
324         gridBagConstraints.gridx = 0;
325         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
326         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 2, 4);
327         jPanel1.add(jSeparator1, gridBagConstraints);
328
329         jScrollPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
330         jScrollPane1.setPreferredSize(new java.awt.Dimension JavaDoc(3, 40));
331         jTextArea1.setEditable(false);
332         jTextArea1.setOpaque(false);
333         jScrollPane1.setViewportView(jTextArea1);
334
335         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
336         gridBagConstraints.gridx = 0;
337         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
338         gridBagConstraints.weightx = 1.0;
339         gridBagConstraints.weighty = 1.0;
340         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 0, 4);
341         jPanel1.add(jScrollPane1, gridBagConstraints);
342
343         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
344         gridBagConstraints.gridx = 1;
345         gridBagConstraints.gridy = 0;
346         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
347         gridBagConstraints.ipadx = 1;
348         gridBagConstraints.ipady = 1;
349         gridBagConstraints.weightx = 1.0;
350         gridBagConstraints.weighty = 1.0;
351         getContentPane().add(jPanel1, gridBagConstraints);
352
353         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
354
355         jPanel2.setMinimumSize(new java.awt.Dimension JavaDoc(50, 40));
356         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(40, 40));
357         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
358         gridBagConstraints.weightx = 1.0;
359         jPanel2.add(jPanel3, gridBagConstraints);
360
361         jButton1.setText("Ok");
362         jButton1.setPreferredSize(new java.awt.Dimension JavaDoc(100, 26));
363         jButton1.addActionListener(new java.awt.event.ActionListener JavaDoc() {
364             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
365                 jButton1ActionPerformed(evt);
366             }
367         });
368         jButton1.addKeyListener(new java.awt.event.KeyAdapter JavaDoc() {
369             public void keyPressed(java.awt.event.KeyEvent JavaDoc evt) {
370                 jButton1KeyPressed(evt);
371             }
372             public void keyTyped(java.awt.event.KeyEvent JavaDoc evt) {
373                 jButton1KeyTyped(evt);
374             }
375         });
376
377         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
378         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 4);
379         jPanel2.add(jButton1, gridBagConstraints);
380
381         jButton2.setText("Use default");
382         jButton2.setPreferredSize(new java.awt.Dimension JavaDoc(100, 26));
383         jButton2.addActionListener(new java.awt.event.ActionListener JavaDoc() {
384             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
385                 jButton2ActionPerformed(evt);
386             }
387         });
388
389         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
390         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 4);
391         jPanel2.add(jButton2, gridBagConstraints);
392
393         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
394         gridBagConstraints.gridx = 0;
395         gridBagConstraints.gridy = 1;
396         gridBagConstraints.gridwidth = 2;
397         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
398         getContentPane().add(jPanel2, gridBagConstraints);
399
400         pack();
401     }// </editor-fold>//GEN-END:initComponents
402
private void jComboBox1KeyPressed(java.awt.event.KeyEvent JavaDoc evt//GEN-FIRST:event_jComboBox1KeyPressed
403
)
404     {
405     }//GEN-LAST:event_jComboBox1KeyPressed
406

407     private void jButton1KeyPressed(java.awt.event.KeyEvent JavaDoc evt//GEN-FIRST:event_jButton1KeyPressed
408
)
409     {
410
411         if (evt.getKeyCode() == evt.VK_ENTER)
412         {
413             jComboBox1.setSelectedItem(jComboBox1.getEditor().getItem());
414             this.jButton1.requestFocusInWindow();
415             jButton1ActionPerformed(null);
416         }
417     }//GEN-LAST:event_jButton1KeyPressed
418

419     private void jButton1KeyTyped(java.awt.event.KeyEvent JavaDoc evt//GEN-FIRST:event_jButton1KeyTyped
420
)
421     {
422     }//GEN-LAST:event_jButton1KeyTyped
423

424     private void jButton2ActionPerformed(java.awt.event.ActionEvent JavaDoc evt//GEN-FIRST:event_jButton2ActionPerformed
425
)
426     {
427         setDialogResult(javax.swing.JOptionPane.CANCEL_OPTION);
428         setValue(null);
429         setVisible(false);
430         dispose();
431     }//GEN-LAST:event_jButton2ActionPerformed
432

433     private void jButton1ActionPerformed(java.awt.event.ActionEvent JavaDoc evt//GEN-FIRST:event_jButton1ActionPerformed
434
)
435     {
436         setDialogResult(javax.swing.JOptionPane.OK_OPTION);
437
438         if (jPanel4.getComponent(0) == jComboBox1)
439         {
440            if (jComboBox1.getSelectedItem() == null)
441             {
442                 setValue(null);
443             }
444             else
445             {
446                 setValue(jComboBox1.getSelectedItem());
447                 if (!cachedValues.contains(getValue()))
448                 {
449                     cachedValues.addElement(getValue());
450                 }
451             }
452         }
453         else if (jPanel4.getComponent(0) == datePicker)
454         {
455             setValue( datePicker.getDate() );
456         }
457         else if (jPanel4.getComponent(0) == datetimePicker)
458         {
459             setValue( datetimePicker.getDate() );
460         }
461         
462
463         setVisible(false);
464         dispose();
465
466     }//GEN-LAST:event_jButton1ActionPerformed
467

468    
469
470     /**
471      * DOCUMENT ME!
472      *
473      * @return DOCUMENT ME!
474      */

475     public int getDialogResult()
476     {
477
478         return dialogResult;
479     }
480
481     /**
482      * DOCUMENT ME!
483      *
484      * @param dialogResult DOCUMENT ME!
485      */

486     public void setDialogResult(int dialogResult)
487     {
488         this.dialogResult = dialogResult;
489     }
490
491     /**
492      * DOCUMENT ME!
493      *
494      * @return DOCUMENT ME!
495      */

496     public Object JavaDoc getValue()
497     {
498
499         return value;
500     }
501
502     /**
503      * DOCUMENT ME!
504      *
505      * @param value DOCUMENT ME!
506      */

507     public void setValue(Object JavaDoc value)
508     {
509         this.value = value;
510     }
511     
512     
513     
514     
515
516     // Variables declaration - do not modify//GEN-BEGIN:variables
517
private javax.swing.JButton JavaDoc jButton1;
518     private javax.swing.JButton JavaDoc jButton2;
519     private javax.swing.JComboBox JavaDoc jComboBox1;
520     private javax.swing.JLabel JavaDoc jLabel1;
521     private javax.swing.JLabel JavaDoc jLabelClass;
522     private javax.swing.JLabel JavaDoc jLabelParamName;
523     private javax.swing.JLabel JavaDoc jLabelYouCan;
524     private javax.swing.JPanel JavaDoc jPanel1;
525     private javax.swing.JPanel JavaDoc jPanel2;
526     private javax.swing.JPanel JavaDoc jPanel3;
527     private javax.swing.JPanel JavaDoc jPanel4;
528     private javax.swing.JScrollPane JavaDoc jScrollPane1;
529     private javax.swing.JSeparator JavaDoc jSeparator1;
530     private javax.swing.JTextArea JavaDoc jTextArea1;
531     // End of variables declaration//GEN-END:variables
532
public void applyI18n(){
533                 // Start autogenerated code ----------------------
534
jButton1.setText(I18n.getString("promptDialog.button1","Ok"));
535                 jButton2.setText(I18n.getString("promptDialog.button2","Use default"));
536                 jLabelClass.setText(I18n.getString("promptDialog.labelClass","The class type is:"));
537                 jLabelParamName.setText(I18n.getString("promptDialog.labelParamName","Param name"));
538                 // End autogenerated code ----------------------
539
}
540 }
541
Popular Tags