KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > wizard > SubreportWizardExistingReport


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  * SubreportWizardExistingReport.java
28  *
29  * Created on March 22, 2006, 8:52 PM
30  *
31  */

32
33 package it.businesslogic.ireport.gui.wizard;
34
35 import it.businesslogic.ireport.JRSubreportParameter;
36 import it.businesslogic.ireport.Report;
37 import it.businesslogic.ireport.SubReportElement;
38 import it.businesslogic.ireport.gui.MainFrame;
39 import it.businesslogic.ireport.util.Misc;
40 import java.io.File JavaDoc;
41 import java.util.Vector JavaDoc;
42 import javax.swing.JComboBox JavaDoc;
43 import javax.swing.JOptionPane JavaDoc;
44 import javax.swing.JPanel JavaDoc;
45 import javax.swing.event.DocumentEvent JavaDoc;
46 import javax.swing.event.DocumentListener JavaDoc;
47 import javax.swing.table.TableColumn JavaDoc;
48 import net.sf.jasperreports.engine.JRParameter;
49 import net.sf.jasperreports.engine.JasperReport;
50 import net.sf.jasperreports.engine.design.JasperDesign;
51 import it.businesslogic.ireport.util.I18n;
52
53 /**
54  *
55  * @author gtoffoli
56  */

57 public class SubreportWizardExistingReport extends javax.swing.JPanel JavaDoc implements GenericWizard {
58     
59     private String JavaDoc reportFileName = null;
60     private SubReportElement subReportElement = null;
61     private BaseWizardPanel wizardPanel = null;
62     private javax.swing.JDialog JavaDoc wizardDialog = null;
63   
64     /** Creates new form SubreportWizardPanes */
65     public SubreportWizardExistingReport() {
66         initComponents();
67         applyI18n();
68         jRTextExpressionAreaConnectionExpression.getDocument().addDocumentListener( new DocumentListener JavaDoc() {
69             public void changedUpdate(DocumentEvent JavaDoc e) {
70                 if (wizardPanel != null) wizardPanel.updateButtons();
71             }
72             public void insertUpdate(DocumentEvent JavaDoc e) {
73                 if (wizardPanel != null) wizardPanel.updateButtons();
74             }
75             public void removeUpdate(DocumentEvent JavaDoc e) {
76                 if (wizardPanel != null) wizardPanel.updateButtons();
77             }
78         });
79         
80         jRTextExpressionAreaDataSourceExpression.getDocument().addDocumentListener( new DocumentListener JavaDoc() {
81             public void changedUpdate(DocumentEvent JavaDoc e) {
82                 if (wizardPanel != null) wizardPanel.updateButtons();
83             }
84             public void insertUpdate(DocumentEvent JavaDoc e) {
85                 if (wizardPanel != null) wizardPanel.updateButtons();
86             }
87             public void removeUpdate(DocumentEvent JavaDoc e) {
88                 if (wizardPanel != null) wizardPanel.updateButtons();
89             }
90         });
91         
92         // These are the combobox values
93
Vector JavaDoc values = new Vector JavaDoc();
94         
95         Report report = MainFrame.getMainInstance().getActiveReportFrame().getReport();
96         
97         values.addAll( report.getFields());
98         values.addAll( report.getVariables());
99         values.addAll(report.getParameters());
100         jTableParameters.setRowHeight(20);
101
102     
103         TableColumn JavaDoc col = jTableParameters.getColumnModel().getColumn(1);
104         TableComboBoxEditor tcb = new TableComboBoxEditor(values);
105         ((JComboBox JavaDoc)tcb.getComponent()).setEditable(true);
106         col.setCellEditor(tcb);
107     
108         // If the cell should appear like a combobox in its
109
// non-editing state, also set the combobox renderer
110
//col.setCellRenderer(new TableComboBoxRenderer(values));
111

112     }
113     
114     /** This method is called from within the constructor to
115      * initialize the form.
116      * WARNING: Do NOT modify this code. The content of this method is
117      * always regenerated by the Form Editor.
118      */

119     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
120
private void initComponents() {
121         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
122
123         jPanel0 = new javax.swing.JPanel JavaDoc();
124         jRadioButton1 = new javax.swing.JRadioButton JavaDoc();
125         jRadioButton2 = new javax.swing.JRadioButton JavaDoc();
126         jRTextExpressionAreaConnectionExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea();
127         jRadioButton3 = new javax.swing.JRadioButton JavaDoc();
128         jRTextExpressionAreaDataSourceExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea();
129         jRadioButton6 = new javax.swing.JRadioButton JavaDoc();
130         buttonGroup1 = new javax.swing.ButtonGroup JavaDoc();
131         jPanel1 = new javax.swing.JPanel JavaDoc();
132         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
133         jTableParameters = new javax.swing.JTable JavaDoc();
134         jPanel2 = new javax.swing.JPanel JavaDoc();
135         jRadioButton4 = new javax.swing.JRadioButton JavaDoc();
136         jLabel1 = new javax.swing.JLabel JavaDoc();
137         jRadioButton5 = new javax.swing.JRadioButton JavaDoc();
138         jLabel2 = new javax.swing.JLabel JavaDoc();
139         jPanel3 = new javax.swing.JPanel JavaDoc();
140         jLabel3 = new javax.swing.JLabel JavaDoc();
141         buttonGroup2 = new javax.swing.ButtonGroup JavaDoc();
142
143         jPanel0.setLayout(new java.awt.GridBagLayout JavaDoc());
144
145         jPanel0.addPropertyChangeListener(new java.beans.PropertyChangeListener JavaDoc() {
146             public void propertyChange(java.beans.PropertyChangeEvent JavaDoc evt) {
147                 jPanel0PropertyChange(evt);
148             }
149         });
150
151         buttonGroup1.add(jRadioButton1);
152         jRadioButton1.setSelected(true);
153         jRadioButton1.setText("Use the same connection used to fill the master report");
154         jRadioButton1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
155         jRadioButton1.setFocusPainted(false);
156         jRadioButton1.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
157         jRadioButton1.setMinimumSize(new java.awt.Dimension JavaDoc(115, 20));
158         jRadioButton1.setPreferredSize(new java.awt.Dimension JavaDoc(115, 20));
159         jRadioButton1.addItemListener(new java.awt.event.ItemListener JavaDoc() {
160             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
161                 jRadioButton1ItemStateChanged(evt);
162             }
163         });
164         jRadioButton1.addActionListener(new java.awt.event.ActionListener JavaDoc() {
165             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
166                 jRadioButton1ActionPerformed(evt);
167             }
168         });
169
170         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
171         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
172         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
173         gridBagConstraints.weightx = 1.0;
174         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 20, 0, 0);
175         jPanel0.add(jRadioButton1, gridBagConstraints);
176
177         buttonGroup1.add(jRadioButton2);
178         jRadioButton2.setText("Use another connection");
179         jRadioButton2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
180         jRadioButton2.setFocusPainted(false);
181         jRadioButton2.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
182         jRadioButton2.setMinimumSize(new java.awt.Dimension JavaDoc(115, 20));
183         jRadioButton2.setPreferredSize(new java.awt.Dimension JavaDoc(115, 20));
184         jRadioButton2.addItemListener(new java.awt.event.ItemListener JavaDoc() {
185             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
186                 jRadioButton1ItemStateChanged1(evt);
187             }
188         });
189         jRadioButton2.addActionListener(new java.awt.event.ActionListener JavaDoc() {
190             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
191                 jRadioButton1ActionPerformed1(evt);
192             }
193         });
194
195         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
196         gridBagConstraints.gridx = 0;
197         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
198         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
199         gridBagConstraints.weightx = 1.0;
200         gridBagConstraints.insets = new java.awt.Insets JavaDoc(10, 20, 0, 0);
201         jPanel0.add(jRadioButton2, gridBagConstraints);
202
203         jRTextExpressionAreaConnectionExpression.setBorder(javax.swing.BorderFactory.createEtchedBorder());
204         jRTextExpressionAreaConnectionExpression.setElectricScroll(0);
205         jRTextExpressionAreaConnectionExpression.setMinimumSize(new java.awt.Dimension JavaDoc(300, 47));
206         jRTextExpressionAreaConnectionExpression.setPreferredSize(new java.awt.Dimension JavaDoc(300, 47));
207         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
208         gridBagConstraints.gridx = 0;
209         gridBagConstraints.gridwidth = 2;
210         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
211         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
212         gridBagConstraints.weightx = 1.0;
213         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 40, 0, 6);
214         jPanel0.add(jRTextExpressionAreaConnectionExpression, gridBagConstraints);
215
216         buttonGroup1.add(jRadioButton3);
217         jRadioButton3.setText("Use a JRDataSource expression");
218         jRadioButton3.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
219         jRadioButton3.setFocusPainted(false);
220         jRadioButton3.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
221         jRadioButton3.setPreferredSize(new java.awt.Dimension JavaDoc(129, 20));
222         jRadioButton3.addItemListener(new java.awt.event.ItemListener JavaDoc() {
223             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
224                 jRadioButton3ItemStateChanged(evt);
225             }
226         });
227
228         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
229         gridBagConstraints.gridx = 0;
230         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
231         gridBagConstraints.weightx = 1.0;
232         gridBagConstraints.insets = new java.awt.Insets JavaDoc(10, 20, 0, 0);
233         jPanel0.add(jRadioButton3, gridBagConstraints);
234
235         jRTextExpressionAreaDataSourceExpression.setBorder(javax.swing.BorderFactory.createEtchedBorder());
236         jRTextExpressionAreaDataSourceExpression.setElectricScroll(0);
237         jRTextExpressionAreaDataSourceExpression.setMinimumSize(new java.awt.Dimension JavaDoc(300, 47));
238         jRTextExpressionAreaDataSourceExpression.setPreferredSize(new java.awt.Dimension JavaDoc(300, 47));
239         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
240         gridBagConstraints.gridx = 0;
241         gridBagConstraints.gridwidth = 2;
242         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
243         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
244         gridBagConstraints.weightx = 1.0;
245         gridBagConstraints.insets = new java.awt.Insets JavaDoc(1, 40, 0, 6);
246         jPanel0.add(jRTextExpressionAreaDataSourceExpression, gridBagConstraints);
247
248         buttonGroup1.add(jRadioButton6);
249         jRadioButton6.setText("Do not use any connection or datasource");
250         jRadioButton6.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
251         jRadioButton6.setFocusPainted(false);
252         jRadioButton6.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
253         jRadioButton6.setMinimumSize(new java.awt.Dimension JavaDoc(129, 20));
254         jRadioButton6.setPreferredSize(new java.awt.Dimension JavaDoc(129, 20));
255         jRadioButton6.addItemListener(new java.awt.event.ItemListener JavaDoc() {
256             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
257                 jRadioButton3ItemStateChanged1(evt);
258             }
259         });
260
261         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
262         gridBagConstraints.gridx = 0;
263         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
264         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
265         gridBagConstraints.weightx = 1.0;
266         gridBagConstraints.weighty = 1.0;
267         gridBagConstraints.insets = new java.awt.Insets JavaDoc(10, 20, 0, 0);
268         jPanel0.add(jRadioButton6, gridBagConstraints);
269
270         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
271
272         jTableParameters.setModel(new javax.swing.table.DefaultTableModel JavaDoc(
273             new Object JavaDoc [][] {
274
275             },
276             new String JavaDoc [] {
277                 "Parameter name", "Expression"
278             }
279         ) {
280             boolean[] canEdit = new boolean [] {
281                 false, true
282             };
283
284             public boolean isCellEditable(int rowIndex, int columnIndex) {
285                 return canEdit [columnIndex];
286             }
287         });
288         jScrollPane1.setViewportView(jTableParameters);
289
290         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
291         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
292         gridBagConstraints.weightx = 1.0;
293         gridBagConstraints.weighty = 1.0;
294         jPanel1.add(jScrollPane1, gridBagConstraints);
295
296         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
297
298         buttonGroup2.add(jRadioButton4);
299         jRadioButton4.setSelected(true);
300         jRadioButton4.setText("Store the directory name in a parameter");
301         jRadioButton4.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
302         jRadioButton4.setFocusPainted(false);
303         jRadioButton4.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
304         jRadioButton4.setMinimumSize(new java.awt.Dimension JavaDoc(115, 20));
305         jRadioButton4.setPreferredSize(new java.awt.Dimension JavaDoc(115, 20));
306         jRadioButton4.addItemListener(new java.awt.event.ItemListener JavaDoc() {
307             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
308                 jRadioButton1ItemStateChanged2(evt);
309             }
310         });
311         jRadioButton4.addActionListener(new java.awt.event.ActionListener JavaDoc() {
312             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
313                 jRadioButton1ActionPerformed2(evt);
314             }
315         });
316
317         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
318         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
319         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
320         gridBagConstraints.weightx = 1.0;
321         gridBagConstraints.insets = new java.awt.Insets JavaDoc(10, 20, 0, 0);
322         jPanel2.add(jRadioButton4, gridBagConstraints);
323
324         jLabel1.setText("$P{SUBREPORT_DIR} + \"/name.jasper\"");
325         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
326         gridBagConstraints.gridx = 0;
327         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
328         gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 40, 0, 0);
329         jPanel2.add(jLabel1, gridBagConstraints);
330
331         buttonGroup2.add(jRadioButton5);
332         jRadioButton5.setText("Use a static absolute path reference");
333         jRadioButton5.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
334         jRadioButton5.setFocusPainted(false);
335         jRadioButton5.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
336         jRadioButton5.setMinimumSize(new java.awt.Dimension JavaDoc(115, 20));
337         jRadioButton5.setPreferredSize(new java.awt.Dimension JavaDoc(115, 20));
338         jRadioButton5.addItemListener(new java.awt.event.ItemListener JavaDoc() {
339             public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
340                 jRadioButton2jRadioButton1ItemStateChanged1(evt);
341             }
342         });
343         jRadioButton5.addActionListener(new java.awt.event.ActionListener JavaDoc() {
344             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
345                 jRadioButton2jRadioButton1ActionPerformed1(evt);
346             }
347         });
348
349         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
350         gridBagConstraints.gridx = 0;
351         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
352         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH;
353         gridBagConstraints.weightx = 1.0;
354         gridBagConstraints.insets = new java.awt.Insets JavaDoc(24, 20, 0, 0);
355         jPanel2.add(jRadioButton5, gridBagConstraints);
356
357         jLabel2.setText("\" path reference \"");
358         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
359         gridBagConstraints.gridx = 0;
360         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
361         gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 40, 0, 0);
362         jPanel2.add(jLabel2, gridBagConstraints);
363
364         jPanel3.setLayout(new java.awt.GridBagLayout JavaDoc());
365
366         jLabel3.setText("Finish");
367         jPanel3.add(jLabel3, new java.awt.GridBagConstraints JavaDoc());
368
369         setLayout(new java.awt.BorderLayout JavaDoc());
370
371     }// </editor-fold>//GEN-END:initComponents
372

373     private void jRadioButton3ItemStateChanged1(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton3ItemStateChanged1
374
if (wizardPanel != null) wizardPanel.updateButtons();
375     }//GEN-LAST:event_jRadioButton3ItemStateChanged1
376

377     private void jRadioButton2jRadioButton1ActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton2jRadioButton1ActionPerformed1
378
// TODO add your handling code here:
379
}//GEN-LAST:event_jRadioButton2jRadioButton1ActionPerformed1
380

381     private void jRadioButton2jRadioButton1ItemStateChanged1(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton2jRadioButton1ItemStateChanged1
382
// TODO add your handling code here:
383
}//GEN-LAST:event_jRadioButton2jRadioButton1ItemStateChanged1
384

385     private void jRadioButton1ActionPerformed2(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed2
386
// TODO add your handling code here:
387
}//GEN-LAST:event_jRadioButton1ActionPerformed2
388

389     private void jRadioButton1ItemStateChanged2(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ItemStateChanged2
390
// TODO add your handling code here:
391
}//GEN-LAST:event_jRadioButton1ItemStateChanged2
392

393     private void jRadioButton1ActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed1
394
// TODO add your handling code here:
395
}//GEN-LAST:event_jRadioButton1ActionPerformed1
396

397     private void jRadioButton1ItemStateChanged1(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ItemStateChanged1
398
// TODO add your handling code here:
399
}//GEN-LAST:event_jRadioButton1ItemStateChanged1
400

401     private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed
402
if (wizardPanel != null) wizardPanel.updateButtons();
403     }//GEN-LAST:event_jRadioButton1ActionPerformed
404

405     private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton1ItemStateChanged
406
if (wizardPanel != null) wizardPanel.updateButtons();
407     }//GEN-LAST:event_jRadioButton1ItemStateChanged
408

409     private void jRadioButton3ItemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButton3ItemStateChanged
410
wizardPanel.updateButtons();
411     }//GEN-LAST:event_jRadioButton3ItemStateChanged
412

413     private void jPanel0PropertyChange(java.beans.PropertyChangeEvent JavaDoc evt) {//GEN-FIRST:event_jPanel0PropertyChange
414

415         
416         
417     }//GEN-LAST:event_jPanel0PropertyChange
418

419     
420     // Variables declaration - do not modify//GEN-BEGIN:variables
421
private javax.swing.ButtonGroup JavaDoc buttonGroup1;
422     private javax.swing.ButtonGroup JavaDoc buttonGroup2;
423     private javax.swing.JLabel JavaDoc jLabel1;
424     private javax.swing.JLabel JavaDoc jLabel2;
425     private javax.swing.JLabel JavaDoc jLabel3;
426     private javax.swing.JPanel JavaDoc jPanel0;
427     private javax.swing.JPanel JavaDoc jPanel1;
428     private javax.swing.JPanel JavaDoc jPanel2;
429     private javax.swing.JPanel JavaDoc jPanel3;
430     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaConnectionExpression;
431     private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaDataSourceExpression;
432     private javax.swing.JRadioButton JavaDoc jRadioButton1;
433     private javax.swing.JRadioButton JavaDoc jRadioButton2;
434     private javax.swing.JRadioButton JavaDoc jRadioButton3;
435     private javax.swing.JRadioButton JavaDoc jRadioButton4;
436     private javax.swing.JRadioButton JavaDoc jRadioButton5;
437     private javax.swing.JRadioButton JavaDoc jRadioButton6;
438     private javax.swing.JScrollPane JavaDoc jScrollPane1;
439     private javax.swing.JTable JavaDoc jTableParameters;
440     // End of variables declaration//GEN-END:variables
441

442
443     public String JavaDoc[] getStepsNames() {
444         
445         String JavaDoc[] names = new String JavaDoc[3];
446         names[0] = "Connection / datasource";
447         names[1] = "Parameters";
448         names[2] = "Expression";
449         //names[3] = "Finish";
450

451         return names;
452     }
453
454     public String JavaDoc getStepDescription(int step) {
455         
456         if (step==0) return "How fill the subreport";
457         if (step==1) return "Subreport parameters";
458         if (step==2) return "Subreport expession";
459         if (step==3) return "Finish";
460         
461         return "";
462     }
463
464     public void initWizard() {
465         
466     }
467
468     public void finish(int currentStep) {
469         
470         if (currentStep > 0)
471         {
472             
473             // Set the connection...
474
if (jRadioButton1.isSelected())
475             {
476                 getSubReportElement().setUseConnection(true);
477                 getSubReportElement().setConnectionExpression("$P{REPORT_CONNECTION}");
478             }
479             else if (jRadioButton2.isSelected())
480             {
481                 getSubReportElement().setUseConnection(true);
482                 getSubReportElement().setConnectionExpression(jRTextExpressionAreaConnectionExpression.getText());
483             }
484             else if (jRadioButton3.isSelected())
485             {
486                 getSubReportElement().setUseConnection(false);
487                 getSubReportElement().setDataSourceExpression(jRTextExpressionAreaDataSourceExpression.getText());
488             }
489             else if (jRadioButton6.isSelected())
490             {
491                 getSubReportElement().setUseConnection(false);
492                 getSubReportElement().setConnectionExpression("");
493                 getSubReportElement().setDataSourceExpression("");
494             }
495             
496             for (int i=0; i<jTableParameters.getRowCount(); ++i)
497             {
498                 Object JavaDoc obj = jTableParameters.getValueAt(i,1);
499                 if (obj != null && (""+obj).trim().length() > 0)
500                 {
501                     if (obj instanceof it.businesslogic.ireport.JRParameter)
502                     {
503                        obj = "$P{" + obj + "}";
504                     }
505                     else if (obj instanceof it.businesslogic.ireport.JRVariable)
506                     {
507                        obj = "$V{" + obj + "}";
508                     }
509                     else if (obj instanceof it.businesslogic.ireport.JRField)
510                     {
511                         obj = "$F{" + obj + "}";
512                     }
513                        
514                     it.businesslogic.ireport.JRSubreportParameter srp = new it.businesslogic.ireport.JRSubreportParameter(
515                             ""+jTableParameters.getValueAt(i,0),
516                             ""+obj);
517                     
518                     getSubReportElement().getSubreportParameters().add(srp);
519                 }
520             }
521             
522             if (jRadioButton4.isSelected())
523             {
524                 Report report = MainFrame.getMainInstance().getActiveReportFrame().getReport();
525                 Vector JavaDoc v = report.getParameters();
526                 boolean found = false;
527                 for (int i=0; i<report.getParameters().size(); ++i)
528                 {
529                     it.businesslogic.ireport.JRParameter param = (it.businesslogic.ireport.JRParameter)report.getParameters().elementAt(i);
530
531                     if (param.getName().equals("SUBREPORT_DIR"))
532                     {
533                         found = true;
534                         
535                         break;
536                     }
537                 }
538                 if (!found)
539                 {
540                     it.businesslogic.ireport.JRParameter param = new it.businesslogic.ireport.JRParameter("SUBREPORT_DIR","java.lang.String");
541                     File JavaDoc f = new File JavaDoc( getReportFileName() );
542                     
543                     // Set as subreport directory the current compilation directory...
544
/*
545                     
546                     String s = f.getParent(); //Path();
547                     */

548                     String JavaDoc s = MainFrame.getMainInstance().getTranslatedCompileDirectory();
549                     
550                     if (s.length() > 0 && !s.endsWith(File.separator)) s += File.separator;
551                     
552                     s = Misc.string_replace("\\\\","\\",s);
553                     s = "\"" + s + "\"";
554                     
555                     param.setDefaultValueExpression(s);
556                     report.addParameter( param );
557                 }
558                 getSubReportElement().setSubreportExpression(jLabel1.getText());
559             }
560             else
561             {
562                 getSubReportElement().setSubreportExpression(jLabel2.getText());
563             }
564             getSubReportElement().setSubreportExpressionClass("java.lang.String");
565         }
566         
567         this.getWizardDialog().setVisible(false);
568         this.getWizardDialog().dispose();
569     }
570     
571     public boolean nextStep(int nextStep) {
572         
573         if (nextStep == 0) // First step == 0
574
{
575         }
576         else if (nextStep == 1) // First step == 0
577
{
578             try{
579                 if (getReportFileName().toLowerCase().endsWith(".jasper"))
580                 {
581
582                     JasperReport jr = (JasperReport)net.sf.jasperreports.engine.util.JRLoader.loadObject( getReportFileName() );
583                     JRParameter[] params = jr.getParameters();
584
585                     javax.swing.table.DefaultTableModel JavaDoc dtm = (javax.swing.table.DefaultTableModel JavaDoc)jTableParameters.getModel();
586                     dtm.setRowCount(0);
587                     for (int i=0; i<params.length; ++i)
588                     {
589                         JRParameter param = params[i];
590                         if (param.getName() != null &&
591                             !param.isSystemDefined())
592                         {
593                             dtm.addRow(new Object JavaDoc[]{param.getName(),""});
594                         }
595                     }
596                     jTableParameters.updateUI();
597
598
599                 }
600                 else
601                 {
602
603                     JasperDesign jr = (JasperDesign)net.sf.jasperreports.engine.xml.JRXmlLoader.load( getReportFileName() );
604                     JRParameter[] params = jr.getParameters();
605
606                     javax.swing.table.DefaultTableModel JavaDoc dtm = (javax.swing.table.DefaultTableModel JavaDoc)jTableParameters.getModel();
607                     dtm.setRowCount(0);
608                     for (int i=0; i<params.length; ++i)
609                     {
610                         JRParameter param = params[i];
611                         if (param.getName() != null &&
612                             !param.isSystemDefined())
613                         {
614                             dtm.addRow(new Object JavaDoc[]{param.getName(),""});
615                         }
616                     }
617                     jTableParameters.updateUI();
618
619                 }
620                 
621             } catch (Exception JavaDoc ex)
622             {
623                 JOptionPane.showMessageDialog(this,
624                         I18n.getFormattedString( "messages.subreportWizardExistingReport.errorLoadingSubreport","Error loading the subreport file: {0}", new Object JavaDoc[]{ex.getMessage()})
625                          );
626                 ex.printStackTrace();
627                 finish(-1);
628             }
629         }
630         else if (nextStep == 2) // First step == 0
631
{
632             try {
633                    File JavaDoc f = new File JavaDoc( getReportFileName() );
634
635                    String JavaDoc s = f.getName();
636                    if (!s.toLowerCase().endsWith(".jasper"))
637                    {
638                        if (s.lastIndexOf(".") > 0)
639                        {
640                            s = s.substring(0,s.lastIndexOf("."));
641                        }
642                        s += ".jasper";
643                    }
644                    
645                    jLabel1.setText("$P{SUBREPORT_DIR} + \"" + s + "\"");
646                    
647                    
648                    String JavaDoc s2 = MainFrame.getMainInstance().getTranslatedCompileDirectory();
649                    f = new File JavaDoc( getReportFileName() );
650                    f = new File JavaDoc(s2, f.getName());
651                 
652                    s2 = Misc.string_replace("\\\\","\\","" + f);
653                 
654                    jLabel2.setText("\"" + s2 + "\"");
655            
656             } catch (Exception JavaDoc ex)
657             {
658                 ex.printStackTrace();
659             }
660            
661            
662         }
663         return true;
664     }
665
666     public boolean previousStep(int previousStep) {
667         return true;
668     }
669
670     public boolean canFinish(int currentStep) {
671         return true;
672     }
673
674     public boolean canNext(int currentStep) {
675         
676         if (currentStep == 0)
677         {
678             if (jRadioButton1.isSelected()) return true;
679             else if (jRadioButton2.isSelected() &&
680                 jRTextExpressionAreaConnectionExpression.getText().trim().length() > 0) return true;
681             else if (jRadioButton3.isSelected() &&
682                 jRTextExpressionAreaDataSourceExpression.getText().trim().length() > 0) return true;
683             else if (jRadioButton6.isSelected()) return true;
684                     
685             return false;
686         }
687         if (currentStep == 1)
688         {
689             return true;
690         }
691         return false;
692     }
693
694     public boolean canPrevious(int currentStep) {
695         return (currentStep > 0);
696     }
697
698     public JPanel JavaDoc getStepPanel(int step) {
699        if (step == 0) return jPanel0;
700        if (step == 1) return jPanel1;
701        if (step == 2) return jPanel2;
702        if (step == 3) return jPanel3;
703        return null;
704     }
705
706     public String JavaDoc getReportFileName() {
707         return reportFileName;
708     }
709
710     public void setReportFileName(String JavaDoc reportFileName) {
711         this.reportFileName = reportFileName;
712     }
713
714     public SubReportElement getSubReportElement() {
715         return subReportElement;
716     }
717
718     public void setSubReportElement(SubReportElement subReportElement) {
719         this.subReportElement = subReportElement;
720     }
721
722     public BaseWizardPanel getWizardPanel() {
723         return wizardPanel;
724     }
725
726     public void setWizardPanel(BaseWizardPanel wizardPanel) {
727         this.wizardPanel = wizardPanel;
728     }
729
730     public javax.swing.JDialog JavaDoc getWizardDialog() {
731         return wizardDialog;
732     }
733
734     public void setWizardDialog(javax.swing.JDialog JavaDoc wizardDialog) {
735         this.wizardDialog = wizardDialog;
736     }
737     
738     public void applyI18n(){
739                 // Start autogenerated code ----------------------
740
jRadioButton1.setText(I18n.getString("subreportWizardExistingReport.radioButton1","Use the same connection used to fill the master report"));
741                 jRadioButton2.setText(I18n.getString("subreportWizardExistingReport.radioButton2","Use another connection"));
742                 jRadioButton3.setText(I18n.getString("subreportWizardExistingReport.radioButton3","Use a JRDataSource expression"));
743                 jRadioButton4.setText(I18n.getString("subreportWizardExistingReport.radioButton4","Store the directory name in a parameter"));
744                 jRadioButton5.setText(I18n.getString("subreportWizardExistingReport.radioButton5","Use a static absolute path reference"));
745                 jRadioButton6.setText(I18n.getString("subreportWizardExistingReport.radioButton6","Do not use any connection or datasource"));
746                 // End autogenerated code ----------------------
747
// Start autogenerated code ----------------------
748
jLabel1.setText(I18n.getString("subreportWizardExistingReport.label1","$P{SUBREPORT_DIR} + \"/name.jasper\""));
749                 jLabel2.setText(I18n.getString("subreportWizardExistingReport.label2","\" path reference \""));
750                 jLabel3.setText(I18n.getString("subreportWizardExistingReport.label3","Finish"));
751                 // End autogenerated code ----------------------
752

753                 jTableParameters.getColumnModel().getColumn(0).setHeaderValue( I18n.getString("subreportWizardExistingReport.tablecolumn.parameterName","Parameter name") );
754                 jTableParameters.getColumnModel().getColumn(1).setHeaderValue( I18n.getString("subreportWizardExistingReport.tablecolumn.expression","Expression") );
755
756     }
757 }
758
Popular Tags