1 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 ; 19 import java.util.List ; 20 import javax.swing.JOptionPane ; 21 import com.jaspersoft.jasperserver.irplugin.JServer; 22 import javax.swing.JPanel ; 23 24 28 public class ReportUnitRunDialog extends javax.swing.JDialog { 29 30 private int dialogResult = JOptionPane.CANCEL_OPTION; 31 private java.util.HashMap parametersValues = null; 32 private java.util.List inputControls = null; 33 private JServer server = null; 34 35 36 public ReportUnitRunDialog(java.awt.Frame parent, boolean modal) { 37 super(parent, modal); 38 initComponents(); 39 inputControls = new java.util.ArrayList (); 40 jScrollPane1.setViewportView( jPanelInputControls ); 41 42 Misc.centerFrame(this); 43 } 44 45 50 private void initComponents() { 52 java.awt.GridBagConstraints gridBagConstraints; 53 54 jPanelInputControls = new javax.swing.JPanel (); 55 jPanel1 = new javax.swing.JPanel (); 56 jLabel1 = new javax.swing.JLabel (); 57 jSeparator1 = new javax.swing.JSeparator (); 58 jPanel2 = new javax.swing.JPanel (); 59 jScrollPane1 = new javax.swing.JScrollPane (); 60 jSeparator4 = new javax.swing.JSeparator (); 61 jPanel4 = new javax.swing.JPanel (); 62 jButtonSave = new javax.swing.JButton (); 63 jButtonClose = new javax.swing.JButton (); 64 65 jPanelInputControls.setLayout(new java.awt.GridBagLayout ()); 66 67 jPanelInputControls.setMaximumSize(new java.awt.Dimension (450, 2147483647)); 68 jPanelInputControls.setMinimumSize(new java.awt.Dimension (50, 10)); 69 70 getContentPane().setLayout(new java.awt.GridBagLayout ()); 71 72 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 73 setTitle("Report unit"); 74 jPanel1.setLayout(new java.awt.GridBagLayout ()); 75 76 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 77 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 78 jLabel1.setIcon(new javax.swing.ImageIcon (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 (); 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 (); 89 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 90 getContentPane().add(jPanel1, gridBagConstraints); 91 92 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 93 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 94 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 101 102 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 103 jScrollPane1.setBorder(null); 104 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (0, 2)); 112 gridBagConstraints = new java.awt.GridBagConstraints (); 113 gridBagConstraints.gridx = 0; 114 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 115 gridBagConstraints.weightx = 1.0; 116 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 117 jPanel2.add(jSeparator4, gridBagConstraints); 118 119 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 127 128 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 129 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 130 jButtonSave.setText("Run report"); 131 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 132 public void actionPerformed(java.awt.event.ActionEvent evt) { 133 jButtonSaveActionPerformed(evt); 134 } 135 }); 136 137 gridBagConstraints = new java.awt.GridBagConstraints (); 138 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 139 gridBagConstraints.weightx = 1.0; 140 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 141 jPanel4.add(jButtonSave, gridBagConstraints); 142 143 jButtonClose.setText("Cancel"); 144 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 145 public void actionPerformed(java.awt.event.ActionEvent evt) { 146 jButtonCloseActionPerformed(evt); 147 } 148 }); 149 150 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 151 152 gridBagConstraints = new java.awt.GridBagConstraints (); 153 gridBagConstraints.gridx = 0; 154 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 155 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 156 getContentPane().add(jPanel4, gridBagConstraints); 157 158 pack(); 159 } 161 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 163 this.setVisible(false); 164 this.dispose(); 165 } 167 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 169 java.util.HashMap newSuggestedValues = new java.util.HashMap (); 170 try { 171 parametersValues = new java.util.HashMap (); 172 for (int i=0; i<inputControls.size(); ++i) 173 { 174 BasicInputControl ic = (BasicInputControl)inputControls.get(i); 175 Object val = ic.validate(); 176 if (val != null) 177 { 178 newSuggestedValues.put( ic.getInputControl().getName(), val); 179 if (val instanceof java.util.Date ) 180 { 181 val = ""+ ((java.util.Date )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 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 } 215 public int getDialogResult() { 216 return dialogResult; 217 } 218 219 public void setDialogResult(int dialogResult) { 220 this.dialogResult = dialogResult; 221 } 222 223 226 public void setInputControls(java.util.List 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 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 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 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 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 gridBagConstraints = new java.awt.GridBagConstraints (); 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 gridBagConstraints2 = new java.awt.GridBagConstraints (); 315 gridBagConstraints2.gridx = 0; 316 gridBagConstraints2.weighty = 1.0; 317 gridBagConstraints2.weightx = 1.0; 318 JPanel spacer = new JPanel (); 319 spacer.setPreferredSize(new java.awt.Dimension (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 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 private javax.swing.JButton jButtonClose; 343 private javax.swing.JButton jButtonSave; 344 private javax.swing.JLabel jLabel1; 345 private javax.swing.JPanel jPanel1; 346 private javax.swing.JPanel jPanel2; 347 private javax.swing.JPanel jPanel4; 348 private javax.swing.JPanel jPanelInputControls; 349 private javax.swing.JScrollPane jScrollPane1; 350 private javax.swing.JSeparator jSeparator1; 351 private javax.swing.JSeparator jSeparator4; 352 } 354 | Popular Tags |