1 32 33 package it.businesslogic.ireport.gui.wizard; 34 35 import it.businesslogic.ireport.SubReportElement; 36 import it.businesslogic.ireport.gui.JReportFrame; 37 import it.businesslogic.ireport.gui.MainFrame; 38 import it.businesslogic.ireport.gui.wizard.SubreportWizardExistingReport; 39 import it.businesslogic.ireport.util.Misc; 40 import javax.swing.JDialog ; 41 import javax.swing.JFileChooser ; 42 import javax.swing.JPanel ; 43 import javax.swing.event.DocumentEvent ; 44 import javax.swing.event.DocumentListener ; 45 import it.businesslogic.ireport.util.I18n; 46 47 51 public class SubreportWizard extends javax.swing.JPanel implements GenericWizard { 52 53 private String reportFileName = null; 54 private SubReportElement subReportElement = null; 55 private JReportFrame jReportFrame = null; 56 private JDialog wizardDialog = null; 57 private BaseWizardPanel firstStep = null; 58 59 60 61 62 public SubreportWizard() { 63 initComponents(); 64 applyI18n(); 65 jTextFieldReportFileName.getDocument().addDocumentListener( new DocumentListener () { 66 public void changedUpdate(DocumentEvent e) { 67 if (firstStep != null) firstStep.updateButtons(); 68 } 69 public void insertUpdate(DocumentEvent e) { 70 if (firstStep != null) firstStep.updateButtons(); 71 } 72 public void removeUpdate(DocumentEvent e) { 73 if (firstStep != null) firstStep.updateButtons(); 74 } 75 }); 76 } 77 78 public void startWizard() 79 { 80 setJReportFrame(MainFrame.getMainInstance().getActiveReportFrame()); 81 wizardDialog = new JDialog (MainFrame.getMainInstance(),true); 82 firstStep = new BaseWizardPanel(); 83 firstStep.setGenericWizard(this); 84 wizardDialog.getContentPane().add(firstStep); 85 wizardDialog.pack(); 86 Misc.centerFrame(wizardDialog); 87 88 wizardDialog.setVisible(true); 89 } 90 91 92 97 private void initComponents() { 99 java.awt.GridBagConstraints gridBagConstraints; 100 101 jPanel1 = new javax.swing.JPanel (); 102 jRadioButton1 = new javax.swing.JRadioButton (); 103 jLabel1 = new javax.swing.JLabel (); 104 jRadioButton2 = new javax.swing.JRadioButton (); 105 jPanel2 = new javax.swing.JPanel (); 106 jTextFieldReportFileName = new javax.swing.JTextField (); 107 jButtonBrowse = new javax.swing.JButton (); 108 buttonGroup1 = new javax.swing.ButtonGroup (); 109 110 jPanel1.setLayout(new java.awt.GridBagLayout ()); 111 112 jPanel1.addPropertyChangeListener(new java.beans.PropertyChangeListener () { 113 public void propertyChange(java.beans.PropertyChangeEvent evt) { 114 jPanel1PropertyChange(evt); 115 } 116 }); 117 118 buttonGroup1.add(jRadioButton1); 119 jRadioButton1.setSelected(true); 120 jRadioButton1.setText("Create a new report"); 121 jRadioButton1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 122 jRadioButton1.setFocusPainted(false); 123 jRadioButton1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 124 jRadioButton1.setMinimumSize(new java.awt.Dimension (115, 20)); 125 jRadioButton1.setPreferredSize(new java.awt.Dimension (115, 20)); 126 jRadioButton1.addItemListener(new java.awt.event.ItemListener () { 127 public void itemStateChanged(java.awt.event.ItemEvent evt) { 128 jRadioButton1ItemStateChanged(evt); 129 } 130 }); 131 132 gridBagConstraints = new java.awt.GridBagConstraints (); 133 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 134 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTH; 135 gridBagConstraints.weightx = 1.0; 136 gridBagConstraints.insets = new java.awt.Insets (0, 20, 0, 0); 137 jPanel1.add(jRadioButton1, gridBagConstraints); 138 139 jLabel1.setForeground(new java.awt.Color (255, 0, 0)); 140 jLabel1.setText("Save the current report first!"); 141 gridBagConstraints = new java.awt.GridBagConstraints (); 142 gridBagConstraints.gridx = 0; 143 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 144 gridBagConstraints.insets = new java.awt.Insets (0, 40, 0, 0); 145 jPanel1.add(jLabel1, gridBagConstraints); 146 147 buttonGroup1.add(jRadioButton2); 148 jRadioButton2.setText("Use an exsisting report"); 149 jRadioButton2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 150 jRadioButton2.setFocusPainted(false); 151 jRadioButton2.setMargin(new java.awt.Insets (0, 0, 0, 0)); 152 jRadioButton2.setPreferredSize(new java.awt.Dimension (129, 20)); 153 jRadioButton2.addItemListener(new java.awt.event.ItemListener () { 154 public void itemStateChanged(java.awt.event.ItemEvent evt) { 155 jRadioButton2ItemStateChanged(evt); 156 } 157 }); 158 159 gridBagConstraints = new java.awt.GridBagConstraints (); 160 gridBagConstraints.gridx = 0; 161 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 162 gridBagConstraints.weightx = 1.0; 163 gridBagConstraints.insets = new java.awt.Insets (24, 20, 0, 0); 164 jPanel1.add(jRadioButton2, gridBagConstraints); 165 166 jPanel2.setLayout(new java.awt.GridBagLayout ()); 167 168 jTextFieldReportFileName.setMinimumSize(new java.awt.Dimension (100, 19)); 169 jTextFieldReportFileName.setPreferredSize(new java.awt.Dimension (250, 19)); 170 jTextFieldReportFileName.addActionListener(new java.awt.event.ActionListener () { 171 public void actionPerformed(java.awt.event.ActionEvent evt) { 172 jTextFieldReportFileNameActionPerformed(evt); 173 } 174 }); 175 176 jPanel2.add(jTextFieldReportFileName, new java.awt.GridBagConstraints ()); 177 178 jButtonBrowse.setText("Browse"); 179 jButtonBrowse.addActionListener(new java.awt.event.ActionListener () { 180 public void actionPerformed(java.awt.event.ActionEvent evt) { 181 jButtonBrowseActionPerformed(evt); 182 } 183 }); 184 185 gridBagConstraints = new java.awt.GridBagConstraints (); 186 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 187 gridBagConstraints.weightx = 1.0; 188 jPanel2.add(jButtonBrowse, gridBagConstraints); 189 190 gridBagConstraints = new java.awt.GridBagConstraints (); 191 gridBagConstraints.gridx = 0; 192 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 193 gridBagConstraints.insets = new java.awt.Insets (4, 40, 0, 0); 194 jPanel1.add(jPanel2, gridBagConstraints); 195 196 setLayout(new java.awt.BorderLayout ()); 197 198 } 200 private void jButtonBrowseActionPerformed(java.awt.event.ActionEvent evt) { 202 JFileChooser jfc = new JFileChooser (); 204 jfc.setFileFilter( new javax.swing.filechooser.FileFilter () { 205 public boolean accept(java.io.File file) { 206 String filename = file.getName().toLowerCase(); 207 return (filename.endsWith(".xml") || filename.endsWith(".jrxml") || filename.endsWith(".jasper") || file.isDirectory()) ; 208 } 209 public String getDescription() { 210 return "JasperReports Report file *.xml;*jrxml;*.jasper"; 211 } 212 }); 213 if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 214 jTextFieldReportFileName.setText( jfc.getSelectedFile().getPath()); 215 jRadioButton2.setSelected(true); 216 } 217 firstStep.updateButtons(); 218 } 220 private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) { firstStep.updateButtons(); 222 } 224 private void jRadioButton2ItemStateChanged(java.awt.event.ItemEvent evt) { 226 firstStep.updateButtons(); 227 } 229 private void jPanel1PropertyChange(java.beans.PropertyChangeEvent evt) { 231 232 233 } 235 private void jTextFieldReportFileNameActionPerformed(java.awt.event.ActionEvent evt) { 237 238 firstStep.updateButtons(); 239 240 241 } 243 244 private javax.swing.ButtonGroup buttonGroup1; 246 private javax.swing.JButton jButtonBrowse; 247 private javax.swing.JLabel jLabel1; 248 private javax.swing.JPanel jPanel1; 249 private javax.swing.JPanel jPanel2; 250 private javax.swing.JRadioButton jRadioButton1; 251 private javax.swing.JRadioButton jRadioButton2; 252 private javax.swing.JTextField jTextFieldReportFileName; 253 255 256 public String [] getStepsNames() { 257 258 String [] names = new String [1]; 259 names[0] = "Report selection"; 260 261 return names; 262 } 263 264 public String getStepDescription(int step) { 265 266 if (step==0) return "New or exsisting report..."; 267 return ""; 268 } 269 270 public void initWizard() { 271 272 jLabel1.setVisible(!(MainFrame.getMainInstance().getActiveReportFrame().getReport().getFilename() != null && 273 MainFrame.getMainInstance().getActiveReportFrame().getReport().getFilename().trim().length() > 0)); 274 } 275 276 public void finish(int currentStep) { 277 278 if (currentStep == -1) 279 { 280 wizardDialog.setVisible(false); 281 wizardDialog.dispose(); 282 } 283 } 284 285 public boolean nextStep(int nextStep) { 286 287 if (nextStep == 1) { 289 if (jRadioButton1.isSelected()) 290 { 291 SubreportWizardNewReport wizard2 = new SubreportWizardNewReport(); 293 wizard2.setSubReportElement(getSubReportElement()); 294 wizard2.setReportFileName( jTextFieldReportFileName.getText()); 295 wizard2.setWizardPanel( firstStep ); 296 wizard2.setWizardDialog( wizardDialog); 297 firstStep.setGenericWizard( wizard2 ); 298 } 299 else 300 { 301 SubreportWizardExistingReport wizard2 = new SubreportWizardExistingReport(); 303 wizard2.setSubReportElement(getSubReportElement()); 304 wizard2.setReportFileName( jTextFieldReportFileName.getText()); 305 wizard2.setWizardPanel( firstStep ); 306 wizard2.setWizardDialog( wizardDialog); 307 firstStep.setGenericWizard( wizard2 ); 308 } 309 return false; 310 } 311 return true; 312 } 313 314 public boolean previousStep(int previousStep) { 315 return true; 316 } 317 318 public boolean canFinish(int currentStep) { 319 return false; 320 } 321 322 public boolean canNext(int currentStep) { 323 324 if (jRadioButton1.isSelected() && 325 MainFrame.getMainInstance().getActiveReportFrame().getReport().getFilename() != null && 326 MainFrame.getMainInstance().getActiveReportFrame().getReport().getFilename().trim().length() > 0) 327 { 328 return true; 329 } 330 if (jTextFieldReportFileName.getText().trim().length() > 0) return true; 331 332 return false; 333 } 334 335 public boolean canPrevious(int currentStep) { 336 return false; 337 } 338 339 public JPanel getStepPanel(int step) { 340 return jPanel1; 341 } 342 343 public String getReportFileName() { 344 return reportFileName; 345 } 346 347 public void setReportFileName(String reportFileName) { 348 this.reportFileName = reportFileName; 349 } 350 351 public SubReportElement getSubReportElement() { 352 return subReportElement; 353 } 354 355 public void setSubReportElement(SubReportElement subReportElement) { 356 this.subReportElement = subReportElement; 357 } 358 359 public JReportFrame getJReportFrame() { 360 return jReportFrame; 361 } 362 363 public void setJReportFrame(JReportFrame jReportFrame) { 364 this.jReportFrame = jReportFrame; 365 } 366 367 public void applyI18n(){ 368 jRadioButton1.setText(I18n.getString("subreportWizard.radioButton1","Create a new report")); 370 jRadioButton2.setText(I18n.getString("subreportWizard.radioButton2","Use an exsisting report")); 371 jButtonBrowse.setText(I18n.getString("subreportWizard.buttonBrowse","Browse")); 374 jLabel1.setText(I18n.getString("subreportWizard.label1","Save the current report first!")); 375 } 377 } 378 | Popular Tags |