1 6 7 package com.jaspersoft.jasperserver.irplugin.gui.wizard; 8 9 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor; 10 import com.jaspersoft.jasperserver.irplugin.JServer; 11 import com.jaspersoft.jasperserver.irplugin.gui.DataSourceDialog; 12 import com.jaspersoft.jasperserver.irplugin.gui.RepositoryExplorer; 13 import com.jaspersoft.jasperserver.irplugin.gui.explorer.ResourceChooser; 14 import it.businesslogic.ireport.Report; 15 import it.businesslogic.ireport.gui.MainFrame; 16 import it.businesslogic.ireport.gui.wizard.BaseWizardPanel; 17 import it.businesslogic.ireport.gui.wizard.GenericWizard; 18 import it.businesslogic.ireport.util.Misc; 19 import java.io.File ; 20 import java.util.List ; 21 import javax.swing.JDialog ; 22 import javax.swing.JOptionPane ; 23 import javax.swing.JPanel ; 24 25 29 public class NewReportUnitWizard extends javax.swing.JPanel implements GenericWizard { 30 31 private String reportFileName = null; 32 private BaseWizardPanel wizardPanel = null; 33 private javax.swing.JDialog wizardDialog = null; 34 35 private JServer server = null; 36 private String parentFolder = null; 37 38 private ResourceDescriptor newResourceDescriptor = null; 39 private ResourceDescriptor dataSourceDescriptor = null; 40 41 42 43 public NewReportUnitWizard() { 44 initComponents(); 45 46 this.jTextFieldLabel.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 47 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 48 if (wizardPanel != null) wizardPanel.updateButtons(); 49 } 50 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 51 if (wizardPanel != null) wizardPanel.updateButtons(); 52 } 53 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 54 if (wizardPanel != null) wizardPanel.updateButtons(); 55 } 56 }); 57 58 this.jTextFieldName.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 59 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 60 if (wizardPanel != null) wizardPanel.updateButtons(); 61 } 62 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 63 if (wizardPanel != null) wizardPanel.updateButtons(); 64 } 65 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 66 if (wizardPanel != null) wizardPanel.updateButtons(); 67 } 68 }); 69 70 this.jTextFieldFile.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 71 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 72 if (wizardPanel != null) wizardPanel.updateButtons(); 73 } 74 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 75 if (wizardPanel != null) wizardPanel.updateButtons(); 76 } 77 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 78 if (wizardPanel != null) wizardPanel.updateButtons(); 79 } 80 }); 81 82 95 96 if (MainFrame.getMainInstance().getActiveReportFrame() == null) 97 { 98 jButtonGetCurrentReport.setEnabled(false); 99 } 100 } 101 102 public void startWizard() 103 { 104 wizardDialog = new JDialog (MainFrame.getMainInstance(),true); 105 wizardPanel = new BaseWizardPanel(); 106 wizardPanel.setGenericWizard(this); 107 wizardDialog.getContentPane().add(wizardPanel); 108 wizardDialog.pack(); 109 jTextFieldName.requestFocusInWindow(); 110 Misc.centerFrame(wizardDialog); 111 112 wizardDialog.setVisible(true); 113 } 114 115 120 private void initComponents() { 122 java.awt.GridBagConstraints gridBagConstraints; 123 124 jPanel0 = new javax.swing.JPanel (); 125 jLabelUriString = new javax.swing.JLabel (); 126 jTextFieldUriString = new javax.swing.JTextField (); 127 jLabelName = new javax.swing.JLabel (); 128 jTextFieldName = new javax.swing.JTextField (); 129 jSeparator2 = new javax.swing.JSeparator (); 130 jLabelLabel = new javax.swing.JLabel (); 131 jTextFieldLabel = new javax.swing.JTextField (); 132 jLabelDescription = new javax.swing.JLabel (); 133 jScrollPane1 = new javax.swing.JScrollPane (); 134 jEditorPaneDescription = new javax.swing.JEditorPane (); 135 jPanel1 = new javax.swing.JPanel (); 136 jLabelResourceFile = new javax.swing.JLabel (); 137 jRadioButtonRepo1 = new javax.swing.JRadioButton (); 138 jTextFieldFileRepo = new javax.swing.JTextField (); 139 jButtonPickJrxml = new javax.swing.JButton (); 140 jRadioButtonLocal1 = new javax.swing.JRadioButton (); 141 jTextFieldFile = new javax.swing.JTextField (); 142 jButtonBrowse = new javax.swing.JButton (); 143 jButtonGetCurrentReport = new javax.swing.JButton (); 144 jPanel2 = new javax.swing.JPanel (); 145 jLabelResourceFile1 = new javax.swing.JLabel (); 146 jRadioButtonRepo = new javax.swing.JRadioButton (); 147 jComboBoxDatasources = new javax.swing.JComboBox (); 148 jButtonPickResource = new javax.swing.JButton (); 149 jRadioButtonLocal = new javax.swing.JRadioButton (); 150 jButtonEditLocalDataSource = new javax.swing.JButton (); 151 buttonGroup1 = new javax.swing.ButtonGroup (); 152 buttonGroup2 = new javax.swing.ButtonGroup (); 153 154 jPanel0.setLayout(new java.awt.GridBagLayout ()); 155 156 jPanel0.addPropertyChangeListener(new java.beans.PropertyChangeListener () { 157 public void propertyChange(java.beans.PropertyChangeEvent evt) { 158 jPanel0PropertyChange(evt); 159 } 160 }); 161 162 jLabelUriString.setText("Parent folder"); 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridx = 0; 165 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 166 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 167 jPanel0.add(jLabelUriString, gridBagConstraints); 168 169 jTextFieldUriString.setEditable(false); 170 jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 171 jTextFieldUriString.setOpaque(false); 172 gridBagConstraints = new java.awt.GridBagConstraints (); 173 gridBagConstraints.gridx = 1; 174 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 175 gridBagConstraints.weightx = 1.0; 176 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 177 jPanel0.add(jTextFieldUriString, gridBagConstraints); 178 179 jLabelName.setText("Name"); 180 gridBagConstraints = new java.awt.GridBagConstraints (); 181 gridBagConstraints.gridx = 0; 182 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 183 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 184 jPanel0.add(jLabelName, gridBagConstraints); 185 186 gridBagConstraints = new java.awt.GridBagConstraints (); 187 gridBagConstraints.gridx = 1; 188 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 189 gridBagConstraints.weightx = 1.0; 190 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 191 jPanel0.add(jTextFieldName, gridBagConstraints); 192 193 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 194 gridBagConstraints = new java.awt.GridBagConstraints (); 195 gridBagConstraints.gridx = 0; 196 gridBagConstraints.gridwidth = 2; 197 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 198 gridBagConstraints.weightx = 1.0; 199 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 200 jPanel0.add(jSeparator2, gridBagConstraints); 201 202 jLabelLabel.setText("Label"); 203 gridBagConstraints = new java.awt.GridBagConstraints (); 204 gridBagConstraints.gridx = 0; 205 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 206 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 207 jPanel0.add(jLabelLabel, gridBagConstraints); 208 209 gridBagConstraints = new java.awt.GridBagConstraints (); 210 gridBagConstraints.gridx = 1; 211 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 212 gridBagConstraints.weightx = 1.0; 213 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 214 jPanel0.add(jTextFieldLabel, gridBagConstraints); 215 216 jLabelDescription.setText("Description"); 217 gridBagConstraints = new java.awt.GridBagConstraints (); 218 gridBagConstraints.gridx = 0; 219 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 220 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 221 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 222 jPanel0.add(jLabelDescription, gridBagConstraints); 223 224 jScrollPane1.setViewportView(jEditorPaneDescription); 225 226 gridBagConstraints = new java.awt.GridBagConstraints (); 227 gridBagConstraints.gridx = 1; 228 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 229 gridBagConstraints.weightx = 1.0; 230 gridBagConstraints.weighty = 1.0; 231 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 232 jPanel0.add(jScrollPane1, gridBagConstraints); 233 234 jPanel1.setLayout(new java.awt.GridBagLayout ()); 235 236 jLabelResourceFile.setText("Locate the main JRXML file"); 237 gridBagConstraints = new java.awt.GridBagConstraints (); 238 gridBagConstraints.gridx = 0; 239 gridBagConstraints.gridwidth = 4; 240 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 241 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 242 gridBagConstraints.insets = new java.awt.Insets (8, 4, 20, 4); 243 jPanel1.add(jLabelResourceFile, gridBagConstraints); 244 245 buttonGroup1.add(jRadioButtonRepo1); 246 jRadioButtonRepo1.setText("From the repository"); 247 jRadioButtonRepo1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 248 jRadioButtonRepo1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 249 jRadioButtonRepo1.addActionListener(new java.awt.event.ActionListener () { 250 public void actionPerformed(java.awt.event.ActionEvent evt) { 251 jRadioButtonRepo1jRadioButtonRepoActionPerformed1(evt); 252 } 253 }); 254 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridx = 0; 257 gridBagConstraints.gridwidth = 2; 258 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 259 gridBagConstraints.weightx = 1.0; 260 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 261 jPanel1.add(jRadioButtonRepo1, gridBagConstraints); 262 263 jTextFieldFileRepo.setEnabled(false); 264 gridBagConstraints = new java.awt.GridBagConstraints (); 265 gridBagConstraints.gridx = 0; 266 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 267 gridBagConstraints.weightx = 1.0; 268 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 0); 269 jPanel1.add(jTextFieldFileRepo, gridBagConstraints); 270 271 jButtonPickJrxml.setText("Browse"); 272 jButtonPickJrxml.setEnabled(false); 273 jButtonPickJrxml.setMinimumSize(new java.awt.Dimension (73, 21)); 274 jButtonPickJrxml.addActionListener(new java.awt.event.ActionListener () { 275 public void actionPerformed(java.awt.event.ActionEvent evt) { 276 jButtonPickJrxmljButton1ActionPerformed12(evt); 277 } 278 }); 279 280 gridBagConstraints = new java.awt.GridBagConstraints (); 281 gridBagConstraints.gridy = 2; 282 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 30); 283 jPanel1.add(jButtonPickJrxml, gridBagConstraints); 284 285 buttonGroup1.add(jRadioButtonLocal1); 286 jRadioButtonLocal1.setSelected(true); 287 jRadioButtonLocal1.setText("Locally Defined"); 288 jRadioButtonLocal1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 289 jRadioButtonLocal1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 290 jRadioButtonLocal1.addActionListener(new java.awt.event.ActionListener () { 291 public void actionPerformed(java.awt.event.ActionEvent evt) { 292 jRadioButtonLocal1jRadioButtonLocalActionPerformed1(evt); 293 } 294 }); 295 296 gridBagConstraints = new java.awt.GridBagConstraints (); 297 gridBagConstraints.gridx = 0; 298 gridBagConstraints.gridwidth = 2; 299 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 300 gridBagConstraints.weightx = 1.0; 301 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 302 jPanel1.add(jRadioButtonLocal1, gridBagConstraints); 303 304 gridBagConstraints = new java.awt.GridBagConstraints (); 305 gridBagConstraints.gridx = 0; 306 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 307 gridBagConstraints.weightx = 1.0; 308 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 0); 309 jPanel1.add(jTextFieldFile, gridBagConstraints); 310 311 jButtonBrowse.setText("Browse"); 312 jButtonBrowse.setMinimumSize(new java.awt.Dimension (73, 21)); 313 jButtonBrowse.addActionListener(new java.awt.event.ActionListener () { 314 public void actionPerformed(java.awt.event.ActionEvent evt) { 315 jButtonBrowseActionPerformed1(evt); 316 } 317 }); 318 319 gridBagConstraints = new java.awt.GridBagConstraints (); 320 gridBagConstraints.gridy = 4; 321 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 30); 322 jPanel1.add(jButtonBrowse, gridBagConstraints); 323 324 jButtonGetCurrentReport.setText("Get source from current opened report"); 325 jButtonGetCurrentReport.setMinimumSize(new java.awt.Dimension (73, 21)); 326 jButtonGetCurrentReport.setPreferredSize(new java.awt.Dimension (219, 21)); 327 jButtonGetCurrentReport.addActionListener(new java.awt.event.ActionListener () { 328 public void actionPerformed(java.awt.event.ActionEvent evt) { 329 jButtonGetCurrentReportjButton1ActionPerformed11(evt); 330 } 331 }); 332 333 gridBagConstraints = new java.awt.GridBagConstraints (); 334 gridBagConstraints.gridx = 0; 335 gridBagConstraints.gridy = 5; 336 gridBagConstraints.gridwidth = 2; 337 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 338 gridBagConstraints.insets = new java.awt.Insets (2, 30, 2, 4); 339 jPanel1.add(jButtonGetCurrentReport, gridBagConstraints); 340 341 jPanel2.setLayout(new java.awt.GridBagLayout ()); 342 343 jLabelResourceFile1.setText("Locate the Data Source"); 344 gridBagConstraints = new java.awt.GridBagConstraints (); 345 gridBagConstraints.gridx = 0; 346 gridBagConstraints.gridwidth = 4; 347 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 348 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 349 gridBagConstraints.insets = new java.awt.Insets (8, 4, 20, 4); 350 jPanel2.add(jLabelResourceFile1, gridBagConstraints); 351 352 buttonGroup2.add(jRadioButtonRepo); 353 jRadioButtonRepo.setText("From the repository"); 354 jRadioButtonRepo.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 355 jRadioButtonRepo.setMargin(new java.awt.Insets (0, 0, 0, 0)); 356 jRadioButtonRepo.addActionListener(new java.awt.event.ActionListener () { 357 public void actionPerformed(java.awt.event.ActionEvent evt) { 358 jRadioButtonRepo1jRadioButtonRepoActionPerformed11(evt); 359 } 360 }); 361 362 gridBagConstraints = new java.awt.GridBagConstraints (); 363 gridBagConstraints.gridx = 0; 364 gridBagConstraints.gridwidth = 2; 365 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 366 gridBagConstraints.weightx = 1.0; 367 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 368 jPanel2.add(jRadioButtonRepo, gridBagConstraints); 369 370 jComboBoxDatasources.setEditable(true); 371 jComboBoxDatasources.setEnabled(false); 372 gridBagConstraints = new java.awt.GridBagConstraints (); 373 gridBagConstraints.gridx = 0; 374 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 375 gridBagConstraints.weightx = 1.0; 376 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 2); 377 jPanel2.add(jComboBoxDatasources, gridBagConstraints); 378 379 jButtonPickResource.setText("Browse"); 380 jButtonPickResource.setEnabled(false); 381 jButtonPickResource.setMinimumSize(new java.awt.Dimension (73, 21)); 382 jButtonPickResource.addActionListener(new java.awt.event.ActionListener () { 383 public void actionPerformed(java.awt.event.ActionEvent evt) { 384 jButtonPickJrxmljButton1ActionPerformed121(evt); 385 } 386 }); 387 388 gridBagConstraints = new java.awt.GridBagConstraints (); 389 gridBagConstraints.gridy = 2; 390 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 30); 391 jPanel2.add(jButtonPickResource, gridBagConstraints); 392 393 buttonGroup2.add(jRadioButtonLocal); 394 jRadioButtonLocal.setSelected(true); 395 jRadioButtonLocal.setText("Locally Defined"); 396 jRadioButtonLocal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 397 jRadioButtonLocal.setMargin(new java.awt.Insets (0, 0, 0, 0)); 398 jRadioButtonLocal.addActionListener(new java.awt.event.ActionListener () { 399 public void actionPerformed(java.awt.event.ActionEvent evt) { 400 jRadioButtonLocal1jRadioButtonLocalActionPerformed11(evt); 401 } 402 }); 403 404 gridBagConstraints = new java.awt.GridBagConstraints (); 405 gridBagConstraints.gridx = 0; 406 gridBagConstraints.gridwidth = 2; 407 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 408 gridBagConstraints.weightx = 1.0; 409 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 410 jPanel2.add(jRadioButtonLocal, gridBagConstraints); 411 412 jButtonEditLocalDataSource.setText("Edit local datasource"); 413 jButtonEditLocalDataSource.addActionListener(new java.awt.event.ActionListener () { 414 public void actionPerformed(java.awt.event.ActionEvent evt) { 415 jButtonEditLocalDataSourceActionPerformed(evt); 416 } 417 }); 418 419 gridBagConstraints = new java.awt.GridBagConstraints (); 420 gridBagConstraints.gridx = 0; 421 gridBagConstraints.gridwidth = 2; 422 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 423 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 0); 424 jPanel2.add(jButtonEditLocalDataSource, gridBagConstraints); 425 426 setLayout(new java.awt.BorderLayout ()); 427 428 } 430 private void jButtonEditLocalDataSourceActionPerformed(java.awt.event.ActionEvent evt) { DataSourceDialog dtd = new DataSourceDialog(MainFrame.getMainInstance(),true); 432 dtd.setServer(this.getServer()); 433 dtd.setParentFolder( this.getParentFolder() + "/<dataSource>"); 434 dtd.setDoNotStore(true); 435 if (dataSourceDescriptor != null) { 436 dtd.setResource(dataSourceDescriptor); 437 } 438 439 dtd.setVisible(true); 440 441 if (dtd.getDialogResult() == JOptionPane.OK_OPTION) { 442 dataSourceDescriptor = dtd.getNewResourceDescriptor(); 443 } 444 } 446 private void jRadioButtonLocal1jRadioButtonLocalActionPerformed11(java.awt.event.ActionEvent evt) { updateResourceFromType(); 448 } 450 private void jButtonPickJrxmljButton1ActionPerformed121(java.awt.event.ActionEvent evt) { ResourceChooser rc = new ResourceChooser(); 452 rc.setServer( getServer() ); 453 if (rc.showDialog(this, null) == JOptionPane.OK_OPTION) { 454 ResourceDescriptor rd = rc.getSelectedDescriptor(); 455 456 if (!RepositoryExplorer.isDataSource( rd )) 457 { 458 JOptionPane.showMessageDialog(MainFrame.getMainInstance(),"Please choose a DataSource resource","",JOptionPane.WARNING_MESSAGE); 459 return; 460 } 461 462 if (rd == null || rd.getUriString() == null) { 463 jComboBoxDatasources.setSelectedItem(""); 464 } else { 465 jComboBoxDatasources.setSelectedItem( rd.getUriString() ); 466 } 467 if (wizardPanel != null) wizardPanel.updateButtons(); 468 } 469 } 471 private void jRadioButtonRepo1jRadioButtonRepoActionPerformed11(java.awt.event.ActionEvent evt) { updateResourceFromType(); 473 } 475 private void jButtonGetCurrentReportjButton1ActionPerformed11(java.awt.event.ActionEvent evt) { 477 Report report = MainFrame.getMainInstance().getActiveReportFrame().getReport(); 478 if (report.getFilename() == null) { 479 if (JOptionPane.showConfirmDialog(this,"Save the report now?") == JOptionPane.OK_OPTION) { 480 MainFrame.getMainInstance().save( MainFrame.getMainInstance().getActiveReportFrame() ); 481 } else { 482 return; 483 } 484 } 485 jTextFieldFile.setText( report.getFilename() ); 486 } 488 private void jButtonBrowseActionPerformed1(java.awt.event.ActionEvent evt) { String fileName = ""; 490 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser (MainFrame.getMainInstance().getCurrentDirectory()); 491 492 jfc.setDialogTitle("Pick a file...."); 493 494 jfc.setFileFilter( new javax.swing.filechooser.FileFilter () { 495 public boolean accept(java.io.File file) { 496 String filename = file.getName(); 497 return (filename.toLowerCase().endsWith(".xml") || file.isDirectory() || filename.toLowerCase().endsWith(".jrxml")) ; 498 } 499 public String getDescription() { 500 return "JasperReports XML *.xml, *.jrxml"; 501 } 502 }); 503 504 jfc.setMultiSelectionEnabled(false); 505 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 506 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 507 508 jTextFieldFile.setText( jfc.getSelectedFile()+""); 509 if (wizardPanel != null) wizardPanel.updateButtons(); 510 } 511 } 513 private void jRadioButtonLocal1jRadioButtonLocalActionPerformed1(java.awt.event.ActionEvent evt) { updateJrxmlFromType(); 515 } 517 private void jButtonPickJrxmljButton1ActionPerformed12(java.awt.event.ActionEvent evt) { ResourceChooser rc = new ResourceChooser(); 519 rc.setServer( getServer() ); 520 if (rc.showDialog(this, null) == JOptionPane.OK_OPTION) { 521 ResourceDescriptor rd = rc.getSelectedDescriptor(); 522 523 if (rd == null || rd.getUriString() == null) { 524 jTextFieldFileRepo.setText(""); 525 } else { 526 if (!rd.getWsType().equals(rd.TYPE_JRXML) ) { 527 JOptionPane.showMessageDialog(MainFrame.getMainInstance(),"Please choose a JRXML resource","",JOptionPane.WARNING_MESSAGE); 528 return; 529 } else { 530 jTextFieldFileRepo.setText( rd.getUriString() ); 531 } 532 } 533 } 534 } 536 private void jRadioButtonRepo1jRadioButtonRepoActionPerformed1(java.awt.event.ActionEvent evt) { updateJrxmlFromType(); 538 } 540 private void jPanel0PropertyChange(java.beans.PropertyChangeEvent evt) { 542 543 544 } 546 547 private javax.swing.ButtonGroup buttonGroup1; 549 private javax.swing.ButtonGroup buttonGroup2; 550 private javax.swing.JButton jButtonBrowse; 551 private javax.swing.JButton jButtonEditLocalDataSource; 552 private javax.swing.JButton jButtonGetCurrentReport; 553 private javax.swing.JButton jButtonPickJrxml; 554 private javax.swing.JButton jButtonPickResource; 555 private javax.swing.JComboBox jComboBoxDatasources; 556 private javax.swing.JEditorPane jEditorPaneDescription; 557 private javax.swing.JLabel jLabelDescription; 558 private javax.swing.JLabel jLabelLabel; 559 private javax.swing.JLabel jLabelName; 560 private javax.swing.JLabel jLabelResourceFile; 561 private javax.swing.JLabel jLabelResourceFile1; 562 private javax.swing.JLabel jLabelUriString; 563 private javax.swing.JPanel jPanel0; 564 private javax.swing.JPanel jPanel1; 565 private javax.swing.JPanel jPanel2; 566 private javax.swing.JRadioButton jRadioButtonLocal; 567 private javax.swing.JRadioButton jRadioButtonLocal1; 568 private javax.swing.JRadioButton jRadioButtonRepo; 569 private javax.swing.JRadioButton jRadioButtonRepo1; 570 private javax.swing.JScrollPane jScrollPane1; 571 private javax.swing.JSeparator jSeparator2; 572 private javax.swing.JTextField jTextFieldFile; 573 private javax.swing.JTextField jTextFieldFileRepo; 574 private javax.swing.JTextField jTextFieldLabel; 575 private javax.swing.JTextField jTextFieldName; 576 private javax.swing.JTextField jTextFieldUriString; 577 579 580 public String [] getStepsNames() { 581 582 String [] names = new String [3]; 583 names[0] = "Naming"; 584 names[1] = "Main JRXML"; 585 names[2] = "Locate Data Source"; 586 589 return names; 590 } 591 592 public String getStepDescription(int step) { 593 594 if (step==0) return "Report name and label"; 595 if (step==1) return "The main JRXML source file"; 596 if (step==2) return "Locate the datasource to use with this report"; 597 if (step==3) return "Add input controls and other resources"; 598 if (step==4) return "Save"; 599 600 return ""; 601 } 602 603 public void initWizard() { 604 605 } 606 607 public void finish(int currentStep) { 608 609 if (currentStep > 0) 610 { 611 ResourceDescriptor rd = new ResourceDescriptor(); 612 613 File resourceFile = null; 614 615 rd.setWsType( ResourceDescriptor.TYPE_REPORTUNIT ); 616 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 618 String uri = getParentFolder(); 619 if (!uri.endsWith("/")) uri = uri + "/"; 620 uri += jTextFieldName.getText(); 621 rd.setUriString( uri ); 622 rd.setLabel(jTextFieldLabel.getText().trim() ); rd.setParentFolder( getParentFolder() ); 624 rd.setIsNew( true ); 625 626 ResourceDescriptor tmpDataSourceDescriptor; 628 if (jRadioButtonRepo.isSelected()) 629 { 630 tmpDataSourceDescriptor = new ResourceDescriptor(); 631 tmpDataSourceDescriptor.setWsType( ResourceDescriptor.TYPE_DATASOURCE ); 632 tmpDataSourceDescriptor.setReferenceUri( jComboBoxDatasources.getSelectedItem()+""); 633 tmpDataSourceDescriptor.setIsReference(true); 634 } 635 else 636 { 637 if (dataSourceDescriptor == null) 638 { 639 JOptionPane.showMessageDialog(this,"The local datasource is not correctly defined.\nPress the button \"Edit local datasource\" to fix the problem."); 640 return; 641 } 642 tmpDataSourceDescriptor = dataSourceDescriptor; 643 tmpDataSourceDescriptor.setIsReference(false); 644 } 645 646 647 rd.getChildren().add( tmpDataSourceDescriptor ); 648 649 ResourceDescriptor jrxmlDescriptor = new ResourceDescriptor(); 651 jrxmlDescriptor.setWsType( ResourceDescriptor.TYPE_JRXML ); 652 653 if (jRadioButtonRepo1.isSelected()) 654 { 655 jrxmlDescriptor.setIsNew(true); 656 jrxmlDescriptor.setMainReport(true); 657 jrxmlDescriptor.setIsReference(true); 658 jrxmlDescriptor.setReferenceUri( jTextFieldFileRepo.getText() ); 659 rd.getChildren().add( jrxmlDescriptor ); 660 } 661 else 662 { 663 jrxmlDescriptor.setName( jTextFieldName.getText() + "_jrxml"); 664 jrxmlDescriptor.setLabel("Main jrxml"); jrxmlDescriptor.setDescription("Main jrxml"); jrxmlDescriptor.setIsNew(true); 667 jrxmlDescriptor.setHasData(true); 668 jrxmlDescriptor.setMainReport(true); 669 resourceFile = new File ( jTextFieldFile.getText()); 670 671 if (!resourceFile.exists()) { 672 JOptionPane.showMessageDialog(this, jTextFieldFile.getText() + "\n\nFile not found!"); 673 return; 674 } 675 rd.getChildren().add( jrxmlDescriptor ); 676 } 677 678 try { 679 newResourceDescriptor = getServer().getWSClient().addOrModifyResource(rd, resourceFile); 680 681 } catch (Exception ex) { 682 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 683 ex.printStackTrace(); 684 return; 685 } 686 } 687 688 this.getWizardDialog().setVisible(false); 689 this.getWizardDialog().dispose(); 690 } 691 692 public boolean nextStep(int nextStep) { 693 694 if (nextStep == 0) { 696 } 697 else if (nextStep == 1) { 699 700 } 701 else if (nextStep == 2) { 703 704 } 705 return true; 706 } 707 708 public boolean previousStep(int previousStep) { 709 return true; 710 } 711 712 public boolean canFinish(int currentStep) { 713 if (currentStep < 2) return false; 714 if (currentStep == 2 ) 715 { 716 if (jRadioButtonRepo.isSelected() && jComboBoxDatasources.getSelectedItem() != null 717 && jComboBoxDatasources.getSelectedItem().toString().trim().length() > 0) return true; 718 if (jRadioButtonLocal.isSelected() && dataSourceDescriptor != null) return true; 719 } 720 return true; 721 } 722 723 public boolean canNext(int currentStep) { 724 725 if (currentStep == 0) 726 { 727 if (jTextFieldName.getText().trim().length() > 0 && 728 jTextFieldLabel.getText().trim().length() > 0) 729 return true; 730 } 731 else if (currentStep == 1) 732 { 733 if (jRadioButtonRepo1.isSelected() && jTextFieldFileRepo.getText().trim().length() > 0) return true; 734 if (jRadioButtonLocal1.isSelected() && jTextFieldFile.getText().trim().length() > 0) return true; 735 } 736 else if (currentStep == 2) 737 { 738 return false; 739 740 } 741 return false; 742 } 743 744 public boolean canPrevious(int currentStep) { 745 return (currentStep > 0); 746 } 747 748 public JPanel getStepPanel(int step) { 749 if (step == 0) return jPanel0; 750 if (step == 1) return jPanel1; 751 if (step == 2) return jPanel2; 752 return null; 754 } 755 756 public BaseWizardPanel getWizardPanel() { 757 return wizardPanel; 758 } 759 760 public void setWizardPanel(BaseWizardPanel wizardPanel) { 761 this.wizardPanel = wizardPanel; 762 } 763 764 public javax.swing.JDialog getWizardDialog() { 765 return wizardDialog; 766 } 767 768 public void setWizardDialog(javax.swing.JDialog wizardDialog) { 769 this.wizardDialog = wizardDialog; 770 } 771 772 public JServer getServer() { 773 return server; 774 } 775 776 public void setServer(JServer server) { 777 this.server = server; 778 } 779 780 public String getParentFolder() { 781 return parentFolder; 782 } 783 784 public void setParentFolder(String parentFolder) { 785 this.parentFolder = parentFolder; 786 } 787 788 789 public void updateJrxmlFromType() 790 { 791 jTextFieldFileRepo.setEnabled( jRadioButtonRepo1.isSelected() ); 792 jButtonPickJrxml.setEnabled( jRadioButtonRepo1.isSelected() ); 793 jTextFieldFile.setEnabled( jRadioButtonLocal1.isSelected() ); 794 jButtonBrowse.setEnabled( jRadioButtonLocal1.isSelected() ); 795 jButtonGetCurrentReport.setEnabled( jRadioButtonLocal1.isSelected() ); 796 797 if (wizardPanel != null) wizardPanel.updateButtons(); 798 } 799 800 public void updateResourceFromType() 801 { 802 jComboBoxDatasources.setEnabled( jRadioButtonRepo.isSelected() ); 803 jButtonPickResource.setEnabled( jRadioButtonRepo.isSelected() ); 804 jButtonEditLocalDataSource.setEnabled( jRadioButtonLocal.isSelected() ); 805 806 if (wizardPanel != null) wizardPanel.updateButtons(); 807 } 808 809 812 public void setDatasources(List datasources) 813 { 814 jComboBoxDatasources.removeAllItems(); 815 for (int i=0; i<datasources.size(); ++i) 816 { 817 Object datasource = datasources.get(i); 818 if (datasource instanceof java.lang.String ) 819 { 820 jComboBoxDatasources.addItem(datasource); 821 } 822 else if (datasource instanceof ResourceDescriptor) 823 { 824 jComboBoxDatasources.addItem(((ResourceDescriptor)datasource).getUriString()); 825 } 826 } 827 828 if (jComboBoxDatasources.getItemCount() > 0) 829 { 830 jComboBoxDatasources.setSelectedIndex(0); 831 } 832 } 833 834 public ResourceDescriptor getNewResourceDescriptor() { 835 return newResourceDescriptor; 836 } 837 838 } 839 | Popular Tags |