KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * NewReportUnitDialog.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.gui.inputcontrols.BasicInputControl;
12 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.BooleanInputControl;
13 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.InputValidationException;
14 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.ListInputControl;
15 import com.jaspersoft.jasperserver.irplugin.gui.inputcontrols.MultiColumnListInputControl;
16 import it.businesslogic.ireport.gui.MainFrame;
17 import it.businesslogic.ireport.util.Misc;
18 import java.io.File JavaDoc;
19 import java.util.List JavaDoc;
20 import javax.swing.JOptionPane JavaDoc;
21 import com.jaspersoft.jasperserver.irplugin.JServer;
22 import javax.swing.JPanel JavaDoc;
23
24 /**
25  *
26  * @author gtoffoli
27  */

28 public class ReportUnitRunDialog extends javax.swing.JDialog JavaDoc {
29     
30     private int dialogResult = JOptionPane.CANCEL_OPTION;
31     private java.util.HashMap JavaDoc parametersValues = null;
32     private java.util.List JavaDoc inputControls = null;
33     private JServer server = null;
34     
35     /** Creates new form NewReportUnitDialog */
36     public ReportUnitRunDialog(java.awt.Frame JavaDoc parent, boolean modal) {
37         super(parent, modal);
38         initComponents();
39         inputControls = new java.util.ArrayList JavaDoc();
40         jScrollPane1.setViewportView( jPanelInputControls );
41         
42         Misc.centerFrame(this);
43     }
44     
45     /** This method is called from within the constructor to
46      * initialize the form.
47      * WARNING: Do NOT modify this code. The content of this method is
48      * always regenerated by the Form Editor.
49      */

50     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
51
private void initComponents() {
52         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
53
54         jPanelInputControls = new javax.swing.JPanel JavaDoc();
55         jPanel1 = new javax.swing.JPanel JavaDoc();
56         jLabel1 = new javax.swing.JLabel JavaDoc();
57         jSeparator1 = new javax.swing.JSeparator JavaDoc();
58         jPanel2 = new javax.swing.JPanel JavaDoc();
59         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
60         jSeparator4 = new javax.swing.JSeparator JavaDoc();
61         jPanel4 = new javax.swing.JPanel JavaDoc();
62         jButtonSave = new javax.swing.JButton JavaDoc();
63         jButtonClose = new javax.swing.JButton JavaDoc();
64
65         jPanelInputControls.setLayout(new java.awt.GridBagLayout JavaDoc());
66
67         jPanelInputControls.setMaximumSize(new java.awt.Dimension JavaDoc(450, 2147483647));
68         jPanelInputControls.setMinimumSize(new java.awt.Dimension JavaDoc(50, 10));
69
70         getContentPane().setLayout(new java.awt.GridBagLayout JavaDoc());
71
72         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
73         setTitle("Report unit");
74         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
75
76         jPanel1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
77         jLabel1.setFont(new java.awt.Font JavaDoc("Tahoma", 1, 12));
78         jLabel1.setIcon(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/documents_label.png")));
79         jLabel1.setText("Report parameters");
80         jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
81         jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
82         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
83         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
84         gridBagConstraints.weightx = 1.0;
85         gridBagConstraints.weighty = 1.0;
86         jPanel1.add(jLabel1, gridBagConstraints);
87
88         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
89         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
90         getContentPane().add(jPanel1, gridBagConstraints);
91
92         jSeparator1.setMinimumSize(new java.awt.Dimension JavaDoc(2, 2));
93         jSeparator1.setPreferredSize(new java.awt.Dimension JavaDoc(2, 2));
94         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
95         gridBagConstraints.gridx = 0;
96         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
97         gridBagConstraints.weightx = 1.0;
98         getContentPane().add(jSeparator1, gridBagConstraints);
99
100         jPanel2.setLayout(new java.awt.GridBagLayout JavaDoc());
101
102         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(400, 185));
103         jScrollPane1.setBorder(null);
104         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
105         gridBagConstraints.gridx = 0;
106         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
107         gridBagConstraints.weightx = 1.0;
108         gridBagConstraints.weighty = 1.0;
109         jPanel2.add(jScrollPane1, gridBagConstraints);
110
111         jSeparator4.setMinimumSize(new java.awt.Dimension JavaDoc(0, 2));
112         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
113         gridBagConstraints.gridx = 0;
114         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
115         gridBagConstraints.weightx = 1.0;
116         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 6, 4);
117         jPanel2.add(jSeparator4, gridBagConstraints);
118
119         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
120         gridBagConstraints.gridx = 0;
121         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
122         gridBagConstraints.weightx = 1.0;
123         gridBagConstraints.weighty = 1.0;
124         getContentPane().add(jPanel2, gridBagConstraints);
125
126         jPanel4.setLayout(new java.awt.GridBagLayout JavaDoc());
127
128         jPanel4.setMinimumSize(new java.awt.Dimension JavaDoc(10, 30));
129         jPanel4.setPreferredSize(new java.awt.Dimension JavaDoc(10, 30));
130         jButtonSave.setText("Run report");
131         jButtonSave.addActionListener(new java.awt.event.ActionListener JavaDoc() {
132             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
133                 jButtonSaveActionPerformed(evt);
134             }
135         });
136
137         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
138         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
139         gridBagConstraints.weightx = 1.0;
140         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 4);
141         jPanel4.add(jButtonSave, gridBagConstraints);
142
143         jButtonClose.setText("Cancel");
144         jButtonClose.addActionListener(new java.awt.event.ActionListener JavaDoc() {
145             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
146                 jButtonCloseActionPerformed(evt);
147             }
148         });
149
150         jPanel4.add(jButtonClose, new java.awt.GridBagConstraints JavaDoc());
151
152         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
153         gridBagConstraints.gridx = 0;
154         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
155         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 4, 0, 4);
156         getContentPane().add(jPanel4, gridBagConstraints);
157
158         pack();
159     }// </editor-fold>//GEN-END:initComponents
160

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

163         this.setVisible(false);
164         this.dispose();
165     }//GEN-LAST:event_jButtonCloseActionPerformed
166

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

169         java.util.HashMap JavaDoc newSuggestedValues = new java.util.HashMap JavaDoc();
170         try {
171             parametersValues = new java.util.HashMap JavaDoc();
172             for (int i=0; i<inputControls.size(); ++i)
173             {
174                 BasicInputControl ic = (BasicInputControl)inputControls.get(i);
175                 Object JavaDoc val = ic.validate();
176                 if (val != null)
177                 {
178                     newSuggestedValues.put( ic.getInputControl().getName(), val);
179                     if (val instanceof java.util.Date JavaDoc)
180                     {
181                         val = ""+ ((java.util.Date JavaDoc)val).getTime();
182                     }
183                     parametersValues.put( ic.getInputControl().getName(), ""+val);
184                 }
185                 else
186                 {
187                     if (ic.getInputControl().isMandatory())
188                     {
189                          throw new InputValidationException("" + ic.getInputControl().getLabel() + " is a mandatory parameter!");
190                     }
191                 }
192             }
193         } catch (InputValidationException ex)
194         {
195             JOptionPane.showMessageDialog(MainFrame.getMainInstance(),ex.getMessage());
196             ex.printStackTrace();
197             return;
198         }
199         
200         for (int i=0; i<newSuggestedValues.size(); ++i)
201         {
202                BasicInputControl ic = (BasicInputControl)inputControls.get(i);
203                Object JavaDoc val = newSuggestedValues.get( ic.getInputControl().getName() );
204                if (val != null)
205                {
206                    ic.addHistoryValue( ic.getInputControl().getUriString(), val );
207                }
208         }
209         
210         this.setDialogResult(JOptionPane.OK_OPTION);
211         this.setVisible(false);
212         this.dispose();
213     }//GEN-LAST:event_jButtonSaveActionPerformed
214

215     public int getDialogResult() {
216         return dialogResult;
217     }
218
219     public void setDialogResult(int dialogResult) {
220         this.dialogResult = dialogResult;
221     }
222
223     /**
224      * inputControlsDescriptors = a list of ibnput control descriptors
225      */

226     public void setInputControls(java.util.List JavaDoc inputControlsDescriptors)
227     {
228         if (inputControlsDescriptors == null) return;
229         inputControls.clear();
230         
231         for (int i=0; i<inputControlsDescriptors.size(); ++i)
232         {
233             ResourceDescriptor rd = (ResourceDescriptor)inputControlsDescriptors.get(i);
234             if (rd.getControlType() == rd.IC_TYPE_SINGLE_VALUE)
235             {
236                 BasicInputControl bic = new BasicInputControl();
237                 
238                 ResourceDescriptor rdDataType = (ResourceDescriptor)rd.getChildren().get(0);
239                 
240                 if (rdDataType.getWsType().equals(ResourceDescriptor.TYPE_REFERENCE))
241                 {
242                     ResourceDescriptor tmpRd = new ResourceDescriptor();
243                        tmpRd.setUriString(rdDataType.getReferenceUri());
244                     try {
245                         rdDataType = this.getServer().getWSClient().get(tmpRd, null);
246                     } catch (Exception JavaDoc ex)
247                     {
248                         JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage());
249                         ex.printStackTrace();
250                     }
251                 }
252                
253                 
254                 bic.setInputControl(rd, rdDataType);
255                 inputControls.add(bic);
256             }
257             else if (rd.getControlType() == rd.IC_TYPE_BOOLEAN)
258             {
259                 BooleanInputControl bic = new BooleanInputControl();
260                 bic.setInputControl(rd);
261                 inputControls.add(bic);
262             }
263             else if (rd.getControlType() == rd.IC_TYPE_SINGLE_SELECT_LIST_OF_VALUES)
264             {
265                 ListInputControl bic = new ListInputControl();
266                 ResourceDescriptor rd2 = (ResourceDescriptor)rd.getChildren().get(0);
267                 List JavaDoc items = null;
268
269                 if (rd2.getWsType().equals(ResourceDescriptor.TYPE_REFERENCE))
270                 {
271                     ResourceDescriptor tmpRd = new ResourceDescriptor();
272                        tmpRd.setUriString(rd2.getReferenceUri());
273                     try {
274                         tmpRd = this.getServer().getWSClient().get(tmpRd, null);
275                         items = tmpRd.getListOfValues();
276                     } catch (Exception JavaDoc ex)
277                     {
278                         JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage());
279                         ex.printStackTrace();
280                     }
281                 }
282                 else
283                 {
284                     items = ((ResourceDescriptor)rd.getChildren().get(0)).getListOfValues();
285                 }
286                 bic.setInputControl(rd, items);
287                 inputControls.add(bic);
288             }
289             else if (rd.getControlType() == rd.IC_TYPE_SINGLE_SELECT_QUERY)
290             {
291                 MultiColumnListInputControl bic = new MultiColumnListInputControl();
292                 ResourceDescriptor rd2 = (ResourceDescriptor)rd.getChildren().get(0);
293                 List JavaDoc items = null;
294
295                 bic.setInputControl(rd, rd.getQueryData());
296                 
297                 inputControls.add(bic);
298             }
299         }
300         
301         int height = 0;
302         for (int i=0; i<inputControls.size(); ++i)
303         {
304             BasicInputControl ic = (BasicInputControl)inputControls.get(i);
305             java.awt.GridBagConstraints JavaDoc gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
306             gridBagConstraints.gridx = 0;
307             gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
308             gridBagConstraints.weightx = 1.0;
309             jPanelInputControls.add(ic.getUI(), gridBagConstraints);
310             
311             height += ic.getUI().getPreferredSize().height;
312         }
313         
314         java.awt.GridBagConstraints JavaDoc gridBagConstraints2 = new java.awt.GridBagConstraints JavaDoc();
315         gridBagConstraints2.gridx = 0;
316         gridBagConstraints2.weighty = 1.0;
317         gridBagConstraints2.weightx = 1.0;
318         JPanel JavaDoc spacer = new JPanel JavaDoc();
319         spacer.setPreferredSize(new java.awt.Dimension JavaDoc(1,1));
320         jPanelInputControls.add(spacer, gridBagConstraints2);
321
322         jPanelInputControls.setSize( 50, height);
323             
324         jPanelInputControls.doLayout();
325         jPanelInputControls.updateUI();
326     }
327     
328     public java.util.Map JavaDoc getParametersValues()
329     {
330         return parametersValues;
331     }
332
333     public JServer getServer() {
334         return server;
335     }
336
337     public void setServer(JServer server) {
338         this.server = server;
339     }
340  
341     // Variables declaration - do not modify//GEN-BEGIN:variables
342
private javax.swing.JButton JavaDoc jButtonClose;
343     private javax.swing.JButton JavaDoc jButtonSave;
344     private javax.swing.JLabel JavaDoc jLabel1;
345     private javax.swing.JPanel JavaDoc jPanel1;
346     private javax.swing.JPanel JavaDoc jPanel2;
347     private javax.swing.JPanel JavaDoc jPanel4;
348     private javax.swing.JPanel JavaDoc jPanelInputControls;
349     private javax.swing.JScrollPane JavaDoc jScrollPane1;
350     private javax.swing.JSeparator JavaDoc jSeparator1;
351     private javax.swing.JSeparator JavaDoc jSeparator4;
352     // End of variables declaration//GEN-END:variables
353
}
354
Popular Tags