1 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 ; 41 import java.util.Vector ; 42 import javax.swing.JComboBox ; 43 import javax.swing.JOptionPane ; 44 import javax.swing.JPanel ; 45 import javax.swing.event.DocumentEvent ; 46 import javax.swing.event.DocumentListener ; 47 import javax.swing.table.TableColumn ; 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 57 public class SubreportWizardExistingReport extends javax.swing.JPanel implements GenericWizard { 58 59 private String reportFileName = null; 60 private SubReportElement subReportElement = null; 61 private BaseWizardPanel wizardPanel = null; 62 private javax.swing.JDialog wizardDialog = null; 63 64 65 public SubreportWizardExistingReport() { 66 initComponents(); 67 applyI18n(); 68 jRTextExpressionAreaConnectionExpression.getDocument().addDocumentListener( new DocumentListener () { 69 public void changedUpdate(DocumentEvent e) { 70 if (wizardPanel != null) wizardPanel.updateButtons(); 71 } 72 public void insertUpdate(DocumentEvent e) { 73 if (wizardPanel != null) wizardPanel.updateButtons(); 74 } 75 public void removeUpdate(DocumentEvent e) { 76 if (wizardPanel != null) wizardPanel.updateButtons(); 77 } 78 }); 79 80 jRTextExpressionAreaDataSourceExpression.getDocument().addDocumentListener( new DocumentListener () { 81 public void changedUpdate(DocumentEvent e) { 82 if (wizardPanel != null) wizardPanel.updateButtons(); 83 } 84 public void insertUpdate(DocumentEvent e) { 85 if (wizardPanel != null) wizardPanel.updateButtons(); 86 } 87 public void removeUpdate(DocumentEvent e) { 88 if (wizardPanel != null) wizardPanel.updateButtons(); 89 } 90 }); 91 92 Vector values = new Vector (); 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 col = jTableParameters.getColumnModel().getColumn(1); 104 TableComboBoxEditor tcb = new TableComboBoxEditor(values); 105 ((JComboBox )tcb.getComponent()).setEditable(true); 106 col.setCellEditor(tcb); 107 108 112 } 113 114 119 private void initComponents() { 121 java.awt.GridBagConstraints gridBagConstraints; 122 123 jPanel0 = new javax.swing.JPanel (); 124 jRadioButton1 = new javax.swing.JRadioButton (); 125 jRadioButton2 = new javax.swing.JRadioButton (); 126 jRTextExpressionAreaConnectionExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 127 jRadioButton3 = new javax.swing.JRadioButton (); 128 jRTextExpressionAreaDataSourceExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 129 jRadioButton6 = new javax.swing.JRadioButton (); 130 buttonGroup1 = new javax.swing.ButtonGroup (); 131 jPanel1 = new javax.swing.JPanel (); 132 jScrollPane1 = new javax.swing.JScrollPane (); 133 jTableParameters = new javax.swing.JTable (); 134 jPanel2 = new javax.swing.JPanel (); 135 jRadioButton4 = new javax.swing.JRadioButton (); 136 jLabel1 = new javax.swing.JLabel (); 137 jRadioButton5 = new javax.swing.JRadioButton (); 138 jLabel2 = new javax.swing.JLabel (); 139 jPanel3 = new javax.swing.JPanel (); 140 jLabel3 = new javax.swing.JLabel (); 141 buttonGroup2 = new javax.swing.ButtonGroup (); 142 143 jPanel0.setLayout(new java.awt.GridBagLayout ()); 144 145 jPanel0.addPropertyChangeListener(new java.beans.PropertyChangeListener () { 146 public void propertyChange(java.beans.PropertyChangeEvent 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 (0, 0, 0, 0)); 157 jRadioButton1.setMinimumSize(new java.awt.Dimension (115, 20)); 158 jRadioButton1.setPreferredSize(new java.awt.Dimension (115, 20)); 159 jRadioButton1.addItemListener(new java.awt.event.ItemListener () { 160 public void itemStateChanged(java.awt.event.ItemEvent evt) { 161 jRadioButton1ItemStateChanged(evt); 162 } 163 }); 164 jRadioButton1.addActionListener(new java.awt.event.ActionListener () { 165 public void actionPerformed(java.awt.event.ActionEvent evt) { 166 jRadioButton1ActionPerformed(evt); 167 } 168 }); 169 170 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (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 (0, 0, 0, 0)); 182 jRadioButton2.setMinimumSize(new java.awt.Dimension (115, 20)); 183 jRadioButton2.setPreferredSize(new java.awt.Dimension (115, 20)); 184 jRadioButton2.addItemListener(new java.awt.event.ItemListener () { 185 public void itemStateChanged(java.awt.event.ItemEvent evt) { 186 jRadioButton1ItemStateChanged1(evt); 187 } 188 }); 189 jRadioButton2.addActionListener(new java.awt.event.ActionListener () { 190 public void actionPerformed(java.awt.event.ActionEvent evt) { 191 jRadioButton1ActionPerformed1(evt); 192 } 193 }); 194 195 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (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 (300, 47)); 206 jRTextExpressionAreaConnectionExpression.setPreferredSize(new java.awt.Dimension (300, 47)); 207 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (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 (0, 0, 0, 0)); 221 jRadioButton3.setPreferredSize(new java.awt.Dimension (129, 20)); 222 jRadioButton3.addItemListener(new java.awt.event.ItemListener () { 223 public void itemStateChanged(java.awt.event.ItemEvent evt) { 224 jRadioButton3ItemStateChanged(evt); 225 } 226 }); 227 228 gridBagConstraints = new java.awt.GridBagConstraints (); 229 gridBagConstraints.gridx = 0; 230 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 231 gridBagConstraints.weightx = 1.0; 232 gridBagConstraints.insets = new java.awt.Insets (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 (300, 47)); 238 jRTextExpressionAreaDataSourceExpression.setPreferredSize(new java.awt.Dimension (300, 47)); 239 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (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 (0, 0, 0, 0)); 253 jRadioButton6.setMinimumSize(new java.awt.Dimension (129, 20)); 254 jRadioButton6.setPreferredSize(new java.awt.Dimension (129, 20)); 255 jRadioButton6.addItemListener(new java.awt.event.ItemListener () { 256 public void itemStateChanged(java.awt.event.ItemEvent evt) { 257 jRadioButton3ItemStateChanged1(evt); 258 } 259 }); 260 261 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (10, 20, 0, 0); 268 jPanel0.add(jRadioButton6, gridBagConstraints); 269 270 jPanel1.setLayout(new java.awt.GridBagLayout ()); 271 272 jTableParameters.setModel(new javax.swing.table.DefaultTableModel ( 273 new Object [][] { 274 275 }, 276 new String [] { 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 (); 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 ()); 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 (0, 0, 0, 0)); 304 jRadioButton4.setMinimumSize(new java.awt.Dimension (115, 20)); 305 jRadioButton4.setPreferredSize(new java.awt.Dimension (115, 20)); 306 jRadioButton4.addItemListener(new java.awt.event.ItemListener () { 307 public void itemStateChanged(java.awt.event.ItemEvent evt) { 308 jRadioButton1ItemStateChanged2(evt); 309 } 310 }); 311 jRadioButton4.addActionListener(new java.awt.event.ActionListener () { 312 public void actionPerformed(java.awt.event.ActionEvent evt) { 313 jRadioButton1ActionPerformed2(evt); 314 } 315 }); 316 317 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (10, 20, 0, 0); 322 jPanel2.add(jRadioButton4, gridBagConstraints); 323 324 jLabel1.setText("$P{SUBREPORT_DIR} + \"/name.jasper\""); 325 gridBagConstraints = new java.awt.GridBagConstraints (); 326 gridBagConstraints.gridx = 0; 327 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 328 gridBagConstraints.insets = new java.awt.Insets (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 (0, 0, 0, 0)); 336 jRadioButton5.setMinimumSize(new java.awt.Dimension (115, 20)); 337 jRadioButton5.setPreferredSize(new java.awt.Dimension (115, 20)); 338 jRadioButton5.addItemListener(new java.awt.event.ItemListener () { 339 public void itemStateChanged(java.awt.event.ItemEvent evt) { 340 jRadioButton2jRadioButton1ItemStateChanged1(evt); 341 } 342 }); 343 jRadioButton5.addActionListener(new java.awt.event.ActionListener () { 344 public void actionPerformed(java.awt.event.ActionEvent evt) { 345 jRadioButton2jRadioButton1ActionPerformed1(evt); 346 } 347 }); 348 349 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (24, 20, 0, 0); 355 jPanel2.add(jRadioButton5, gridBagConstraints); 356 357 jLabel2.setText("\" path reference \""); 358 gridBagConstraints = new java.awt.GridBagConstraints (); 359 gridBagConstraints.gridx = 0; 360 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 361 gridBagConstraints.insets = new java.awt.Insets (2, 40, 0, 0); 362 jPanel2.add(jLabel2, gridBagConstraints); 363 364 jPanel3.setLayout(new java.awt.GridBagLayout ()); 365 366 jLabel3.setText("Finish"); 367 jPanel3.add(jLabel3, new java.awt.GridBagConstraints ()); 368 369 setLayout(new java.awt.BorderLayout ()); 370 371 } 373 private void jRadioButton3ItemStateChanged1(java.awt.event.ItemEvent evt) { if (wizardPanel != null) wizardPanel.updateButtons(); 375 } 377 private void jRadioButton2jRadioButton1ActionPerformed1(java.awt.event.ActionEvent evt) { } 381 private void jRadioButton2jRadioButton1ItemStateChanged1(java.awt.event.ItemEvent evt) { } 385 private void jRadioButton1ActionPerformed2(java.awt.event.ActionEvent evt) { } 389 private void jRadioButton1ItemStateChanged2(java.awt.event.ItemEvent evt) { } 393 private void jRadioButton1ActionPerformed1(java.awt.event.ActionEvent evt) { } 397 private void jRadioButton1ItemStateChanged1(java.awt.event.ItemEvent evt) { } 401 private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) { if (wizardPanel != null) wizardPanel.updateButtons(); 403 } 405 private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) { if (wizardPanel != null) wizardPanel.updateButtons(); 407 } 409 private void jRadioButton3ItemStateChanged(java.awt.event.ItemEvent evt) { wizardPanel.updateButtons(); 411 } 413 private void jPanel0PropertyChange(java.beans.PropertyChangeEvent evt) { 415 416 417 } 419 420 private javax.swing.ButtonGroup buttonGroup1; 422 private javax.swing.ButtonGroup buttonGroup2; 423 private javax.swing.JLabel jLabel1; 424 private javax.swing.JLabel jLabel2; 425 private javax.swing.JLabel jLabel3; 426 private javax.swing.JPanel jPanel0; 427 private javax.swing.JPanel jPanel1; 428 private javax.swing.JPanel jPanel2; 429 private javax.swing.JPanel jPanel3; 430 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaConnectionExpression; 431 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaDataSourceExpression; 432 private javax.swing.JRadioButton jRadioButton1; 433 private javax.swing.JRadioButton jRadioButton2; 434 private javax.swing.JRadioButton jRadioButton3; 435 private javax.swing.JRadioButton jRadioButton4; 436 private javax.swing.JRadioButton jRadioButton5; 437 private javax.swing.JRadioButton jRadioButton6; 438 private javax.swing.JScrollPane jScrollPane1; 439 private javax.swing.JTable jTableParameters; 440 442 443 public String [] getStepsNames() { 444 445 String [] names = new String [3]; 446 names[0] = "Connection / datasource"; 447 names[1] = "Parameters"; 448 names[2] = "Expression"; 449 451 return names; 452 } 453 454 public String 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 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 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 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 f = new File ( getReportFileName() ); 542 543 548 String 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) { 575 } 576 else if (nextStep == 1) { 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 dtm = (javax.swing.table.DefaultTableModel )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 []{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 dtm = (javax.swing.table.DefaultTableModel )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 []{param.getName(),""}); 615 } 616 } 617 jTableParameters.updateUI(); 618 619 } 620 621 } catch (Exception ex) 622 { 623 JOptionPane.showMessageDialog(this, 624 I18n.getFormattedString( "messages.subreportWizardExistingReport.errorLoadingSubreport","Error loading the subreport file: {0}", new Object []{ex.getMessage()}) 625 ); 626 ex.printStackTrace(); 627 finish(-1); 628 } 629 } 630 else if (nextStep == 2) { 632 try { 633 File f = new File ( getReportFileName() ); 634 635 String 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 s2 = MainFrame.getMainInstance().getTranslatedCompileDirectory(); 649 f = new File ( getReportFileName() ); 650 f = new File (s2, f.getName()); 651 652 s2 = Misc.string_replace("\\\\","\\","" + f); 653 654 jLabel2.setText("\"" + s2 + "\""); 655 656 } catch (Exception 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 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 getReportFileName() { 707 return reportFileName; 708 } 709 710 public void setReportFileName(String 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 getWizardDialog() { 731 return wizardDialog; 732 } 733 734 public void setWizardDialog(javax.swing.JDialog wizardDialog) { 735 this.wizardDialog = wizardDialog; 736 } 737 738 public void applyI18n(){ 739 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 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 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 |