KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > irplugin > gui > DataSourceDialog


1 /*
2  * DataSourceDialog.java
3  *
4  * Created on April 22, 2006, 10:48 AM
5  */

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 JavaDoc;
15 import java.util.List JavaDoc;
16 import javax.swing.JOptionPane JavaDoc;
17 import com.jaspersoft.jasperserver.irplugin.JServer;
18
19 /**
20  *
21  * @author gtoffoli
22  */

23 public class DataSourceDialog extends javax.swing.JDialog JavaDoc {
24     
25     private int dialogResult = JOptionPane.CANCEL_OPTION;
26     
27     private JServer server = null;
28     private String JavaDoc parentFolder = null;
29     private RepositoryFolder datasourceResource = null;
30     
31     private ResourceDescriptor newResourceDescriptor = null;
32     
33     private boolean doNotStore = false;
34     
35     /**
36      * Creates new form DataSourceDialog
37      */

38     public DataSourceDialog(java.awt.Frame JavaDoc parent, boolean modal) {
39         super(parent, modal);
40         initComponents();
41         
42         it.businesslogic.ireport.util.Misc.centerFrame(this);
43         javax.swing.event.DocumentListener JavaDoc changesListener = new javax.swing.event.DocumentListener JavaDoc() {
44             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
45                 updateSaveButton();
46             }
47             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
48                 updateSaveButton();
49             }
50             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc 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     /** This method is called from within the constructor to
101      * initialize the form.
102      * WARNING: Do NOT modify this code. The content of this method is
103      * always regenerated by the Form Editor.
104      */

105     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
106
private void initComponents() {
107         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
108
109         buttonGroup1 = new javax.swing.ButtonGroup JavaDoc();
110         jPanel1 = new javax.swing.JPanel JavaDoc();
111         jLabel1 = new javax.swing.JLabel JavaDoc();
112         jSeparator1 = new javax.swing.JSeparator JavaDoc();
113         jTabbedPane1 = new javax.swing.JTabbedPane JavaDoc();
114         jPanel2 = new javax.swing.JPanel JavaDoc();
115         jLabelUriString = new javax.swing.JLabel JavaDoc();
116         jTextFieldUriString = new javax.swing.JTextField JavaDoc();
117         jLabelName = new javax.swing.JLabel JavaDoc();
118         jTextFieldName = new javax.swing.JTextField JavaDoc();
119         jSeparator2 = new javax.swing.JSeparator JavaDoc();
120         jLabelLabel = new javax.swing.JLabel JavaDoc();
121         jTextFieldLabel = new javax.swing.JTextField JavaDoc();
122         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
123         jEditorPaneDescription = new javax.swing.JEditorPane JavaDoc();
124         jLabelDescription = new javax.swing.JLabel JavaDoc();
125         jPanel3 = new javax.swing.JPanel JavaDoc();
126         jRadioButtonJDBC = new javax.swing.JRadioButton JavaDoc();
127         jLabelDriver = new javax.swing.JLabel JavaDoc();
128         jTextFieldDriver = new javax.swing.JTextField JavaDoc();
129         jLabelURL = new javax.swing.JLabel JavaDoc();
130         jTextFieldURL = new javax.swing.JTextField JavaDoc();
131         jLabelUsername = new javax.swing.JLabel JavaDoc();
132         jTextFieldUsername = new javax.swing.JTextField JavaDoc();
133         jLabelPassword = new javax.swing.JLabel JavaDoc();
134         jPasswordField = new javax.swing.JPasswordField JavaDoc();
135         jButtonImportConnection = new javax.swing.JButton JavaDoc();
136         jRadioButtonJNDI = new javax.swing.JRadioButton JavaDoc();
137         jLabelServiceName = new javax.swing.JLabel JavaDoc();
138         jTextFieldServiceName = new javax.swing.JTextField JavaDoc();
139         jPanel5 = new javax.swing.JPanel JavaDoc();
140         jRadioButtonBean = new javax.swing.JRadioButton JavaDoc();
141         jLabelBeanName = new javax.swing.JLabel JavaDoc();
142         jTextFieldBeanName = new javax.swing.JTextField JavaDoc();
143         jLabelBeanMethod = new javax.swing.JLabel JavaDoc();
144         jTextFieldBeanMethod = new javax.swing.JTextField JavaDoc();
145         jPanel4 = new javax.swing.JPanel JavaDoc();
146         jButtonSave = new javax.swing.JButton JavaDoc();
147         jButtonClose = new javax.swing.JButton JavaDoc();
148
149         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
150
151         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
152         setTitle("DataSource");
153         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
154
155         jPanel1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
156         jLabel1.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 12));
157         jLabel1.setIcon(new javax.swing.ImageIcon JavaDoc(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 JavaDoc();
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 JavaDoc();
168         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
169         getContentPane().add(jPanel1, gridBagConstraints);
170
171         jSeparator1.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
172         jSeparator1.setPreferredSize(new java.awt.Dimension JavaDoc(2, 2));
173         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc());
180
181         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(400, 185));
182         jLabelUriString.setText("Parent folder");
183         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
184         gridBagConstraints.gridx = 0;
185         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
186         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
193         gridBagConstraints.gridx = 1;
194         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
195         gridBagConstraints.weightx = 1.0;
196         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
197         jPanel2.add(jTextFieldUriString, gridBagConstraints);
198
199         jLabelName.setText("Name");
200         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
201         gridBagConstraints.gridx = 0;
202         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
203         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
204         jPanel2.add(jLabelName, gridBagConstraints);
205
206         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
207         gridBagConstraints.gridx = 1;
208         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
209         gridBagConstraints.weightx = 1.0;
210         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
211         jPanel2.add(jTextFieldName, gridBagConstraints);
212
213         jSeparator2.setMinimumSize(new java.awt.Dimension JavaDoc(0, 2));
214         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(4, 4, 6, 4);
220         jPanel2.add(jSeparator2, gridBagConstraints);
221
222         jLabelLabel.setText("Label");
223         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
224         gridBagConstraints.gridx = 0;
225         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
226         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
227         jPanel2.add(jLabelLabel, gridBagConstraints);
228
229         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
230         gridBagConstraints.gridx = 1;
231         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
232         gridBagConstraints.weightx = 1.0;
233         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
234         jPanel2.add(jTextFieldLabel, gridBagConstraints);
235
236         jScrollPane1.setViewportView(jEditorPaneDescription);
237
238         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 4, 4, 4);
244         jPanel2.add(jScrollPane1, gridBagConstraints);
245
246         jLabelDescription.setText("Description");
247         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(4, 4, 0, 4);
252         jPanel2.add(jLabelDescription, gridBagConstraints);
253
254         jTabbedPane1.addTab("General", jPanel2);
255
256         jPanel3.setLayout(new java.awt.GridBagLayout JavaDoc());
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 JavaDoc(0, 0, 0, 0));
262         jRadioButtonJDBC.addActionListener(new java.awt.event.ActionListener JavaDoc() {
263             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
264                 jRadioButtonJDBCActionPerformed(evt);
265             }
266         });
267
268         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
269         gridBagConstraints.gridwidth = 2;
270         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
271         gridBagConstraints.weightx = 1.0;
272         gridBagConstraints.insets = new java.awt.Insets JavaDoc(8, 8, 4, 4);
273         jPanel3.add(jRadioButtonJDBC, gridBagConstraints);
274
275         jLabelDriver.setText("Driver");
276         jLabelDriver.setEnabled(false);
277         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
278         gridBagConstraints.gridx = 0;
279         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
280         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 30, 4, 0);
281         jPanel3.add(jLabelDriver, gridBagConstraints);
282
283         jTextFieldDriver.setEnabled(false);
284         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
285         gridBagConstraints.gridx = 1;
286         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
287         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 8);
288         jPanel3.add(jTextFieldDriver, gridBagConstraints);
289
290         jLabelURL.setText("URL");
291         jLabelURL.setEnabled(false);
292         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
293         gridBagConstraints.gridx = 0;
294         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
295         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 30, 4, 0);
296         jPanel3.add(jLabelURL, gridBagConstraints);
297
298         jTextFieldURL.setEnabled(false);
299         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
300         gridBagConstraints.gridx = 1;
301         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
302         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 8);
303         jPanel3.add(jTextFieldURL, gridBagConstraints);
304
305         jLabelUsername.setText("Username");
306         jLabelUsername.setEnabled(false);
307         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
308         gridBagConstraints.gridx = 0;
309         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
310         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 30, 4, 0);
311         jPanel3.add(jLabelUsername, gridBagConstraints);
312
313         jTextFieldUsername.setEnabled(false);
314         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
315         gridBagConstraints.gridx = 1;
316         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
317         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 8);
318         jPanel3.add(jTextFieldUsername, gridBagConstraints);
319
320         jLabelPassword.setText("Password");
321         jLabelPassword.setEnabled(false);
322         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
323         gridBagConstraints.gridx = 0;
324         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
325         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 30, 4, 0);
326         jPanel3.add(jLabelPassword, gridBagConstraints);
327
328         jPasswordField.setEnabled(false);
329         jPasswordField.setMinimumSize(new java.awt.Dimension JavaDoc(11, 19));
330         jPasswordField.setPreferredSize(new java.awt.Dimension JavaDoc(11, 19));
331         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
332         gridBagConstraints.gridx = 1;
333         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
334         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc() {
340             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
341                 jButtonImportConnectionActionPerformed(evt);
342             }
343         });
344
345         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
346         gridBagConstraints.gridx = 1;
347         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
348         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc(0, 0, 0, 0));
356         jRadioButtonJNDI.addActionListener(new java.awt.event.ActionListener JavaDoc() {
357             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
358                 jRadioButtonJNDIActionPerformed(evt);
359             }
360         });
361
362         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(16, 8, 4, 4);
368         jPanel3.add(jRadioButtonJNDI, gridBagConstraints);
369
370         jLabelServiceName.setText("Service Name");
371         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
372         gridBagConstraints.gridx = 0;
373         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
374         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 30, 4, 0);
375         jPanel3.add(jLabelServiceName, gridBagConstraints);
376
377         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
378         gridBagConstraints.gridx = 1;
379         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
380         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 8);
381         jPanel3.add(jTextFieldServiceName, gridBagConstraints);
382
383         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 0, 0, 0));
392         jRadioButtonBean.addActionListener(new java.awt.event.ActionListener JavaDoc() {
393             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
394                 jRadioButtonJNDIActionPerformed1(evt);
395             }
396         });
397
398         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(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 JavaDoc();
409         gridBagConstraints.gridx = 0;
410         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
411         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
417         gridBagConstraints.gridx = 1;
418         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
419         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
425         gridBagConstraints.gridx = 0;
426         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
427         gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
433         gridBagConstraints.gridx = 1;
434         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
435         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 8);
436         jPanel3.add(jTextFieldBeanMethod, gridBagConstraints);
437
438         jTabbedPane1.addTab("Datasource details", jPanel3);
439
440         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc());
448
449         jPanel4.setMinimumSize(new java.awt.Dimension JavaDoc(10, 30));
450         jPanel4.setPreferredSize(new java.awt.Dimension JavaDoc(10, 30));
451         jButtonSave.setText("Save");
452         jButtonSave.setEnabled(false);
453         jButtonSave.addActionListener(new java.awt.event.ActionListener JavaDoc() {
454             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
455                 jButtonSaveActionPerformed(evt);
456             }
457         });
458
459         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
460         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
461         gridBagConstraints.weightx = 1.0;
462         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 4);
463         jPanel4.add(jButtonSave, gridBagConstraints);
464
465         jButtonClose.setText("Cancel");
466         jButtonClose.addActionListener(new java.awt.event.ActionListener JavaDoc() {
467             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
468                 jButtonCloseActionPerformed(evt);
469             }
470         });
471
472         jPanel4.add(jButtonClose, new java.awt.GridBagConstraints JavaDoc());
473
474         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
475         gridBagConstraints.gridx = 0;
476         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
477         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 0, 4);
478         getContentPane().add(jPanel4, gridBagConstraints);
479
480         pack();
481     }// </editor-fold>//GEN-END:initComponents
482

483     private void jRadioButtonJNDIActionPerformed1(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButtonJNDIActionPerformed1
484
updateDatasourceType();
485     }//GEN-LAST:event_jRadioButtonJNDIActionPerformed1
486

487     private void jRadioButtonJDBCActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButtonJDBCActionPerformed
488
updateDatasourceType();
489     }//GEN-LAST:event_jRadioButtonJDBCActionPerformed
490

491     private void jButtonImportConnectionActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonImportConnectionActionPerformed
492

493         java.util.Vector JavaDoc iReportConnections = MainFrame.getMainInstance().getConnections();
494         
495         java.util.Vector JavaDoc validConnections = new java.util.Vector JavaDoc();
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     }//GEN-LAST:event_jButtonImportConnectionActionPerformed
525

526     private void jRadioButtonJNDIActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jRadioButtonJNDIActionPerformed
527

528         updateDatasourceType();
529     }//GEN-LAST:event_jRadioButtonJNDIActionPerformed
530

531     private void jButtonCloseActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonCloseActionPerformed
532

533         this.setVisible(false);
534         this.dispose();
535     }//GEN-LAST:event_jButtonCloseActionPerformed
536

537     private void jButtonSaveActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonSaveActionPerformed
538

539         
540         ResourceDescriptor rd = new ResourceDescriptor();
541         
542         rd.setDescription( jEditorPaneDescription.getText().trim() ); //getResource().getDescriptor().getDescription()
543
rd.setName( jTextFieldName.getText() );
544         String JavaDoc uri = getParentFolder();
545         if (!uri.endsWith("/")) uri = uri + "/";
546         uri += jTextFieldName.getText();
547         rd.setUriString( uri );
548         rd.setLabel(jTextFieldLabel.getText().trim() ); //getResource().getDescriptor().getLabel() );
549
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 JavaDoc(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 JavaDoc ex) {
592             JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage());
593             ex.printStackTrace();
594             return;
595         }
596     }//GEN-LAST:event_jButtonSaveActionPerformed
597

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 JavaDoc getParentFolder() {
617         return parentFolder;
618     }
619
620     public void setParentFolder(String JavaDoc parentFolder) {
621         this.parentFolder = parentFolder;
622         this.jTextFieldUriString.setText(parentFolder);
623     }
624
625     public ResourceDescriptor getNewResourceDescriptor() {
626         return newResourceDescriptor;
627     }
628     
629     /**
630      * Call this method to modify the specified resource...
631      */

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     /**
644      * Call this method to modify the specified resource...
645      */

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     // Variables declaration - do not modify//GEN-BEGIN:variables
701
private javax.swing.ButtonGroup JavaDoc buttonGroup1;
702     private javax.swing.JButton JavaDoc jButtonClose;
703     private javax.swing.JButton JavaDoc jButtonImportConnection;
704     private javax.swing.JButton JavaDoc jButtonSave;
705     private javax.swing.JEditorPane JavaDoc jEditorPaneDescription;
706     private javax.swing.JLabel JavaDoc jLabel1;
707     private javax.swing.JLabel JavaDoc jLabelBeanMethod;
708     private javax.swing.JLabel JavaDoc jLabelBeanName;
709     private javax.swing.JLabel JavaDoc jLabelDescription;
710     private javax.swing.JLabel JavaDoc jLabelDriver;
711     private javax.swing.JLabel JavaDoc jLabelLabel;
712     private javax.swing.JLabel JavaDoc jLabelName;
713     private javax.swing.JLabel JavaDoc jLabelPassword;
714     private javax.swing.JLabel JavaDoc jLabelServiceName;
715     private javax.swing.JLabel JavaDoc jLabelURL;
716     private javax.swing.JLabel JavaDoc jLabelUriString;
717     private javax.swing.JLabel JavaDoc jLabelUsername;
718     private javax.swing.JPanel JavaDoc jPanel1;
719     private javax.swing.JPanel JavaDoc jPanel2;
720     private javax.swing.JPanel JavaDoc jPanel3;
721     private javax.swing.JPanel JavaDoc jPanel4;
722     private javax.swing.JPanel JavaDoc jPanel5;
723     private javax.swing.JPasswordField JavaDoc jPasswordField;
724     private javax.swing.JRadioButton JavaDoc jRadioButtonBean;
725     private javax.swing.JRadioButton JavaDoc jRadioButtonJDBC;
726     private javax.swing.JRadioButton JavaDoc jRadioButtonJNDI;
727     private javax.swing.JScrollPane JavaDoc jScrollPane1;
728     private javax.swing.JSeparator JavaDoc jSeparator1;
729     private javax.swing.JSeparator JavaDoc jSeparator2;
730     private javax.swing.JTabbedPane JavaDoc jTabbedPane1;
731     private javax.swing.JTextField JavaDoc jTextFieldBeanMethod;
732     private javax.swing.JTextField JavaDoc jTextFieldBeanName;
733     private javax.swing.JTextField JavaDoc jTextFieldDriver;
734     private javax.swing.JTextField JavaDoc jTextFieldLabel;
735     private javax.swing.JTextField JavaDoc jTextFieldName;
736     private javax.swing.JTextField JavaDoc jTextFieldServiceName;
737     private javax.swing.JTextField JavaDoc jTextFieldURL;
738     private javax.swing.JTextField JavaDoc jTextFieldUriString;
739     private javax.swing.JTextField JavaDoc jTextFieldUsername;
740     // End of variables declaration//GEN-END:variables
741

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