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.RepositoryFolder; 11 import it.businesslogic.ireport.IReportConnection; 12 import it.businesslogic.ireport.connection.JDBCConnection; 13 import it.businesslogic.ireport.gui.MainFrame; 14 import java.io.File ; 15 import java.util.List ; 16 import javax.swing.JOptionPane ; 17 import com.jaspersoft.jasperserver.irplugin.JServer; 18 19 23 public class DataSourceDialog extends javax.swing.JDialog { 24 25 private int dialogResult = JOptionPane.CANCEL_OPTION; 26 27 private JServer server = null; 28 private String parentFolder = null; 29 private RepositoryFolder datasourceResource = null; 30 31 private ResourceDescriptor newResourceDescriptor = null; 32 33 private boolean doNotStore = false; 34 35 38 public DataSourceDialog(java.awt.Frame parent, boolean modal) { 39 super(parent, modal); 40 initComponents(); 41 42 it.businesslogic.ireport.util.Misc.centerFrame(this); 43 javax.swing.event.DocumentListener changesListener = new javax.swing.event.DocumentListener () { 44 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 45 updateSaveButton(); 46 } 47 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 48 updateSaveButton(); 49 } 50 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 51 updateSaveButton(); 52 } 53 }; 54 55 this.jTextFieldLabel.getDocument().addDocumentListener(changesListener); 56 this.jTextFieldName.getDocument().addDocumentListener(changesListener); 57 this.jTextFieldDriver.getDocument().addDocumentListener(changesListener); 58 this.jTextFieldURL.getDocument().addDocumentListener(changesListener); 59 this.jTextFieldUsername.getDocument().addDocumentListener(changesListener); 60 this.jTextFieldServiceName.getDocument().addDocumentListener(changesListener); 61 this.jPasswordField.getDocument().addDocumentListener(changesListener); 62 this.jTextFieldBeanName.getDocument().addDocumentListener(changesListener); 63 64 jTextFieldName.requestFocusInWindow(); 65 } 66 67 68 private void updateSaveButton() 69 { 70 if (jTextFieldLabel.getText().length() > 0 && 71 jTextFieldName.getText().length() > 0) 72 { 73 boolean ok = false; 74 if (jRadioButtonJDBC.isSelected() && 75 jTextFieldDriver.getText().length() > 0 && 76 jTextFieldURL.getText().length() > 0 && 77 jTextFieldUsername.getText().length() > 0) 78 { 79 ok = true; 80 } 81 else if (jRadioButtonJNDI.isSelected() && 82 jTextFieldServiceName.getText().length() > 0) 83 { 84 ok = true; 85 } 86 else if (jRadioButtonBean.isSelected() && 87 jTextFieldBeanName.getText().length() > 0) 88 { 89 ok = true; 90 } 91 92 jButtonSave.setEnabled(ok); 93 } 94 else 95 { 96 jButtonSave.setEnabled(false); 97 } 98 } 99 100 105 private void initComponents() { 107 java.awt.GridBagConstraints gridBagConstraints; 108 109 buttonGroup1 = new javax.swing.ButtonGroup (); 110 jPanel1 = new javax.swing.JPanel (); 111 jLabel1 = new javax.swing.JLabel (); 112 jSeparator1 = new javax.swing.JSeparator (); 113 jTabbedPane1 = new javax.swing.JTabbedPane (); 114 jPanel2 = new javax.swing.JPanel (); 115 jLabelUriString = new javax.swing.JLabel (); 116 jTextFieldUriString = new javax.swing.JTextField (); 117 jLabelName = new javax.swing.JLabel (); 118 jTextFieldName = new javax.swing.JTextField (); 119 jSeparator2 = new javax.swing.JSeparator (); 120 jLabelLabel = new javax.swing.JLabel (); 121 jTextFieldLabel = new javax.swing.JTextField (); 122 jScrollPane1 = new javax.swing.JScrollPane (); 123 jEditorPaneDescription = new javax.swing.JEditorPane (); 124 jLabelDescription = new javax.swing.JLabel (); 125 jPanel3 = new javax.swing.JPanel (); 126 jRadioButtonJDBC = new javax.swing.JRadioButton (); 127 jLabelDriver = new javax.swing.JLabel (); 128 jTextFieldDriver = new javax.swing.JTextField (); 129 jLabelURL = new javax.swing.JLabel (); 130 jTextFieldURL = new javax.swing.JTextField (); 131 jLabelUsername = new javax.swing.JLabel (); 132 jTextFieldUsername = new javax.swing.JTextField (); 133 jLabelPassword = new javax.swing.JLabel (); 134 jPasswordField = new javax.swing.JPasswordField (); 135 jButtonImportConnection = new javax.swing.JButton (); 136 jRadioButtonJNDI = new javax.swing.JRadioButton (); 137 jLabelServiceName = new javax.swing.JLabel (); 138 jTextFieldServiceName = new javax.swing.JTextField (); 139 jPanel5 = new javax.swing.JPanel (); 140 jRadioButtonBean = new javax.swing.JRadioButton (); 141 jLabelBeanName = new javax.swing.JLabel (); 142 jTextFieldBeanName = new javax.swing.JTextField (); 143 jLabelBeanMethod = new javax.swing.JLabel (); 144 jTextFieldBeanMethod = new javax.swing.JTextField (); 145 jPanel4 = new javax.swing.JPanel (); 146 jButtonSave = new javax.swing.JButton (); 147 jButtonClose = new javax.swing.JButton (); 148 149 getContentPane().setLayout(new java.awt.GridBagLayout ()); 150 151 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 152 setTitle("DataSource"); 153 jPanel1.setLayout(new java.awt.GridBagLayout ()); 154 155 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 156 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 157 jLabel1.setIcon(new javax.swing.ImageIcon (getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_new.png"))); 158 jLabel1.setText("Datasource"); 159 jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); 160 jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 161 gridBagConstraints = new java.awt.GridBagConstraints (); 162 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 163 gridBagConstraints.weightx = 1.0; 164 gridBagConstraints.weighty = 1.0; 165 jPanel1.add(jLabel1, gridBagConstraints); 166 167 gridBagConstraints = new java.awt.GridBagConstraints (); 168 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 169 getContentPane().add(jPanel1, gridBagConstraints); 170 171 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 172 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 173 gridBagConstraints = new java.awt.GridBagConstraints (); 174 gridBagConstraints.gridx = 0; 175 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 176 gridBagConstraints.weightx = 1.0; 177 getContentPane().add(jSeparator1, gridBagConstraints); 178 179 jPanel2.setLayout(new java.awt.GridBagLayout ()); 180 181 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 182 jLabelUriString.setText("Parent folder"); 183 gridBagConstraints = new java.awt.GridBagConstraints (); 184 gridBagConstraints.gridx = 0; 185 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 186 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 187 jPanel2.add(jLabelUriString, gridBagConstraints); 188 189 jTextFieldUriString.setEditable(false); 190 jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 191 jTextFieldUriString.setOpaque(false); 192 gridBagConstraints = new java.awt.GridBagConstraints (); 193 gridBagConstraints.gridx = 1; 194 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 195 gridBagConstraints.weightx = 1.0; 196 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 197 jPanel2.add(jTextFieldUriString, gridBagConstraints); 198 199 jLabelName.setText("Name"); 200 gridBagConstraints = new java.awt.GridBagConstraints (); 201 gridBagConstraints.gridx = 0; 202 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 203 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 204 jPanel2.add(jLabelName, gridBagConstraints); 205 206 gridBagConstraints = new java.awt.GridBagConstraints (); 207 gridBagConstraints.gridx = 1; 208 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 209 gridBagConstraints.weightx = 1.0; 210 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 211 jPanel2.add(jTextFieldName, gridBagConstraints); 212 213 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 214 gridBagConstraints = new java.awt.GridBagConstraints (); 215 gridBagConstraints.gridx = 0; 216 gridBagConstraints.gridwidth = 2; 217 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 218 gridBagConstraints.weightx = 1.0; 219 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 220 jPanel2.add(jSeparator2, gridBagConstraints); 221 222 jLabelLabel.setText("Label"); 223 gridBagConstraints = new java.awt.GridBagConstraints (); 224 gridBagConstraints.gridx = 0; 225 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 226 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 227 jPanel2.add(jLabelLabel, gridBagConstraints); 228 229 gridBagConstraints = new java.awt.GridBagConstraints (); 230 gridBagConstraints.gridx = 1; 231 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 232 gridBagConstraints.weightx = 1.0; 233 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 234 jPanel2.add(jTextFieldLabel, gridBagConstraints); 235 236 jScrollPane1.setViewportView(jEditorPaneDescription); 237 238 gridBagConstraints = new java.awt.GridBagConstraints (); 239 gridBagConstraints.gridx = 1; 240 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 241 gridBagConstraints.weightx = 1.0; 242 gridBagConstraints.weighty = 1.0; 243 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 244 jPanel2.add(jScrollPane1, gridBagConstraints); 245 246 jLabelDescription.setText("Description"); 247 gridBagConstraints = new java.awt.GridBagConstraints (); 248 gridBagConstraints.gridx = 0; 249 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 250 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 251 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 252 jPanel2.add(jLabelDescription, gridBagConstraints); 253 254 jTabbedPane1.addTab("General", jPanel2); 255 256 jPanel3.setLayout(new java.awt.GridBagLayout ()); 257 258 buttonGroup1.add(jRadioButtonJDBC); 259 jRadioButtonJDBC.setText("JDBC Data Source"); 260 jRadioButtonJDBC.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 261 jRadioButtonJDBC.setMargin(new java.awt.Insets (0, 0, 0, 0)); 262 jRadioButtonJDBC.addActionListener(new java.awt.event.ActionListener () { 263 public void actionPerformed(java.awt.event.ActionEvent evt) { 264 jRadioButtonJDBCActionPerformed(evt); 265 } 266 }); 267 268 gridBagConstraints = new java.awt.GridBagConstraints (); 269 gridBagConstraints.gridwidth = 2; 270 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 271 gridBagConstraints.weightx = 1.0; 272 gridBagConstraints.insets = new java.awt.Insets (8, 8, 4, 4); 273 jPanel3.add(jRadioButtonJDBC, gridBagConstraints); 274 275 jLabelDriver.setText("Driver"); 276 jLabelDriver.setEnabled(false); 277 gridBagConstraints = new java.awt.GridBagConstraints (); 278 gridBagConstraints.gridx = 0; 279 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 280 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 281 jPanel3.add(jLabelDriver, gridBagConstraints); 282 283 jTextFieldDriver.setEnabled(false); 284 gridBagConstraints = new java.awt.GridBagConstraints (); 285 gridBagConstraints.gridx = 1; 286 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 287 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 288 jPanel3.add(jTextFieldDriver, gridBagConstraints); 289 290 jLabelURL.setText("URL"); 291 jLabelURL.setEnabled(false); 292 gridBagConstraints = new java.awt.GridBagConstraints (); 293 gridBagConstraints.gridx = 0; 294 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 295 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 296 jPanel3.add(jLabelURL, gridBagConstraints); 297 298 jTextFieldURL.setEnabled(false); 299 gridBagConstraints = new java.awt.GridBagConstraints (); 300 gridBagConstraints.gridx = 1; 301 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 302 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 303 jPanel3.add(jTextFieldURL, gridBagConstraints); 304 305 jLabelUsername.setText("Username"); 306 jLabelUsername.setEnabled(false); 307 gridBagConstraints = new java.awt.GridBagConstraints (); 308 gridBagConstraints.gridx = 0; 309 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 310 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 311 jPanel3.add(jLabelUsername, gridBagConstraints); 312 313 jTextFieldUsername.setEnabled(false); 314 gridBagConstraints = new java.awt.GridBagConstraints (); 315 gridBagConstraints.gridx = 1; 316 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 317 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 318 jPanel3.add(jTextFieldUsername, gridBagConstraints); 319 320 jLabelPassword.setText("Password"); 321 jLabelPassword.setEnabled(false); 322 gridBagConstraints = new java.awt.GridBagConstraints (); 323 gridBagConstraints.gridx = 0; 324 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 325 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 326 jPanel3.add(jLabelPassword, gridBagConstraints); 327 328 jPasswordField.setEnabled(false); 329 jPasswordField.setMinimumSize(new java.awt.Dimension (11, 19)); 330 jPasswordField.setPreferredSize(new java.awt.Dimension (11, 19)); 331 gridBagConstraints = new java.awt.GridBagConstraints (); 332 gridBagConstraints.gridx = 1; 333 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 334 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 335 jPanel3.add(jPasswordField, gridBagConstraints); 336 337 jButtonImportConnection.setText("Import from iReport"); 338 jButtonImportConnection.setEnabled(false); 339 jButtonImportConnection.addActionListener(new java.awt.event.ActionListener () { 340 public void actionPerformed(java.awt.event.ActionEvent evt) { 341 jButtonImportConnectionActionPerformed(evt); 342 } 343 }); 344 345 gridBagConstraints = new java.awt.GridBagConstraints (); 346 gridBagConstraints.gridx = 1; 347 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 348 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 8); 349 jPanel3.add(jButtonImportConnection, gridBagConstraints); 350 351 buttonGroup1.add(jRadioButtonJNDI); 352 jRadioButtonJNDI.setSelected(true); 353 jRadioButtonJNDI.setText("JNDI Data Source"); 354 jRadioButtonJNDI.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 355 jRadioButtonJNDI.setMargin(new java.awt.Insets (0, 0, 0, 0)); 356 jRadioButtonJNDI.addActionListener(new java.awt.event.ActionListener () { 357 public void actionPerformed(java.awt.event.ActionEvent evt) { 358 jRadioButtonJNDIActionPerformed(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 (16, 8, 4, 4); 368 jPanel3.add(jRadioButtonJNDI, gridBagConstraints); 369 370 jLabelServiceName.setText("Service Name"); 371 gridBagConstraints = new java.awt.GridBagConstraints (); 372 gridBagConstraints.gridx = 0; 373 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 374 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 375 jPanel3.add(jLabelServiceName, gridBagConstraints); 376 377 gridBagConstraints = new java.awt.GridBagConstraints (); 378 gridBagConstraints.gridx = 1; 379 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 380 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 381 jPanel3.add(jTextFieldServiceName, gridBagConstraints); 382 383 gridBagConstraints = new java.awt.GridBagConstraints (); 384 gridBagConstraints.gridx = 0; 385 gridBagConstraints.weighty = 1.0; 386 jPanel3.add(jPanel5, gridBagConstraints); 387 388 buttonGroup1.add(jRadioButtonBean); 389 jRadioButtonBean.setText("Bean Data Source"); 390 jRadioButtonBean.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 391 jRadioButtonBean.setMargin(new java.awt.Insets (0, 0, 0, 0)); 392 jRadioButtonBean.addActionListener(new java.awt.event.ActionListener () { 393 public void actionPerformed(java.awt.event.ActionEvent evt) { 394 jRadioButtonJNDIActionPerformed1(evt); 395 } 396 }); 397 398 gridBagConstraints = new java.awt.GridBagConstraints (); 399 gridBagConstraints.gridx = 0; 400 gridBagConstraints.gridwidth = 2; 401 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 402 gridBagConstraints.weightx = 1.0; 403 gridBagConstraints.insets = new java.awt.Insets (16, 8, 4, 4); 404 jPanel3.add(jRadioButtonBean, gridBagConstraints); 405 406 jLabelBeanName.setText("Bean Name"); 407 jLabelBeanName.setEnabled(false); 408 gridBagConstraints = new java.awt.GridBagConstraints (); 409 gridBagConstraints.gridx = 0; 410 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 411 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 412 jPanel3.add(jLabelBeanName, gridBagConstraints); 413 414 jTextFieldBeanName.setToolTipText("Name of configured bean"); 415 jTextFieldBeanName.setEnabled(false); 416 gridBagConstraints = new java.awt.GridBagConstraints (); 417 gridBagConstraints.gridx = 1; 418 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 419 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 420 jPanel3.add(jTextFieldBeanName, gridBagConstraints); 421 422 jLabelBeanMethod.setText("Bean Method"); 423 jLabelBeanMethod.setEnabled(false); 424 gridBagConstraints = new java.awt.GridBagConstraints (); 425 gridBagConstraints.gridx = 0; 426 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 427 gridBagConstraints.insets = new java.awt.Insets (0, 30, 4, 0); 428 jPanel3.add(jLabelBeanMethod, gridBagConstraints); 429 430 jTextFieldBeanMethod.setToolTipText("Name of method on configured bean (optional)"); 431 jTextFieldBeanMethod.setEnabled(false); 432 gridBagConstraints = new java.awt.GridBagConstraints (); 433 gridBagConstraints.gridx = 1; 434 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 435 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 8); 436 jPanel3.add(jTextFieldBeanMethod, gridBagConstraints); 437 438 jTabbedPane1.addTab("Datasource details", jPanel3); 439 440 gridBagConstraints = new java.awt.GridBagConstraints (); 441 gridBagConstraints.gridx = 0; 442 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 443 gridBagConstraints.weightx = 1.0; 444 gridBagConstraints.weighty = 1.0; 445 getContentPane().add(jTabbedPane1, gridBagConstraints); 446 447 jPanel4.setLayout(new java.awt.GridBagLayout ()); 448 449 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 450 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 451 jButtonSave.setText("Save"); 452 jButtonSave.setEnabled(false); 453 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 454 public void actionPerformed(java.awt.event.ActionEvent evt) { 455 jButtonSaveActionPerformed(evt); 456 } 457 }); 458 459 gridBagConstraints = new java.awt.GridBagConstraints (); 460 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 461 gridBagConstraints.weightx = 1.0; 462 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 463 jPanel4.add(jButtonSave, gridBagConstraints); 464 465 jButtonClose.setText("Cancel"); 466 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 467 public void actionPerformed(java.awt.event.ActionEvent evt) { 468 jButtonCloseActionPerformed(evt); 469 } 470 }); 471 472 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 473 474 gridBagConstraints = new java.awt.GridBagConstraints (); 475 gridBagConstraints.gridx = 0; 476 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 477 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 478 getContentPane().add(jPanel4, gridBagConstraints); 479 480 pack(); 481 } 483 private void jRadioButtonJNDIActionPerformed1(java.awt.event.ActionEvent evt) { updateDatasourceType(); 485 } 487 private void jRadioButtonJDBCActionPerformed(java.awt.event.ActionEvent evt) { updateDatasourceType(); 489 } 491 private void jButtonImportConnectionActionPerformed(java.awt.event.ActionEvent evt) { 493 java.util.Vector iReportConnections = MainFrame.getMainInstance().getConnections(); 494 495 java.util.Vector validConnections = new java.util.Vector (); 496 for (int i=0; i<iReportConnections.size(); ++i) 497 { 498 IReportConnection conn = (IReportConnection)iReportConnections.elementAt(i); 499 if (conn instanceof JDBCConnection) 500 { 501 validConnections.add(conn); 502 } 503 } 504 if (validConnections.size() == 0) 505 { 506 JOptionPane.showMessageDialog(this,"No JDBC connections currently configured in iReport."); 507 return; 508 } 509 JDBCConnection[] connections = new JDBCConnection[validConnections.size()]; 510 for (int i=0; i<connections.length; ++i) 511 { 512 connections[i] = (JDBCConnection)(validConnections.elementAt(i)); 513 } 514 515 JDBCConnection selectedCon = (JDBCConnection)JOptionPane.showInputDialog(this,"Select a JDBC datasource:","Import...",0,null,connections, connections[0]); 516 if (selectedCon != null) 517 { 518 jTextFieldDriver.setText( selectedCon.getJDBCDriver() ); 519 jTextFieldURL.setText( selectedCon.getUrl() ); 520 jTextFieldUsername.setText( selectedCon.getUsername() ); 521 jPasswordField.setText( selectedCon.getPassword() ); 522 } 523 524 } 526 private void jRadioButtonJNDIActionPerformed(java.awt.event.ActionEvent evt) { 528 updateDatasourceType(); 529 } 531 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 533 this.setVisible(false); 534 this.dispose(); 535 } 537 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 539 540 ResourceDescriptor rd = new ResourceDescriptor(); 541 542 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 544 String uri = getParentFolder(); 545 if (!uri.endsWith("/")) uri = uri + "/"; 546 uri += jTextFieldName.getText(); 547 rd.setUriString( uri ); 548 rd.setLabel(jTextFieldLabel.getText().trim() ); rd.setParentFolder( getParentFolder() ); 550 rd.setIsNew(datasourceResource == null); 551 552 if (jRadioButtonJDBC.isSelected()) 553 { 554 rd.setWsType( ResourceDescriptor.TYPE_DATASOURCE_JDBC ); 555 rd.setDriverClass( jTextFieldDriver.getText()); 556 rd.setConnectionUrl( jTextFieldURL.getText()); 557 rd.setUsername( jTextFieldUsername.getText()); 558 rd.setPassword( new String (jPasswordField.getPassword())); 559 } 560 else if (jRadioButtonJNDI.isSelected()) 561 { 562 rd.setWsType( ResourceDescriptor.TYPE_DATASOURCE_JNDI ); 563 rd.setJndiName( jTextFieldServiceName.getText() ); 564 } 565 else if (jRadioButtonBean.isSelected()) 566 { 567 rd.setWsType( ResourceDescriptor.TYPE_DATASOURCE_BEAN); 568 rd.setBeanName( jTextFieldBeanName.getText() ); 569 rd.setBeanMethod( jTextFieldBeanMethod.getText() ); 570 } 571 572 573 try { 574 575 if (!doNotStore) 576 { 577 newResourceDescriptor = getServer().getWSClient().addOrModifyResource(rd, null); 578 } 579 else newResourceDescriptor = rd; 580 581 setDialogResult(JOptionPane.OK_OPTION); 582 583 if (datasourceResource != null) 584 { 585 datasourceResource.setDescriptor(newResourceDescriptor); 586 } 587 588 this.setVisible(false); 589 this.dispose(); 590 591 } catch (Exception ex) { 592 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 593 ex.printStackTrace(); 594 return; 595 } 596 } 598 599 public int getDialogResult() { 600 return dialogResult; 601 } 602 603 public void setDialogResult(int dialogResult) { 604 this.dialogResult = dialogResult; 605 } 606 607 608 public JServer getServer() { 609 return server; 610 } 611 612 public void setServer(JServer server) { 613 this.server = server; 614 } 615 616 public String getParentFolder() { 617 return parentFolder; 618 } 619 620 public void setParentFolder(String parentFolder) { 621 this.parentFolder = parentFolder; 622 this.jTextFieldUriString.setText(parentFolder); 623 } 624 625 public ResourceDescriptor getNewResourceDescriptor() { 626 return newResourceDescriptor; 627 } 628 629 632 public void setResource(RepositoryFolder resource) 633 { 634 this.datasourceResource = resource; 635 if (resource != null) 636 { 637 setResource( resource.getDescriptor()); 638 jTextFieldName.setEditable(false); 639 jTextFieldName.setOpaque(false); 640 } 641 } 642 643 646 public void setResource(ResourceDescriptor descriptor) 647 { 648 if (descriptor == null) return; 649 650 jTextFieldName.setText( descriptor.getName()); 651 jTextFieldLabel.setText( descriptor.getLabel()); 652 jEditorPaneDescription.setText( descriptor.getDescription()); 653 654 if (descriptor.getWsType().equals( ResourceDescriptor.TYPE_DATASOURCE_JDBC)) 655 { 656 jRadioButtonJDBC.setEnabled(true); 657 jRadioButtonJDBC.setSelected(true); 658 jRadioButtonJNDI.setEnabled(false); 659 jRadioButtonJNDI.setSelected(false); 660 jRadioButtonBean.setSelected(false); 661 jRadioButtonBean.setEnabled(false); 662 663 updateDatasourceType(); 664 665 jTextFieldDriver.setText( descriptor.getDriverClass()); 666 jTextFieldURL.setText( descriptor.getConnectionUrl()); 667 jTextFieldUsername.setText( descriptor.getUsername()); 668 jPasswordField.setText( descriptor.getPassword()); 669 } 670 else if (descriptor.getWsType().equals( ResourceDescriptor.TYPE_DATASOURCE_JDBC)) 671 { 672 jRadioButtonJDBC.setEnabled(false); 673 jRadioButtonJDBC.setSelected(false); 674 jRadioButtonJNDI.setEnabled(true); 675 jRadioButtonJNDI.setSelected(true); 676 jRadioButtonBean.setSelected(false); 677 jRadioButtonBean.setEnabled(false); 678 updateDatasourceType(); 679 680 jTextFieldServiceName.setText( descriptor.getJndiName()); 681 } 682 else if (descriptor.getWsType().equals( ResourceDescriptor.TYPE_DATASOURCE_BEAN)) 683 { 684 jRadioButtonJDBC.setEnabled(false); 685 jRadioButtonJDBC.setSelected(false); 686 jRadioButtonJNDI.setEnabled(false); 687 jRadioButtonJNDI.setSelected(false); 688 jRadioButtonBean.setSelected(true); 689 jRadioButtonBean.setEnabled(true); 690 updateDatasourceType(); 691 692 jTextFieldBeanName.setText( descriptor.getBeanName()); 693 jTextFieldBeanMethod.setText( (descriptor.getBeanMethod() != null && descriptor.getBeanMethod().trim().length() > 0) ? 694 descriptor.getBeanMethod() : ""); 695 } 696 697 jButtonSave.setText("Save"); 698 } 699 700 private javax.swing.ButtonGroup buttonGroup1; 702 private javax.swing.JButton jButtonClose; 703 private javax.swing.JButton jButtonImportConnection; 704 private javax.swing.JButton jButtonSave; 705 private javax.swing.JEditorPane jEditorPaneDescription; 706 private javax.swing.JLabel jLabel1; 707 private javax.swing.JLabel jLabelBeanMethod; 708 private javax.swing.JLabel jLabelBeanName; 709 private javax.swing.JLabel jLabelDescription; 710 private javax.swing.JLabel jLabelDriver; 711 private javax.swing.JLabel jLabelLabel; 712 private javax.swing.JLabel jLabelName; 713 private javax.swing.JLabel jLabelPassword; 714 private javax.swing.JLabel jLabelServiceName; 715 private javax.swing.JLabel jLabelURL; 716 private javax.swing.JLabel jLabelUriString; 717 private javax.swing.JLabel jLabelUsername; 718 private javax.swing.JPanel jPanel1; 719 private javax.swing.JPanel jPanel2; 720 private javax.swing.JPanel jPanel3; 721 private javax.swing.JPanel jPanel4; 722 private javax.swing.JPanel jPanel5; 723 private javax.swing.JPasswordField jPasswordField; 724 private javax.swing.JRadioButton jRadioButtonBean; 725 private javax.swing.JRadioButton jRadioButtonJDBC; 726 private javax.swing.JRadioButton jRadioButtonJNDI; 727 private javax.swing.JScrollPane jScrollPane1; 728 private javax.swing.JSeparator jSeparator1; 729 private javax.swing.JSeparator jSeparator2; 730 private javax.swing.JTabbedPane jTabbedPane1; 731 private javax.swing.JTextField jTextFieldBeanMethod; 732 private javax.swing.JTextField jTextFieldBeanName; 733 private javax.swing.JTextField jTextFieldDriver; 734 private javax.swing.JTextField jTextFieldLabel; 735 private javax.swing.JTextField jTextFieldName; 736 private javax.swing.JTextField jTextFieldServiceName; 737 private javax.swing.JTextField jTextFieldURL; 738 private javax.swing.JTextField jTextFieldUriString; 739 private javax.swing.JTextField jTextFieldUsername; 740 742 743 public void updateDatasourceType() 744 { 745 boolean b = jRadioButtonJDBC.isSelected(); 746 747 jTextFieldDriver.setEnabled( b ); 748 jTextFieldURL.setEnabled( b ); 749 jTextFieldUsername.setEnabled( b ); 750 jPasswordField.setEnabled( b ); 751 jButtonImportConnection.setEnabled( b ); 752 jLabelDriver.setEnabled( b ); 753 jLabelURL.setEnabled( b ); 754 jLabelUsername.setEnabled( b ); 755 jLabelPassword.setEnabled( b ); 756 757 b = jRadioButtonJNDI.isSelected(); 758 759 jTextFieldServiceName.setEnabled( b ); 760 jLabelServiceName.setEnabled( b ); 761 762 b = jRadioButtonBean.isSelected(); 763 jTextFieldBeanName.setEnabled( b ); 764 jLabelBeanName.setEnabled( b ); 765 jTextFieldBeanMethod.setEnabled( b ); 766 jLabelBeanMethod.setEnabled( b ); 767 768 updateSaveButton(); 769 } 770 771 public boolean isDoNotStore() { 772 return doNotStore; 773 } 774 775 public void setDoNotStore(boolean doNotStore) { 776 this.doNotStore = doNotStore; 777 } 778 } 779 | Popular Tags |