1 6 7 package com.jaspersoft.jasperserver.irplugin.gui; 8 9 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor; 10 import com.jaspersoft.jasperserver.irplugin.RepositoryReportUnit; 11 import com.jaspersoft.jasperserver.irplugin.gui.explorer.ResourceChooser; 12 import it.businesslogic.ireport.Report; 13 import it.businesslogic.ireport.gui.MainFrame; 14 import it.businesslogic.ireport.gui.sheet.Tag; 15 import java.io.File ; 16 import java.util.List ; 17 import javax.swing.JOptionPane ; 18 import com.jaspersoft.jasperserver.irplugin.JServer; 19 20 24 public class ReportUnitDialog extends javax.swing.JDialog { 25 26 private int dialogResult = JOptionPane.CANCEL_OPTION; 27 28 private JServer server = null; 29 private String parentFolder = null; 30 31 private ResourceDescriptor newResourceDescriptor = null; 32 private ResourceDescriptor dataSourceDescriptor = null; 33 private RepositoryReportUnit resource = null; 34 35 private boolean controlsSupportActive = false; 36 private boolean resourcesSupportActive = false; 37 38 39 40 43 public ReportUnitDialog(java.awt.Frame parent, boolean modal) { 44 super(parent, modal); 45 initComponents(); 46 47 it.businesslogic.ireport.util.Misc.centerFrame(this); 48 this.jTextFieldLabel.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 49 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 50 updateSaveButton(); 51 } 52 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 53 updateSaveButton(); 54 } 55 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 56 updateSaveButton(); 57 } 58 }); 59 60 this.jTextFieldFile.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 61 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 62 updateSaveButton(); 63 } 64 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 65 updateSaveButton(); 66 } 67 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 68 updateSaveButton(); 69 } 70 }); 71 72 this.jTextFieldName.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 73 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 74 updateSaveButton(); 75 } 76 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 77 updateSaveButton(); 78 } 79 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 80 updateSaveButton(); 81 } 82 }); 83 84 jTextFieldName.requestFocusInWindow(); 85 jRadioButtonRepo.setSelected(true); 86 jRadioButtonLocal.setSelected(false); 87 88 this.setControlsSupportActive(false); 89 this.setResourcesSupportActive(false); 90 91 updateResourceFromType(); 92 93 jButtonGetCurrentReport.setEnabled(MainFrame.getMainInstance().getActiveReportFrame() != null); 94 95 } 96 97 98 private void updateSaveButton() 99 { 100 if (jTextFieldLabel.getText().length() > 0 && 101 jTextFieldName.getText().length() > 0) 102 { 103 jButtonSave.setEnabled(true); 104 } 105 else 106 { 107 jButtonSave.setEnabled(false); 108 } 109 } 110 111 116 private void initComponents() { 118 java.awt.GridBagConstraints gridBagConstraints; 119 120 buttonGroup1 = new javax.swing.ButtonGroup (); 121 buttonGroup2 = new javax.swing.ButtonGroup (); 122 jPanel1 = new javax.swing.JPanel (); 123 jLabel1 = new javax.swing.JLabel (); 124 jSeparator1 = new javax.swing.JSeparator (); 125 jTabbedPane1 = new javax.swing.JTabbedPane (); 126 jPanel2 = new javax.swing.JPanel (); 127 jLabelUriString = new javax.swing.JLabel (); 128 jTextFieldUriString = new javax.swing.JTextField (); 129 jLabelName = new javax.swing.JLabel (); 130 jTextFieldName = new javax.swing.JTextField (); 131 jSeparator2 = new javax.swing.JSeparator (); 132 jLabelLabel = new javax.swing.JLabel (); 133 jTextFieldLabel = new javax.swing.JTextField (); 134 jScrollPane1 = new javax.swing.JScrollPane (); 135 jEditorPaneDescription = new javax.swing.JEditorPane (); 136 jLabelDescription = new javax.swing.JLabel (); 137 jPanel5 = new javax.swing.JPanel (); 138 jLabelResourceFile = new javax.swing.JLabel (); 139 jRadioButtonRepo1 = new javax.swing.JRadioButton (); 140 jPanel6 = new javax.swing.JPanel (); 141 jTextFieldFileRepo = new javax.swing.JTextField (); 142 jButtonPickJrxml = new javax.swing.JButton (); 143 jRadioButtonLocal1 = new javax.swing.JRadioButton (); 144 jPanel8 = new javax.swing.JPanel (); 145 jTextFieldFile = new javax.swing.JTextField (); 146 jButtonBrowse = new javax.swing.JButton (); 147 jButtonGetCurrentReport = new javax.swing.JButton (); 148 jSeparator5 = new javax.swing.JSeparator (); 149 jLabelResourceType1 = new javax.swing.JLabel (); 150 jPanel3 = new javax.swing.JPanel (); 151 jRadioButtonRepo = new javax.swing.JRadioButton (); 152 jComboBoxDatasources = new javax.swing.JComboBox (); 153 jButtonPickResource = new javax.swing.JButton (); 154 jRadioButtonLocal = new javax.swing.JRadioButton (); 155 jButtonEditLocalDataSource = new javax.swing.JButton (); 156 jPanel9 = new javax.swing.JPanel (); 157 jPanelControls = new javax.swing.JPanel (); 158 jPanelresources = new javax.swing.JPanel (); 159 jSeparator4 = new javax.swing.JSeparator (); 160 jPanel4 = new javax.swing.JPanel (); 161 jButtonSave = new javax.swing.JButton (); 162 jButtonClose = new javax.swing.JButton (); 163 164 getContentPane().setLayout(new java.awt.GridBagLayout ()); 165 166 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 167 setTitle("Report unit"); 168 jPanel1.setLayout(new java.awt.GridBagLayout ()); 169 170 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 171 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 172 jLabel1.setIcon(new javax.swing.ImageIcon (getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/documents_label.png"))); 173 jLabel1.setText("Report unit"); 174 jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); 175 jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 176 gridBagConstraints = new java.awt.GridBagConstraints (); 177 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 178 gridBagConstraints.weightx = 1.0; 179 gridBagConstraints.weighty = 1.0; 180 jPanel1.add(jLabel1, gridBagConstraints); 181 182 gridBagConstraints = new java.awt.GridBagConstraints (); 183 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 184 getContentPane().add(jPanel1, gridBagConstraints); 185 186 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 187 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 188 gridBagConstraints = new java.awt.GridBagConstraints (); 189 gridBagConstraints.gridx = 0; 190 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 191 gridBagConstraints.weightx = 1.0; 192 getContentPane().add(jSeparator1, gridBagConstraints); 193 194 jPanel2.setLayout(new java.awt.GridBagLayout ()); 195 196 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 197 jLabelUriString.setText("Parent folder"); 198 gridBagConstraints = new java.awt.GridBagConstraints (); 199 gridBagConstraints.gridx = 0; 200 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 201 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 202 jPanel2.add(jLabelUriString, gridBagConstraints); 203 204 jTextFieldUriString.setEditable(false); 205 jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 206 jTextFieldUriString.setOpaque(false); 207 gridBagConstraints = new java.awt.GridBagConstraints (); 208 gridBagConstraints.gridx = 1; 209 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 210 gridBagConstraints.weightx = 1.0; 211 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 212 jPanel2.add(jTextFieldUriString, gridBagConstraints); 213 214 jLabelName.setText("Name"); 215 gridBagConstraints = new java.awt.GridBagConstraints (); 216 gridBagConstraints.gridx = 0; 217 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 218 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 219 jPanel2.add(jLabelName, gridBagConstraints); 220 221 gridBagConstraints = new java.awt.GridBagConstraints (); 222 gridBagConstraints.gridx = 1; 223 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 224 gridBagConstraints.weightx = 1.0; 225 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 226 jPanel2.add(jTextFieldName, gridBagConstraints); 227 228 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 229 gridBagConstraints = new java.awt.GridBagConstraints (); 230 gridBagConstraints.gridx = 0; 231 gridBagConstraints.gridwidth = 2; 232 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 233 gridBagConstraints.weightx = 1.0; 234 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 235 jPanel2.add(jSeparator2, gridBagConstraints); 236 237 jLabelLabel.setText("Label"); 238 gridBagConstraints = new java.awt.GridBagConstraints (); 239 gridBagConstraints.gridx = 0; 240 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 241 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 242 jPanel2.add(jLabelLabel, gridBagConstraints); 243 244 gridBagConstraints = new java.awt.GridBagConstraints (); 245 gridBagConstraints.gridx = 1; 246 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 247 gridBagConstraints.weightx = 1.0; 248 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 249 jPanel2.add(jTextFieldLabel, gridBagConstraints); 250 251 jScrollPane1.setViewportView(jEditorPaneDescription); 252 253 gridBagConstraints = new java.awt.GridBagConstraints (); 254 gridBagConstraints.gridx = 1; 255 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 256 gridBagConstraints.weightx = 1.0; 257 gridBagConstraints.weighty = 1.0; 258 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 259 jPanel2.add(jScrollPane1, gridBagConstraints); 260 261 jLabelDescription.setText("Description"); 262 gridBagConstraints = new java.awt.GridBagConstraints (); 263 gridBagConstraints.gridx = 0; 264 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 265 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 266 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 267 jPanel2.add(jLabelDescription, gridBagConstraints); 268 269 jTabbedPane1.addTab("Common", jPanel2); 270 271 jPanel5.setLayout(new java.awt.GridBagLayout ()); 272 273 jLabelResourceFile.setText("Main JRXML"); 274 gridBagConstraints = new java.awt.GridBagConstraints (); 275 gridBagConstraints.gridx = 0; 276 gridBagConstraints.gridwidth = 2; 277 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 278 gridBagConstraints.insets = new java.awt.Insets (8, 4, 0, 4); 279 jPanel5.add(jLabelResourceFile, gridBagConstraints); 280 281 buttonGroup2.add(jRadioButtonRepo1); 282 jRadioButtonRepo1.setText("From the repository"); 283 jRadioButtonRepo1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 284 jRadioButtonRepo1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 285 jRadioButtonRepo1.addActionListener(new java.awt.event.ActionListener () { 286 public void actionPerformed(java.awt.event.ActionEvent evt) { 287 jRadioButtonRepoActionPerformed1(evt); 288 } 289 }); 290 291 gridBagConstraints = new java.awt.GridBagConstraints (); 292 gridBagConstraints.gridx = 0; 293 gridBagConstraints.gridwidth = 2; 294 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 295 gridBagConstraints.weightx = 1.0; 296 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 297 jPanel5.add(jRadioButtonRepo1, gridBagConstraints); 298 299 jPanel6.setLayout(new java.awt.GridBagLayout ()); 300 301 jTextFieldFileRepo.setEnabled(false); 302 gridBagConstraints = new java.awt.GridBagConstraints (); 303 gridBagConstraints.gridx = 1; 304 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 305 gridBagConstraints.weightx = 1.0; 306 jPanel6.add(jTextFieldFileRepo, gridBagConstraints); 307 308 jButtonPickJrxml.setText("Browse"); 309 jButtonPickJrxml.setEnabled(false); 310 jButtonPickJrxml.setMinimumSize(new java.awt.Dimension (73, 21)); 311 jButtonPickJrxml.addActionListener(new java.awt.event.ActionListener () { 312 public void actionPerformed(java.awt.event.ActionEvent evt) { 313 jButton1ActionPerformed12(evt); 314 } 315 }); 316 317 jPanel6.add(jButtonPickJrxml, new java.awt.GridBagConstraints ()); 318 319 gridBagConstraints = new java.awt.GridBagConstraints (); 320 gridBagConstraints.gridx = 0; 321 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 322 gridBagConstraints.weightx = 1.0; 323 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 4); 324 jPanel5.add(jPanel6, gridBagConstraints); 325 326 buttonGroup2.add(jRadioButtonLocal1); 327 jRadioButtonLocal1.setSelected(true); 328 jRadioButtonLocal1.setText("Locally Defined"); 329 jRadioButtonLocal1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 330 jRadioButtonLocal1.setMargin(new java.awt.Insets (0, 0, 0, 0)); 331 jRadioButtonLocal1.addActionListener(new java.awt.event.ActionListener () { 332 public void actionPerformed(java.awt.event.ActionEvent evt) { 333 jRadioButtonLocalActionPerformed1(evt); 334 } 335 }); 336 337 gridBagConstraints = new java.awt.GridBagConstraints (); 338 gridBagConstraints.gridx = 0; 339 gridBagConstraints.gridwidth = 2; 340 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 341 gridBagConstraints.weightx = 1.0; 342 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 343 jPanel5.add(jRadioButtonLocal1, gridBagConstraints); 344 345 jPanel8.setLayout(new java.awt.GridBagLayout ()); 346 347 gridBagConstraints = new java.awt.GridBagConstraints (); 348 gridBagConstraints.gridx = 1; 349 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 350 gridBagConstraints.weightx = 1.0; 351 jPanel8.add(jTextFieldFile, gridBagConstraints); 352 353 jButtonBrowse.setText("Browse"); 354 jButtonBrowse.setMinimumSize(new java.awt.Dimension (73, 21)); 355 jButtonBrowse.addActionListener(new java.awt.event.ActionListener () { 356 public void actionPerformed(java.awt.event.ActionEvent evt) { 357 jButtonBrowseActionPerformed1(evt); 358 } 359 }); 360 361 jPanel8.add(jButtonBrowse, new java.awt.GridBagConstraints ()); 362 363 gridBagConstraints = new java.awt.GridBagConstraints (); 364 gridBagConstraints.gridx = 0; 365 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 366 gridBagConstraints.weightx = 1.0; 367 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 4); 368 jPanel5.add(jPanel8, gridBagConstraints); 369 370 jButtonGetCurrentReport.setText("Get source from current opened report"); 371 jButtonGetCurrentReport.setMinimumSize(new java.awt.Dimension (73, 21)); 372 jButtonGetCurrentReport.setPreferredSize(new java.awt.Dimension (219, 21)); 373 jButtonGetCurrentReport.addActionListener(new java.awt.event.ActionListener () { 374 public void actionPerformed(java.awt.event.ActionEvent evt) { 375 jButton1ActionPerformed11(evt); 376 } 377 }); 378 379 gridBagConstraints = new java.awt.GridBagConstraints (); 380 gridBagConstraints.gridx = 0; 381 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 382 gridBagConstraints.insets = new java.awt.Insets (2, 30, 2, 4); 383 jPanel5.add(jButtonGetCurrentReport, gridBagConstraints); 384 385 jSeparator5.setMinimumSize(new java.awt.Dimension (0, 2)); 386 gridBagConstraints = new java.awt.GridBagConstraints (); 387 gridBagConstraints.gridx = 0; 388 gridBagConstraints.gridwidth = 2; 389 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 390 gridBagConstraints.weightx = 1.0; 391 gridBagConstraints.insets = new java.awt.Insets (6, 4, 6, 4); 392 jPanel5.add(jSeparator5, gridBagConstraints); 393 394 jLabelResourceType1.setText("Datasource"); 395 gridBagConstraints = new java.awt.GridBagConstraints (); 396 gridBagConstraints.gridx = 0; 397 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 398 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 399 jPanel5.add(jLabelResourceType1, gridBagConstraints); 400 401 jPanel3.setLayout(new java.awt.GridBagLayout ()); 402 403 buttonGroup1.add(jRadioButtonRepo); 404 jRadioButtonRepo.setText("From the repository"); 405 jRadioButtonRepo.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 406 jRadioButtonRepo.setMargin(new java.awt.Insets (0, 0, 0, 0)); 407 jRadioButtonRepo.addActionListener(new java.awt.event.ActionListener () { 408 public void actionPerformed(java.awt.event.ActionEvent evt) { 409 jRadioButtonRepoActionPerformed(evt); 410 } 411 }); 412 413 gridBagConstraints = new java.awt.GridBagConstraints (); 414 gridBagConstraints.gridx = 0; 415 gridBagConstraints.gridwidth = 2; 416 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 417 gridBagConstraints.weightx = 1.0; 418 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 419 jPanel3.add(jRadioButtonRepo, gridBagConstraints); 420 421 jComboBoxDatasources.setEditable(true); 422 jComboBoxDatasources.setEnabled(false); 423 gridBagConstraints = new java.awt.GridBagConstraints (); 424 gridBagConstraints.gridx = 0; 425 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 426 gridBagConstraints.weightx = 1.0; 427 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 2); 428 jPanel3.add(jComboBoxDatasources, gridBagConstraints); 429 430 jButtonPickResource.setText("Browse"); 431 jButtonPickResource.setEnabled(false); 432 jButtonPickResource.addActionListener(new java.awt.event.ActionListener () { 433 public void actionPerformed(java.awt.event.ActionEvent evt) { 434 jButtonPickResourceActionPerformed(evt); 435 } 436 }); 437 438 gridBagConstraints = new java.awt.GridBagConstraints (); 439 gridBagConstraints.gridx = 1; 440 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 441 gridBagConstraints.insets = new java.awt.Insets (0, 0, 4, 8); 442 jPanel3.add(jButtonPickResource, gridBagConstraints); 443 444 buttonGroup1.add(jRadioButtonLocal); 445 jRadioButtonLocal.setSelected(true); 446 jRadioButtonLocal.setText("Locally Defined"); 447 jRadioButtonLocal.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 448 jRadioButtonLocal.setMargin(new java.awt.Insets (0, 0, 0, 0)); 449 jRadioButtonLocal.addActionListener(new java.awt.event.ActionListener () { 450 public void actionPerformed(java.awt.event.ActionEvent evt) { 451 jRadioButtonLocalActionPerformed(evt); 452 } 453 }); 454 455 gridBagConstraints = new java.awt.GridBagConstraints (); 456 gridBagConstraints.gridx = 0; 457 gridBagConstraints.gridwidth = 2; 458 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 459 gridBagConstraints.weightx = 1.0; 460 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 461 jPanel3.add(jRadioButtonLocal, gridBagConstraints); 462 463 jButtonEditLocalDataSource.setText("Edit local datasource"); 464 jButtonEditLocalDataSource.addActionListener(new java.awt.event.ActionListener () { 465 public void actionPerformed(java.awt.event.ActionEvent evt) { 466 jButtonEditLocalDataSourceActionPerformed(evt); 467 } 468 }); 469 470 gridBagConstraints = new java.awt.GridBagConstraints (); 471 gridBagConstraints.gridx = 0; 472 gridBagConstraints.gridwidth = 2; 473 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 474 gridBagConstraints.insets = new java.awt.Insets (0, 30, 0, 0); 475 jPanel3.add(jButtonEditLocalDataSource, gridBagConstraints); 476 477 gridBagConstraints = new java.awt.GridBagConstraints (); 478 gridBagConstraints.gridx = 0; 479 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 480 gridBagConstraints.weightx = 1.0; 481 jPanel5.add(jPanel3, gridBagConstraints); 482 483 gridBagConstraints = new java.awt.GridBagConstraints (); 484 gridBagConstraints.gridx = 0; 485 gridBagConstraints.weighty = 1.0; 486 jPanel5.add(jPanel9, gridBagConstraints); 487 488 jTabbedPane1.addTab("Main report and Data Source", jPanel5); 489 490 jPanelControls.setLayout(new java.awt.GridBagLayout ()); 491 492 jTabbedPane1.addTab("Input controls", jPanelControls); 493 494 jPanelresources.setLayout(new java.awt.GridBagLayout ()); 495 496 jTabbedPane1.addTab("Resources", jPanelresources); 497 498 gridBagConstraints = new java.awt.GridBagConstraints (); 499 gridBagConstraints.gridx = 0; 500 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 501 gridBagConstraints.weightx = 1.0; 502 gridBagConstraints.weighty = 1.0; 503 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 504 getContentPane().add(jTabbedPane1, gridBagConstraints); 505 506 jSeparator4.setMinimumSize(new java.awt.Dimension (2, 2)); 507 jSeparator4.setPreferredSize(new java.awt.Dimension (2, 2)); 508 gridBagConstraints = new java.awt.GridBagConstraints (); 509 gridBagConstraints.gridx = 0; 510 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 511 gridBagConstraints.weightx = 1.0; 512 getContentPane().add(jSeparator4, gridBagConstraints); 513 514 jPanel4.setLayout(new java.awt.GridBagLayout ()); 515 516 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 517 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 518 jButtonSave.setText("Create report unit"); 519 jButtonSave.setEnabled(false); 520 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 521 public void actionPerformed(java.awt.event.ActionEvent evt) { 522 jButtonSaveActionPerformed(evt); 523 } 524 }); 525 526 gridBagConstraints = new java.awt.GridBagConstraints (); 527 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 528 gridBagConstraints.weightx = 1.0; 529 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 530 jPanel4.add(jButtonSave, gridBagConstraints); 531 532 jButtonClose.setText("Cancel"); 533 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 534 public void actionPerformed(java.awt.event.ActionEvent evt) { 535 jButtonCloseActionPerformed(evt); 536 } 537 }); 538 539 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 540 541 gridBagConstraints = new java.awt.GridBagConstraints (); 542 gridBagConstraints.gridx = 0; 543 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 544 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 545 getContentPane().add(jPanel4, gridBagConstraints); 546 547 pack(); 548 } 550 private void jButton1ActionPerformed12(java.awt.event.ActionEvent evt) { ResourceChooser rc = new ResourceChooser(); 552 rc.setServer( getServer() ); 553 if (rc.showDialog(this, null) == JOptionPane.OK_OPTION) { 554 ResourceDescriptor rd = rc.getSelectedDescriptor(); 555 556 if (rd == null || rd.getUriString() == null) { 557 jTextFieldFileRepo.setText(""); 558 } else { 559 if (!rd.getWsType().equals(rd.TYPE_JRXML) ) 560 { 561 JOptionPane.showMessageDialog(MainFrame.getMainInstance(),"Please choose a JRXML resource","",JOptionPane.WARNING_MESSAGE); 562 return; 563 } 564 else 565 { 566 jTextFieldFileRepo.setText( rd.getUriString() ); 567 } 568 } 569 } 570 } 572 private void jRadioButtonLocalActionPerformed1(java.awt.event.ActionEvent evt) { updateJrxmlFromType(); 574 } 576 private void jRadioButtonRepoActionPerformed1(java.awt.event.ActionEvent evt) { updateJrxmlFromType(); 578 } 580 private void jButton1ActionPerformed11(java.awt.event.ActionEvent evt) { 582 Report report = MainFrame.getMainInstance().getActiveReportFrame().getReport(); 583 if (report.getFilename() == null) 584 { 585 if (JOptionPane.showConfirmDialog(this,"Save the report now?") == JOptionPane.OK_OPTION) 586 { 587 MainFrame.getMainInstance().save( MainFrame.getMainInstance().getActiveReportFrame() ); 588 } 589 else 590 { 591 return; 592 } 593 } 594 jTextFieldFile.setText( report.getFilename() ); 595 596 } 598 private void jButtonEditLocalDataSourceActionPerformed(java.awt.event.ActionEvent evt) { 600 601 DataSourceDialog dtd = new DataSourceDialog(MainFrame.getMainInstance(),true); 602 dtd.setServer(this.getServer()); 603 dtd.setParentFolder( this.getParentFolder() + "/<dataSource>"); 604 dtd.setDoNotStore(true); 605 if (dataSourceDescriptor != null) 606 { 607 dtd.setResource(dataSourceDescriptor); 608 } 609 610 dtd.setVisible(true); 611 612 if (dtd.getDialogResult() == JOptionPane.OK_OPTION) 613 { 614 dataSourceDescriptor = dtd.getNewResourceDescriptor(); 615 } 616 617 } 619 private void jRadioButtonLocalActionPerformed(java.awt.event.ActionEvent evt) { updateResourceFromType(); 621 } 623 private void jButtonPickResourceActionPerformed(java.awt.event.ActionEvent evt) { ResourceChooser rc = new ResourceChooser(); 625 rc.setServer( getServer() ); 626 if (rc.showDialog(this, null) == JOptionPane.OK_OPTION) { 627 ResourceDescriptor rd = rc.getSelectedDescriptor(); 628 if (rd == null || rd.getUriString() == null) { 629 jComboBoxDatasources.setSelectedItem(""); 630 } else { 631 jComboBoxDatasources.setSelectedItem( rd.getUriString() ); 632 } 633 updateSaveButton(); 634 } 635 } 637 private void jRadioButtonRepoActionPerformed(java.awt.event.ActionEvent evt) { updateResourceFromType(); 639 } 641 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 643 this.setVisible(false); 644 this.dispose(); 645 } 647 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 649 650 ResourceDescriptor rd = new ResourceDescriptor(); 651 652 File resourceFile = null; 653 654 rd.setWsType( ResourceDescriptor.TYPE_REPORTUNIT ); 655 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 657 String uri = getParentFolder(); 658 if (!uri.endsWith("/")) uri = uri + "/"; 659 uri += jTextFieldName.getText(); 660 rd.setUriString( uri ); 661 rd.setLabel(jTextFieldLabel.getText().trim() ); rd.setParentFolder( getParentFolder() ); 663 rd.setIsNew( resource == null ); 664 665 ResourceDescriptor tmpDataSourceDescriptor; 667 if (jRadioButtonRepo.isSelected()) 668 { 669 tmpDataSourceDescriptor = new ResourceDescriptor(); 670 tmpDataSourceDescriptor.setWsType( ResourceDescriptor.TYPE_DATASOURCE ); 671 tmpDataSourceDescriptor.setReferenceUri( jComboBoxDatasources.getSelectedItem()+""); 672 tmpDataSourceDescriptor.setIsReference(true); 673 } 674 else 675 { 676 if (dataSourceDescriptor == null) 677 { 678 JOptionPane.showMessageDialog(this,"The local datasource is not correctly defined.\nPress the button \"Edit local datasource\" to fix the problem."); 679 return; 680 } 681 tmpDataSourceDescriptor = dataSourceDescriptor; 682 tmpDataSourceDescriptor.setIsReference(false); 683 } 684 685 686 rd.getChildren().add( tmpDataSourceDescriptor ); 687 688 ResourceDescriptor jrxmlDescriptor = new ResourceDescriptor(); 690 jrxmlDescriptor.setWsType( ResourceDescriptor.TYPE_JRXML ); 691 692 if (jRadioButtonRepo1.isSelected()) 693 { 694 jrxmlDescriptor.setIsNew(true); 695 jrxmlDescriptor.setMainReport(true); 696 jrxmlDescriptor.setIsReference(true); 697 jrxmlDescriptor.setReferenceUri( jTextFieldFileRepo.getText() ); 698 rd.getChildren().add( jrxmlDescriptor ); 699 } 700 else 701 { 702 if (resource == null || jTextFieldFile.getText().trim().length() > 0) 703 { 704 jrxmlDescriptor.setName( jTextFieldName.getText() + "_jrxml"); 705 jrxmlDescriptor.setLabel("Main jrxml"); jrxmlDescriptor.setDescription("Main jrxml"); jrxmlDescriptor.setIsNew(true); 708 jrxmlDescriptor.setHasData(true); 709 jrxmlDescriptor.setMainReport(true); 710 resourceFile = new File ( jTextFieldFile.getText()); 711 712 if (!resourceFile.exists()) { 713 JOptionPane.showMessageDialog(this, jTextFieldFile.getText() + "\n\nFile not found!"); 714 return; 715 } 716 rd.getChildren().add( jrxmlDescriptor ); 717 } 718 } 719 720 try { 721 newResourceDescriptor = getServer().getWSClient().addOrModifyResource(rd, resourceFile); 722 setDialogResult(JOptionPane.OK_OPTION); 723 724 if (resource != null && newResourceDescriptor != null) 725 { 726 resource.setDescriptor(newResourceDescriptor); 727 } 728 729 this.setVisible(false); 730 this.dispose(); 731 } catch (Exception ex) { 732 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 733 ex.printStackTrace(); 734 return; 735 } 736 } 738 private void jButtonBrowseActionPerformed1(java.awt.event.ActionEvent evt) { String fileName = ""; 740 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser (MainFrame.getMainInstance().getCurrentDirectory()); 741 742 jfc.setDialogTitle("Pick a file...."); 743 744 jfc.setFileFilter( new javax.swing.filechooser.FileFilter () { 745 public boolean accept(java.io.File file) { 746 String filename = file.getName(); 747 return (filename.toLowerCase().endsWith(".xml") || file.isDirectory() || filename.toLowerCase().endsWith(".jrxml")) ; 748 } 749 public String getDescription() { 750 return "JasperReports XML *.xml, *.jrxml"; 751 } 752 }); 753 754 jfc.setMultiSelectionEnabled(false); 755 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 756 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 757 758 jTextFieldFile.setText( jfc.getSelectedFile()+""); 759 updateSaveButton(); 760 } 761 } 763 766 public static void main(String args[]) { 767 java.awt.EventQueue.invokeLater(new Runnable () { 768 public void run() { 769 new ReportUnitDialog(new javax.swing.JFrame (), true).setVisible(true); 770 } 771 }); 772 } 773 774 public int getDialogResult() { 775 return dialogResult; 776 } 777 778 public void setDialogResult(int dialogResult) { 779 this.dialogResult = dialogResult; 780 } 781 782 785 public void setDatasources(List datasources) 786 { 787 jComboBoxDatasources.removeAllItems(); 788 for (int i=0; i<datasources.size(); ++i) 789 { 790 Object datasource = datasources.get(i); 791 if (datasource instanceof java.lang.String ) 792 { 793 jComboBoxDatasources.addItem(datasource); 794 } 795 else if (datasource instanceof ResourceDescriptor) 796 { 797 jComboBoxDatasources.addItem(((ResourceDescriptor)datasource).getUriString()); 798 } 799 } 800 801 if (jComboBoxDatasources.getItemCount() > 0) 802 { 803 jComboBoxDatasources.setSelectedIndex(0); 804 } 805 } 806 807 public JServer getServer() { 808 return server; 809 } 810 811 public void setServer(JServer server) { 812 this.server = server; 813 } 814 815 public String getParentFolder() { 816 return parentFolder; 817 } 818 819 public void setParentFolder(String parentFolder) { 820 this.parentFolder = parentFolder; 821 this.jTextFieldUriString.setText(parentFolder); 822 } 823 824 825 private javax.swing.ButtonGroup buttonGroup1; 827 private javax.swing.ButtonGroup buttonGroup2; 828 private javax.swing.JButton jButtonBrowse; 829 private javax.swing.JButton jButtonClose; 830 private javax.swing.JButton jButtonEditLocalDataSource; 831 private javax.swing.JButton jButtonGetCurrentReport; 832 private javax.swing.JButton jButtonPickJrxml; 833 private javax.swing.JButton jButtonPickResource; 834 private javax.swing.JButton jButtonSave; 835 private javax.swing.JComboBox jComboBoxDatasources; 836 private javax.swing.JEditorPane jEditorPaneDescription; 837 private javax.swing.JLabel jLabel1; 838 private javax.swing.JLabel jLabelDescription; 839 private javax.swing.JLabel jLabelLabel; 840 private javax.swing.JLabel jLabelName; 841 private javax.swing.JLabel jLabelResourceFile; 842 private javax.swing.JLabel jLabelResourceType1; 843 private javax.swing.JLabel jLabelUriString; 844 private javax.swing.JPanel jPanel1; 845 private javax.swing.JPanel jPanel2; 846 private javax.swing.JPanel jPanel3; 847 private javax.swing.JPanel jPanel4; 848 private javax.swing.JPanel jPanel5; 849 private javax.swing.JPanel jPanel6; 850 private javax.swing.JPanel jPanel8; 851 private javax.swing.JPanel jPanel9; 852 private javax.swing.JPanel jPanelControls; 853 private javax.swing.JPanel jPanelresources; 854 private javax.swing.JRadioButton jRadioButtonLocal; 855 private javax.swing.JRadioButton jRadioButtonLocal1; 856 private javax.swing.JRadioButton jRadioButtonRepo; 857 private javax.swing.JRadioButton jRadioButtonRepo1; 858 private javax.swing.JScrollPane jScrollPane1; 859 private javax.swing.JSeparator jSeparator1; 860 private javax.swing.JSeparator jSeparator2; 861 private javax.swing.JSeparator jSeparator4; 862 private javax.swing.JSeparator jSeparator5; 863 private javax.swing.JTabbedPane jTabbedPane1; 864 private javax.swing.JTextField jTextFieldFile; 865 private javax.swing.JTextField jTextFieldFileRepo; 866 private javax.swing.JTextField jTextFieldLabel; 867 private javax.swing.JTextField jTextFieldName; 868 private javax.swing.JTextField jTextFieldUriString; 869 871 872 public void updateResourceFromType() 873 { 874 jComboBoxDatasources.setEnabled( jRadioButtonRepo.isSelected() ); 875 jButtonPickResource.setEnabled( jRadioButtonRepo.isSelected() ); 876 877 jButtonEditLocalDataSource.setEnabled( jRadioButtonLocal.isSelected() ); 878 } 879 880 public void updateJrxmlFromType() 881 { 882 jTextFieldFileRepo.setEnabled( jRadioButtonRepo1.isSelected() ); 883 jButtonPickJrxml.setEnabled( jRadioButtonRepo1.isSelected() ); 884 jTextFieldFile.setEnabled( jRadioButtonLocal1.isSelected() ); 885 jButtonBrowse.setEnabled( jRadioButtonLocal1.isSelected() ); 886 jButtonGetCurrentReport.setEnabled( jRadioButtonLocal1.isSelected() ); 887 } 888 889 public ResourceDescriptor getNewResourceDescriptor() { 890 return newResourceDescriptor; 891 } 892 893 896 public void setResource(RepositoryReportUnit resource) 897 { 898 this.resource = resource; 899 900 if (resource != null) 901 { 902 setResource(resource.getDescriptor()); 903 } 904 jTextFieldName.setEditable(false); 905 jTextFieldName.setOpaque(false); 906 907 jButtonSave.setText("Save Report Unit"); 908 } 909 910 913 public void setResource(ResourceDescriptor descriptor) 914 { 915 if (descriptor == null) return; 916 jTextFieldName.setText( descriptor.getName()); 917 jTextFieldLabel.setText( descriptor.getLabel()); 918 jEditorPaneDescription.setText( descriptor.getDescription()); 919 920 for (int i=0; i<descriptor.getChildren().size(); ++i) 921 { 922 923 ResourceDescriptor rd = (ResourceDescriptor)descriptor.getChildren().get(i); 924 if (rd.getWsType().equals(ResourceDescriptor.TYPE_DATASOURCE)) 925 { 926 jComboBoxDatasources.setSelectedItem( rd.getReferenceUri() ); 927 jRadioButtonRepo.setSelected(true); 928 jRadioButtonLocal.setSelected(false); 929 } 930 else if ( RepositoryExplorer.isDataSource( rd)) 931 { 932 dataSourceDescriptor = rd; 933 jRadioButtonLocal.setSelected(true); 934 jRadioButtonRepo.setSelected(false); 935 } 936 else if ( rd.getWsType().equals(ResourceDescriptor.TYPE_JRXML) && 937 rd.isMainReport()) 938 { 939 if (!rd.getUriString().startsWith( descriptor.getUriString() )) 940 { 941 jRadioButtonLocal1.setSelected(false); 942 jRadioButtonRepo1.setSelected(true); 943 jTextFieldFileRepo.setText(rd.getUriString()); 944 } 945 else 946 { 947 jRadioButtonLocal1.setSelected(true); 948 jRadioButtonRepo1.setSelected(false); 949 } 950 } 951 else 952 { 953 955 } 956 updateResourceFromType(); 957 updateJrxmlFromType(); 958 } 959 } 960 961 public RepositoryReportUnit getResource() { 962 return resource; 963 } 964 965 public boolean isControlsSupportActive() { 966 return controlsSupportActive; 967 } 968 969 public void setControlsSupportActive(boolean controlsSupportActive) { 970 this.controlsSupportActive = controlsSupportActive; 971 if (!controlsSupportActive) 972 { 973 jTabbedPane1.remove( jPanelControls); 974 } 975 else 976 { 977 jTabbedPane1.addTab("Resources", jPanelControls); 978 } 979 } 980 981 public boolean isResourcesSupportActive() { 982 return resourcesSupportActive; 983 } 984 985 public void setResourcesSupportActive(boolean resourcesSupportActive) { 986 this.resourcesSupportActive = resourcesSupportActive; 987 if (!resourcesSupportActive) 988 { 989 jTabbedPane1.remove( jPanelresources); 990 } 991 else 992 { 993 jTabbedPane1.addTab("Resources", jPanelresources); 994 } 995 } 996 997 } 998 | Popular Tags |