1 6 7 package com.jaspersoft.jasperserver.irplugin.gui; 8 9 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor; 10 import it.businesslogic.ireport.gui.MainFrame; 11 import java.io.File ; 12 import java.util.List ; 13 import javax.swing.JOptionPane ; 14 import com.jaspersoft.jasperserver.irplugin.JServer; 15 16 20 public class NewReportUnitDialog extends javax.swing.JDialog { 21 22 private int dialogResult = JOptionPane.CANCEL_OPTION; 23 24 private JServer server = null; 25 private String parentFolder = null; 26 27 private ResourceDescriptor newReportUnitDescriptor = null; 28 29 30 public NewReportUnitDialog(java.awt.Frame parent, boolean modal) { 31 super(parent, modal); 32 initComponents(); 33 34 it.businesslogic.ireport.util.Misc.centerFrame(this); 35 this.jTextFieldLabel.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 36 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 37 updateSaveButton(); 38 } 39 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 40 updateSaveButton(); 41 } 42 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 43 updateSaveButton(); 44 } 45 }); 46 47 this.jTextFieldFile.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 48 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 49 updateSaveButton(); 50 } 51 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 52 updateSaveButton(); 53 } 54 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 55 updateSaveButton(); 56 } 57 }); 58 59 this.jTextFieldName.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 60 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 61 updateSaveButton(); 62 } 63 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 64 updateSaveButton(); 65 } 66 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 67 updateSaveButton(); 68 } 69 }); 70 71 jTextFieldName.requestFocusInWindow(); 72 } 73 74 75 private void updateSaveButton() 76 { 77 if (jTextFieldLabel.getText().length() > 0 && 78 jTextFieldName.getText().length() > 0 && 79 jComboBoxDatasources.getSelectedItem() != null) 80 { 81 jButtonSave.setEnabled(true); 82 } 83 else 84 { 85 jButtonSave.setEnabled(false); 86 } 87 } 88 89 94 private void initComponents() { 96 java.awt.GridBagConstraints gridBagConstraints; 97 98 jPanel1 = new javax.swing.JPanel (); 99 jLabel1 = new javax.swing.JLabel (); 100 jSeparator1 = new javax.swing.JSeparator (); 101 jPanel2 = new javax.swing.JPanel (); 102 jLabelUriString = new javax.swing.JLabel (); 103 jTextFieldUriString = new javax.swing.JTextField (); 104 jLabelName = new javax.swing.JLabel (); 105 jTextFieldName = new javax.swing.JTextField (); 106 jSeparator2 = new javax.swing.JSeparator (); 107 jLabelLabel = new javax.swing.JLabel (); 108 jTextFieldLabel = new javax.swing.JTextField (); 109 jScrollPane1 = new javax.swing.JScrollPane (); 110 jEditorPaneDescription = new javax.swing.JEditorPane (); 111 jLabelDescription = new javax.swing.JLabel (); 112 jSeparator3 = new javax.swing.JSeparator (); 113 jLabelResourceFile = new javax.swing.JLabel (); 114 jPanel3 = new javax.swing.JPanel (); 115 jTextFieldFile = new javax.swing.JTextField (); 116 jButton1 = new javax.swing.JButton (); 117 jLabelResourceType = new javax.swing.JLabel (); 118 jComboBoxDatasources = new javax.swing.JComboBox (); 119 jSeparator4 = new javax.swing.JSeparator (); 120 jPanel4 = new javax.swing.JPanel (); 121 jButtonSave = new javax.swing.JButton (); 122 jButtonClose = new javax.swing.JButton (); 123 124 getContentPane().setLayout(new java.awt.GridBagLayout ()); 125 126 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 127 setTitle("Report unit"); 128 jPanel1.setLayout(new java.awt.GridBagLayout ()); 129 130 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 131 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 132 jLabel1.setIcon(new javax.swing.ImageIcon (getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/documents_label.png"))); 133 jLabel1.setText("Report unit"); 134 jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); 135 jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 136 gridBagConstraints = new java.awt.GridBagConstraints (); 137 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 138 gridBagConstraints.weightx = 1.0; 139 gridBagConstraints.weighty = 1.0; 140 jPanel1.add(jLabel1, gridBagConstraints); 141 142 gridBagConstraints = new java.awt.GridBagConstraints (); 143 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 144 getContentPane().add(jPanel1, gridBagConstraints); 145 146 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 147 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 148 gridBagConstraints = new java.awt.GridBagConstraints (); 149 gridBagConstraints.gridx = 0; 150 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 151 gridBagConstraints.weightx = 1.0; 152 getContentPane().add(jSeparator1, gridBagConstraints); 153 154 jPanel2.setLayout(new java.awt.GridBagLayout ()); 155 156 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 157 jLabelUriString.setText("Parent folder"); 158 gridBagConstraints = new java.awt.GridBagConstraints (); 159 gridBagConstraints.gridx = 0; 160 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 161 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 162 jPanel2.add(jLabelUriString, gridBagConstraints); 163 164 jTextFieldUriString.setEditable(false); 165 jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 166 jTextFieldUriString.setOpaque(false); 167 gridBagConstraints = new java.awt.GridBagConstraints (); 168 gridBagConstraints.gridx = 1; 169 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 170 gridBagConstraints.weightx = 1.0; 171 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 172 jPanel2.add(jTextFieldUriString, gridBagConstraints); 173 174 jLabelName.setText("Name"); 175 gridBagConstraints = new java.awt.GridBagConstraints (); 176 gridBagConstraints.gridx = 0; 177 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 178 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 179 jPanel2.add(jLabelName, gridBagConstraints); 180 181 gridBagConstraints = new java.awt.GridBagConstraints (); 182 gridBagConstraints.gridx = 1; 183 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 184 gridBagConstraints.weightx = 1.0; 185 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 186 jPanel2.add(jTextFieldName, gridBagConstraints); 187 188 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 189 gridBagConstraints = new java.awt.GridBagConstraints (); 190 gridBagConstraints.gridx = 0; 191 gridBagConstraints.gridwidth = 2; 192 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 193 gridBagConstraints.weightx = 1.0; 194 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 195 jPanel2.add(jSeparator2, gridBagConstraints); 196 197 jLabelLabel.setText("Label"); 198 gridBagConstraints = new java.awt.GridBagConstraints (); 199 gridBagConstraints.gridx = 0; 200 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 201 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 202 jPanel2.add(jLabelLabel, gridBagConstraints); 203 204 gridBagConstraints = new java.awt.GridBagConstraints (); 205 gridBagConstraints.gridx = 1; 206 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 207 gridBagConstraints.weightx = 1.0; 208 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 209 jPanel2.add(jTextFieldLabel, gridBagConstraints); 210 211 jScrollPane1.setViewportView(jEditorPaneDescription); 212 213 gridBagConstraints = new java.awt.GridBagConstraints (); 214 gridBagConstraints.gridx = 1; 215 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 216 gridBagConstraints.weightx = 1.0; 217 gridBagConstraints.weighty = 1.0; 218 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 219 jPanel2.add(jScrollPane1, gridBagConstraints); 220 221 jLabelDescription.setText("Description"); 222 gridBagConstraints = new java.awt.GridBagConstraints (); 223 gridBagConstraints.gridx = 0; 224 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 225 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 226 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 227 jPanel2.add(jLabelDescription, gridBagConstraints); 228 229 jSeparator3.setMinimumSize(new java.awt.Dimension (0, 2)); 230 gridBagConstraints = new java.awt.GridBagConstraints (); 231 gridBagConstraints.gridx = 0; 232 gridBagConstraints.gridwidth = 2; 233 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 234 gridBagConstraints.weightx = 1.0; 235 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 236 jPanel2.add(jSeparator3, gridBagConstraints); 237 238 jLabelResourceFile.setText("Main Jrxml"); 239 gridBagConstraints = new java.awt.GridBagConstraints (); 240 gridBagConstraints.gridx = 0; 241 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 242 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 243 jPanel2.add(jLabelResourceFile, gridBagConstraints); 244 245 jPanel3.setLayout(new java.awt.GridBagLayout ()); 246 247 jPanel3.setMinimumSize(new java.awt.Dimension (11, 19)); 248 jPanel3.setPreferredSize(new java.awt.Dimension (11, 19)); 249 gridBagConstraints = new java.awt.GridBagConstraints (); 250 gridBagConstraints.gridx = 1; 251 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 252 gridBagConstraints.weightx = 1.0; 253 jPanel3.add(jTextFieldFile, gridBagConstraints); 254 255 jButton1.setText("Browse"); 256 jButton1.setMinimumSize(new java.awt.Dimension (73, 19)); 257 jButton1.addActionListener(new java.awt.event.ActionListener () { 258 public void actionPerformed(java.awt.event.ActionEvent evt) { 259 jButton1ActionPerformed1(evt); 260 } 261 }); 262 263 jPanel3.add(jButton1, new java.awt.GridBagConstraints ()); 264 265 gridBagConstraints = new java.awt.GridBagConstraints (); 266 gridBagConstraints.gridx = 1; 267 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 268 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 269 jPanel2.add(jPanel3, gridBagConstraints); 270 271 jLabelResourceType.setText("Datasource"); 272 gridBagConstraints = new java.awt.GridBagConstraints (); 273 gridBagConstraints.gridx = 0; 274 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 275 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 276 jPanel2.add(jLabelResourceType, gridBagConstraints); 277 278 gridBagConstraints = new java.awt.GridBagConstraints (); 279 gridBagConstraints.gridx = 1; 280 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 281 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 282 jPanel2.add(jComboBoxDatasources, gridBagConstraints); 283 284 jSeparator4.setMinimumSize(new java.awt.Dimension (0, 2)); 285 gridBagConstraints = new java.awt.GridBagConstraints (); 286 gridBagConstraints.gridx = 0; 287 gridBagConstraints.gridwidth = 2; 288 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 289 gridBagConstraints.weightx = 1.0; 290 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 291 jPanel2.add(jSeparator4, gridBagConstraints); 292 293 gridBagConstraints = new java.awt.GridBagConstraints (); 294 gridBagConstraints.gridx = 0; 295 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 296 gridBagConstraints.weightx = 1.0; 297 gridBagConstraints.weighty = 1.0; 298 getContentPane().add(jPanel2, gridBagConstraints); 299 300 jPanel4.setLayout(new java.awt.GridBagLayout ()); 301 302 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 303 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 304 jButtonSave.setText("Create report unit"); 305 jButtonSave.setEnabled(false); 306 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 307 public void actionPerformed(java.awt.event.ActionEvent evt) { 308 jButtonSaveActionPerformed(evt); 309 } 310 }); 311 312 gridBagConstraints = new java.awt.GridBagConstraints (); 313 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 314 gridBagConstraints.weightx = 1.0; 315 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 316 jPanel4.add(jButtonSave, gridBagConstraints); 317 318 jButtonClose.setText("Cancel"); 319 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 320 public void actionPerformed(java.awt.event.ActionEvent evt) { 321 jButtonCloseActionPerformed(evt); 322 } 323 }); 324 325 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 326 327 gridBagConstraints = new java.awt.GridBagConstraints (); 328 gridBagConstraints.gridx = 0; 329 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 330 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 331 getContentPane().add(jPanel4, gridBagConstraints); 332 333 pack(); 334 } 336 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 338 this.setVisible(false); 339 this.dispose(); 340 } 342 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 344 345 ResourceDescriptor rd = new ResourceDescriptor(); 346 347 File resourceFile = null; 348 349 rd.setWsType( ResourceDescriptor.TYPE_REPORTUNIT ); 350 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 352 String uri = getParentFolder(); 353 if (!uri.endsWith("/")) uri = uri + "/"; 354 uri += jTextFieldName.getText(); 355 rd.setUriString( uri ); 356 rd.setLabel(jTextFieldLabel.getText().trim() ); rd.setParentFolder( getParentFolder() ); 358 rd.setIsNew(true); 359 360 ResourceDescriptor dataSourceDescriptor = new ResourceDescriptor(); 362 dataSourceDescriptor.setWsType( ResourceDescriptor.TYPE_DATASOURCE ); 363 dataSourceDescriptor.setUriString( jComboBoxDatasources.getSelectedItem()+""); 364 365 rd.getChildren().add( dataSourceDescriptor ); 366 367 ResourceDescriptor jrxmlDescriptor = new ResourceDescriptor(); 369 jrxmlDescriptor.setWsType( ResourceDescriptor.TYPE_JRXML ); 370 jrxmlDescriptor.setName( jTextFieldName.getText() + "_jrxml"); 371 jrxmlDescriptor.setLabel("Main jrxml"); jrxmlDescriptor.setDescription("Main jrxml"); jrxmlDescriptor.setIsNew(true); 374 jrxmlDescriptor.setHasData(true); 375 jrxmlDescriptor.setMainReport(true); 376 resourceFile = new File ( jTextFieldFile.getText()); 377 378 rd.getChildren().add( jrxmlDescriptor ); 379 380 if (!resourceFile.exists()) { 381 JOptionPane.showMessageDialog(this, jTextFieldFile.getText() + "\n\nFile not found!"); 382 return; 383 } 384 385 try { 386 newReportUnitDescriptor = getServer().getWSClient().addOrModifyResource(rd, resourceFile); 387 setDialogResult(JOptionPane.OK_OPTION); 388 this.setVisible(false); 389 this.dispose(); 390 } catch (Exception ex) { 391 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 392 ex.printStackTrace(); 393 return; 394 } 395 } 397 private void jButton1ActionPerformed1(java.awt.event.ActionEvent evt) { String fileName = ""; 399 javax.swing.JFileChooser jfc = new javax.swing.JFileChooser (MainFrame.getMainInstance().getCurrentDirectory()); 400 401 jfc.setDialogTitle("Pick a file...."); 402 403 jfc.setFileFilter( new javax.swing.filechooser.FileFilter () { 404 public boolean accept(java.io.File file) { 405 String filename = file.getName(); 406 return (filename.toLowerCase().endsWith(".xml") || file.isDirectory() || filename.toLowerCase().endsWith(".jrxml")) ; 407 } 408 public String getDescription() { 409 return "JasperReports XML *.xml, *.jrxml"; 410 } 411 }); 412 413 jfc.setMultiSelectionEnabled(false); 414 jfc.setDialogType( javax.swing.JFileChooser.OPEN_DIALOG); 415 if (jfc.showOpenDialog( this) == javax.swing.JOptionPane.OK_OPTION) { 416 417 jTextFieldFile.setText( jfc.getSelectedFile()+""); 418 updateSaveButton(); 419 } 420 } 422 425 public static void main(String args[]) { 426 java.awt.EventQueue.invokeLater(new Runnable () { 427 public void run() { 428 new NewReportUnitDialog(new javax.swing.JFrame (), true).setVisible(true); 429 } 430 }); 431 } 432 433 public int getDialogResult() { 434 return dialogResult; 435 } 436 437 public void setDialogResult(int dialogResult) { 438 this.dialogResult = dialogResult; 439 } 440 441 444 public void setDatasources(List datasources) 445 { 446 jComboBoxDatasources.removeAllItems(); 447 for (int i=0; i<datasources.size(); ++i) 448 { 449 Object datasource = datasources.get(i); 450 if (datasource instanceof java.lang.String ) 451 { 452 jComboBoxDatasources.addItem(datasource); 453 } 454 else if (datasource instanceof ResourceDescriptor) 455 { 456 jComboBoxDatasources.addItem(((ResourceDescriptor)datasource).getUriString()); 457 } 458 } 459 460 if (jComboBoxDatasources.getItemCount() > 0) 461 { 462 jComboBoxDatasources.setSelectedIndex(0); 463 } 464 } 465 466 public JServer getServer() { 467 return server; 468 } 469 470 public void setServer(JServer server) { 471 this.server = server; 472 } 473 474 public String getParentFolder() { 475 return parentFolder; 476 } 477 478 public void setParentFolder(String parentFolder) { 479 this.parentFolder = parentFolder; 480 this.jTextFieldUriString.setText(parentFolder); 481 } 482 483 public ResourceDescriptor getNewReportUnitDescriptor() { 484 return newReportUnitDescriptor; 485 } 486 487 private javax.swing.JButton jButton1; 489 private javax.swing.JButton jButtonClose; 490 private javax.swing.JButton jButtonSave; 491 private javax.swing.JComboBox jComboBoxDatasources; 492 private javax.swing.JEditorPane jEditorPaneDescription; 493 private javax.swing.JLabel jLabel1; 494 private javax.swing.JLabel jLabelDescription; 495 private javax.swing.JLabel jLabelLabel; 496 private javax.swing.JLabel jLabelName; 497 private javax.swing.JLabel jLabelResourceFile; 498 private javax.swing.JLabel jLabelResourceType; 499 private javax.swing.JLabel jLabelUriString; 500 private javax.swing.JPanel jPanel1; 501 private javax.swing.JPanel jPanel2; 502 private javax.swing.JPanel jPanel3; 503 private javax.swing.JPanel jPanel4; 504 private javax.swing.JScrollPane jScrollPane1; 505 private javax.swing.JSeparator jSeparator1; 506 private javax.swing.JSeparator jSeparator2; 507 private javax.swing.JSeparator jSeparator3; 508 private javax.swing.JSeparator jSeparator4; 509 private javax.swing.JTextField jTextFieldFile; 510 private javax.swing.JTextField jTextFieldLabel; 511 private javax.swing.JTextField jTextFieldName; 512 private javax.swing.JTextField jTextFieldUriString; 513 515 } 516 | Popular Tags |