KickJava   Java API By Example, From Geeks To Geeks.

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


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.ListItem;
10 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor;
11 import com.jaspersoft.jasperserver.irplugin.RepositoryFolder;
12 import java.io.File JavaDoc;
13 import java.math.BigDecimal JavaDoc;
14 import java.util.List JavaDoc;
15 import java.util.regex.Pattern JavaDoc;
16 import javax.swing.DefaultListSelectionModel JavaDoc;
17 import javax.swing.JOptionPane JavaDoc;
18 import com.jaspersoft.jasperserver.irplugin.JServer;
19 import javax.swing.table.DefaultTableModel JavaDoc;
20
21 /**
22  *
23  * @author gtoffoli
24  */

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

40     public QueryDialog(java.awt.Frame JavaDoc parent, boolean modal) {
41         super(parent, modal);
42         initComponents();
43         
44         it.businesslogic.ireport.util.Misc.centerFrame(this);
45         javax.swing.event.DocumentListener JavaDoc changesListener = new javax.swing.event.DocumentListener JavaDoc() {
46             public void changedUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
47                 updateSaveButton();
48             }
49             public void insertUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
50                 updateSaveButton();
51             }
52             public void removeUpdate(javax.swing.event.DocumentEvent JavaDoc evt) {
53                 updateSaveButton();
54             }
55         };
56         
57         this.jTextFieldLabel.getDocument().addDocumentListener(changesListener);
58         this.jTextFieldName.getDocument().addDocumentListener(changesListener);
59         jTextFieldName.requestFocusInWindow();
60
61         jTextAreaSql.getDocument().addDocumentListener(changesListener);
62     }
63     
64     
65     private void updateSaveButton()
66     {
67         if (jTextFieldLabel.getText().length() > 0 &&
68             jTextFieldName.getText().length() > 0 &&
69             jTextAreaSql.getText().length() > 0)
70         {
71             jButtonSave.setEnabled(true);
72         }
73         else
74         {
75             jButtonSave.setEnabled(false);
76         }
77     }
78     
79     /** This method is called from within the constructor to
80      * initialize the form.
81      * WARNING: Do NOT modify this code. The content of this method is
82      * always regenerated by the Form Editor.
83      */

84     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
85
private void initComponents() {
86         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
87
88         buttonGroup1 = new javax.swing.ButtonGroup JavaDoc();
89         jPanel1 = new javax.swing.JPanel JavaDoc();
90         jLabel1 = new javax.swing.JLabel JavaDoc();
91         jSeparator1 = new javax.swing.JSeparator JavaDoc();
92         jTabbedPane1 = new javax.swing.JTabbedPane JavaDoc();
93         jPanel2 = new javax.swing.JPanel JavaDoc();
94         jLabelUriString = new javax.swing.JLabel JavaDoc();
95         jTextFieldUriString = new javax.swing.JTextField JavaDoc();
96         jLabelName = new javax.swing.JLabel JavaDoc();
97         jTextFieldName = new javax.swing.JTextField JavaDoc();
98         jSeparator2 = new javax.swing.JSeparator JavaDoc();
99         jLabelLabel = new javax.swing.JLabel JavaDoc();
100         jTextFieldLabel = new javax.swing.JTextField JavaDoc();
101         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
102         jEditorPaneDescription = new javax.swing.JEditorPane JavaDoc();
103         jLabelDescription = new javax.swing.JLabel JavaDoc();
104         jPanel3 = new javax.swing.JPanel JavaDoc();
105         jLabel2 = new javax.swing.JLabel JavaDoc();
106         jScrollPane2 = new javax.swing.JScrollPane JavaDoc();
107         jTextAreaSql = new javax.swing.JTextArea JavaDoc();
108         jPanel4 = new javax.swing.JPanel JavaDoc();
109         jButtonSave = new javax.swing.JButton JavaDoc();
110         jButtonClose = new javax.swing.JButton JavaDoc();
111
112         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
113
114         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
115         setTitle("Data Type");
116         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
117
118         jPanel1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
119         jLabel1.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 12));
120         jLabel1.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_new.png")));
121         jLabel1.setText("Query");
122         jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
123         jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
124         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
125         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
126         gridBagConstraints.weightx = 1.0;
127         gridBagConstraints.weighty = 1.0;
128         jPanel1.add(jLabel1, gridBagConstraints);
129
130         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
131         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
132         getContentPane().add(jPanel1, gridBagConstraints);
133
134         jSeparator1.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
135         jSeparator1.setPreferredSize(new java.awt.Dimension JavaDoc(2, 2));
136         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
137         gridBagConstraints.gridx = 0;
138         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
139         gridBagConstraints.weightx = 1.0;
140         getContentPane().add(jSeparator1, gridBagConstraints);
141
142         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
143
144         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(400, 185));
145         jLabelUriString.setText("Parent folder");
146         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
147         gridBagConstraints.gridx = 0;
148         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
149         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
150         jPanel2.add(jLabelUriString, gridBagConstraints);
151
152         jTextFieldUriString.setEditable(false);
153         jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
154         jTextFieldUriString.setOpaque(false);
155         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
156         gridBagConstraints.gridx = 1;
157         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
158         gridBagConstraints.weightx = 1.0;
159         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
160         jPanel2.add(jTextFieldUriString, gridBagConstraints);
161
162         jLabelName.setText("Name");
163         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
164         gridBagConstraints.gridx = 0;
165         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
166         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
167         jPanel2.add(jLabelName, gridBagConstraints);
168
169         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
170         gridBagConstraints.gridx = 1;
171         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
172         gridBagConstraints.weightx = 1.0;
173         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
174         jPanel2.add(jTextFieldName, gridBagConstraints);
175
176         jSeparator2.setMinimumSize(new java.awt.Dimension JavaDoc(0, 2));
177         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
178         gridBagConstraints.gridx = 0;
179         gridBagConstraints.gridwidth = 2;
180         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
181         gridBagConstraints.weightx = 1.0;
182         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 6, 4);
183         jPanel2.add(jSeparator2, gridBagConstraints);
184
185         jLabelLabel.setText("Label");
186         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
187         gridBagConstraints.gridx = 0;
188         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
189         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
190         jPanel2.add(jLabelLabel, gridBagConstraints);
191
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(jTextFieldLabel, gridBagConstraints);
198
199         jScrollPane1.setViewportView(jEditorPaneDescription);
200
201         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
202         gridBagConstraints.gridx = 1;
203         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
204         gridBagConstraints.weightx = 1.0;
205         gridBagConstraints.weighty = 1.0;
206         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
207         jPanel2.add(jScrollPane1, gridBagConstraints);
208
209         jLabelDescription.setText("Description");
210         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
211         gridBagConstraints.gridx = 0;
212         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
213         gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
214         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 0, 4);
215         jPanel2.add(jLabelDescription, gridBagConstraints);
216
217         jTabbedPane1.addTab("General", jPanel2);
218
219         jPanel3.setLayout(new java.awt.GridBagLayout JavaDoc());
220
221         jLabel2.setText("SQL query");
222         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
223         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
224         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 2, 4);
225         jPanel3.add(jLabel2, gridBagConstraints);
226
227         jTextAreaSql.setColumns(20);
228         jTextAreaSql.setRows(5);
229         jScrollPane2.setViewportView(jTextAreaSql);
230
231         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
232         gridBagConstraints.gridx = 0;
233         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
234         gridBagConstraints.weightx = 1.0;
235         gridBagConstraints.weighty = 1.0;
236         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 4, 4);
237         jPanel3.add(jScrollPane2, gridBagConstraints);
238
239         jTabbedPane1.addTab("Query", jPanel3);
240
241         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
242         gridBagConstraints.gridx = 0;
243         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
244         gridBagConstraints.weightx = 1.0;
245         gridBagConstraints.weighty = 1.0;
246         getContentPane().add(jTabbedPane1, gridBagConstraints);
247
248         jPanel4.setLayout(new java.awt.GridBagLayout JavaDoc());
249
250         jPanel4.setMinimumSize(new java.awt.Dimension JavaDoc(10, 30));
251         jPanel4.setPreferredSize(new java.awt.Dimension JavaDoc(10, 30));
252         jButtonSave.setText("Save");
253         jButtonSave.setEnabled(false);
254         jButtonSave.addActionListener(new java.awt.event.ActionListener JavaDoc() {
255             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
256                 jButtonSaveActionPerformed(evt);
257             }
258         });
259
260         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
261         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
262         gridBagConstraints.weightx = 1.0;
263         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 4);
264         jPanel4.add(jButtonSave, gridBagConstraints);
265
266         jButtonClose.setText("Cancel");
267         jButtonClose.addActionListener(new java.awt.event.ActionListener JavaDoc() {
268             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
269                 jButtonCloseActionPerformed(evt);
270             }
271         });
272
273         jPanel4.add(jButtonClose, new java.awt.GridBagConstraints JavaDoc());
274
275         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
276         gridBagConstraints.gridx = 0;
277         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
278         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 0, 4);
279         getContentPane().add(jPanel4, gridBagConstraints);
280
281         pack();
282     }// </editor-fold>//GEN-END:initComponents
283

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

286         this.setVisible(false);
287         this.dispose();
288     }//GEN-LAST:event_jButtonCloseActionPerformed
289

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

292         
293         ResourceDescriptor rd = new ResourceDescriptor();
294         
295         rd.setDescription( jEditorPaneDescription.getText().trim() ); //getResource().getDescriptor().getDescription()
296
rd.setName( jTextFieldName.getText() );
297         String JavaDoc uri = getParentFolder();
298         if (!uri.endsWith("/")) uri = uri + "/";
299         uri += jTextFieldName.getText();
300         rd.setUriString( uri );
301         rd.setLabel(jTextFieldLabel.getText().trim() ); //getResource().getDescriptor().getLabel() );
302
rd.setParentFolder( getParentFolder() );
303         rd.setIsNew(resource == null);
304         
305         rd.setWsType( ResourceDescriptor.TYPE_QUERY);
306
307         rd.setSql( jTextAreaSql.getText() );
308         
309         
310         try {
311             
312             validate(rd);
313             if (!doNotStore)
314             {
315                 newResourceDescriptor = getServer().getWSClient().addOrModifyResource(rd, null);
316             }
317             else newResourceDescriptor = rd;
318             
319             setDialogResult(JOptionPane.OK_OPTION);
320             
321             if (resource != null)
322             {
323                 resource.setDescriptor(newResourceDescriptor);
324             }
325             
326             this.setVisible(false);
327             this.dispose();
328             
329         } catch (Exception JavaDoc ex) {
330             JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage());
331             ex.printStackTrace();
332             return;
333         }
334     }//GEN-LAST:event_jButtonSaveActionPerformed
335

336
337     public int getDialogResult() {
338         return dialogResult;
339     }
340                 
341     public void setDialogResult(int dialogResult) {
342         this.dialogResult = dialogResult;
343     }
344     
345     
346     public JServer getServer() {
347         return server;
348     }
349
350     public void setServer(JServer server) {
351         this.server = server;
352     }
353
354     public String JavaDoc getParentFolder() {
355         return parentFolder;
356     }
357
358     public void setParentFolder(String JavaDoc parentFolder) {
359         this.parentFolder = parentFolder;
360         this.jTextFieldUriString.setText(parentFolder);
361     }
362
363     public ResourceDescriptor getNewResourceDescriptor() {
364         return newResourceDescriptor;
365     }
366     
367     /**
368      * Call this method to modify the specified resource...
369      */

370     public void setResource(RepositoryFolder resource)
371     {
372         
373         this.resource = resource;
374         if (resource != null)
375         {
376             setResource(resource.getDescriptor());
377             jTextFieldName.setEditable(false);
378             jTextFieldName.setOpaque(false);
379         }
380     }
381     
382     
383     /**
384      * Call this method to modify the specified descriptor...
385      */

386     public void setResource(ResourceDescriptor descriptor)
387     {
388         
389         this.resource = resource;
390         jTextFieldName.setText( descriptor.getName());
391         
392         
393         jTextFieldLabel.setText( descriptor.getLabel());
394         jEditorPaneDescription.setText( descriptor.getDescription());
395         
396         jTextAreaSql.setText( (descriptor.getSql() != null) ? descriptor.getSql() : "" );
397     }
398     
399     // Variables declaration - do not modify//GEN-BEGIN:variables
400
private javax.swing.ButtonGroup JavaDoc buttonGroup1;
401     private javax.swing.JButton JavaDoc jButtonClose;
402     private javax.swing.JButton JavaDoc jButtonSave;
403     private javax.swing.JEditorPane JavaDoc jEditorPaneDescription;
404     private javax.swing.JLabel JavaDoc jLabel1;
405     private javax.swing.JLabel JavaDoc jLabel2;
406     private javax.swing.JLabel JavaDoc jLabelDescription;
407     private javax.swing.JLabel JavaDoc jLabelLabel;
408     private javax.swing.JLabel JavaDoc jLabelName;
409     private javax.swing.JLabel JavaDoc jLabelUriString;
410     private javax.swing.JPanel JavaDoc jPanel1;
411     private javax.swing.JPanel JavaDoc jPanel2;
412     private javax.swing.JPanel JavaDoc jPanel3;
413     private javax.swing.JPanel JavaDoc jPanel4;
414     private javax.swing.JScrollPane JavaDoc jScrollPane1;
415     private javax.swing.JScrollPane JavaDoc jScrollPane2;
416     private javax.swing.JSeparator JavaDoc jSeparator1;
417     private javax.swing.JSeparator JavaDoc jSeparator2;
418     private javax.swing.JTabbedPane JavaDoc jTabbedPane1;
419     private javax.swing.JTextArea JavaDoc jTextAreaSql;
420     private javax.swing.JTextField JavaDoc jTextFieldLabel;
421     private javax.swing.JTextField JavaDoc jTextFieldName;
422     private javax.swing.JTextField JavaDoc jTextFieldUriString;
423     // End of variables declaration//GEN-END:variables
424

425     
426    
427     /**
428      * This method valitates data. If something is wrong, an exception si thrown.
429      * The validation code was arranged by the web UI
430      */

431     public void validate(ResourceDescriptor dataType) throws Exception JavaDoc
432     {
433         
434     }
435     
436      public boolean isDoNotStore() {
437         return doNotStore;
438     }
439
440     public void setDoNotStore(boolean doNotStore) {
441         this.doNotStore = doNotStore;
442     }
443 }
444
Popular Tags