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.RepositoryFolder; 12 import java.io.File ; 13 import java.math.BigDecimal ; 14 import java.util.List ; 15 import java.util.regex.Pattern ; 16 import javax.swing.DefaultListSelectionModel ; 17 import javax.swing.JOptionPane ; 18 import com.jaspersoft.jasperserver.irplugin.JServer; 19 import javax.swing.table.DefaultTableModel ; 20 21 25 public class QueryDialog extends javax.swing.JDialog { 26 27 private int dialogResult = JOptionPane.CANCEL_OPTION; 28 29 private JServer server = null; 30 private String parentFolder = null; 31 private RepositoryFolder resource = null; 32 33 private ResourceDescriptor newResourceDescriptor = null; 34 35 private boolean doNotStore = false; 36 37 40 public QueryDialog(java.awt.Frame parent, boolean modal) { 41 super(parent, modal); 42 initComponents(); 43 44 it.businesslogic.ireport.util.Misc.centerFrame(this); 45 javax.swing.event.DocumentListener changesListener = new javax.swing.event.DocumentListener () { 46 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 47 updateSaveButton(); 48 } 49 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 50 updateSaveButton(); 51 } 52 public void removeUpdate(javax.swing.event.DocumentEvent 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 84 private void initComponents() { 86 java.awt.GridBagConstraints gridBagConstraints; 87 88 buttonGroup1 = new javax.swing.ButtonGroup (); 89 jPanel1 = new javax.swing.JPanel (); 90 jLabel1 = new javax.swing.JLabel (); 91 jSeparator1 = new javax.swing.JSeparator (); 92 jTabbedPane1 = new javax.swing.JTabbedPane (); 93 jPanel2 = new javax.swing.JPanel (); 94 jLabelUriString = new javax.swing.JLabel (); 95 jTextFieldUriString = new javax.swing.JTextField (); 96 jLabelName = new javax.swing.JLabel (); 97 jTextFieldName = new javax.swing.JTextField (); 98 jSeparator2 = new javax.swing.JSeparator (); 99 jLabelLabel = new javax.swing.JLabel (); 100 jTextFieldLabel = new javax.swing.JTextField (); 101 jScrollPane1 = new javax.swing.JScrollPane (); 102 jEditorPaneDescription = new javax.swing.JEditorPane (); 103 jLabelDescription = new javax.swing.JLabel (); 104 jPanel3 = new javax.swing.JPanel (); 105 jLabel2 = new javax.swing.JLabel (); 106 jScrollPane2 = new javax.swing.JScrollPane (); 107 jTextAreaSql = new javax.swing.JTextArea (); 108 jPanel4 = new javax.swing.JPanel (); 109 jButtonSave = new javax.swing.JButton (); 110 jButtonClose = new javax.swing.JButton (); 111 112 getContentPane().setLayout(new java.awt.GridBagLayout ()); 113 114 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 115 setTitle("Data Type"); 116 jPanel1.setLayout(new java.awt.GridBagLayout ()); 117 118 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 119 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 120 jLabel1.setIcon(new javax.swing.ImageIcon (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 (); 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 (); 131 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 132 getContentPane().add(jPanel1, gridBagConstraints); 133 134 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 135 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 136 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 143 144 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 145 jLabelUriString.setText("Parent folder"); 146 gridBagConstraints = new java.awt.GridBagConstraints (); 147 gridBagConstraints.gridx = 0; 148 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 149 gridBagConstraints.insets = new java.awt.Insets (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 (); 156 gridBagConstraints.gridx = 1; 157 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 158 gridBagConstraints.weightx = 1.0; 159 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 160 jPanel2.add(jTextFieldUriString, gridBagConstraints); 161 162 jLabelName.setText("Name"); 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridx = 0; 165 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 166 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 167 jPanel2.add(jLabelName, gridBagConstraints); 168 169 gridBagConstraints = new java.awt.GridBagConstraints (); 170 gridBagConstraints.gridx = 1; 171 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 172 gridBagConstraints.weightx = 1.0; 173 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 174 jPanel2.add(jTextFieldName, gridBagConstraints); 175 176 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 177 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (4, 4, 6, 4); 183 jPanel2.add(jSeparator2, gridBagConstraints); 184 185 jLabelLabel.setText("Label"); 186 gridBagConstraints = new java.awt.GridBagConstraints (); 187 gridBagConstraints.gridx = 0; 188 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 189 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 190 jPanel2.add(jLabelLabel, gridBagConstraints); 191 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(jTextFieldLabel, gridBagConstraints); 198 199 jScrollPane1.setViewportView(jEditorPaneDescription); 200 201 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (0, 4, 4, 4); 207 jPanel2.add(jScrollPane1, gridBagConstraints); 208 209 jLabelDescription.setText("Description"); 210 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (4, 4, 0, 4); 215 jPanel2.add(jLabelDescription, gridBagConstraints); 216 217 jTabbedPane1.addTab("General", jPanel2); 218 219 jPanel3.setLayout(new java.awt.GridBagLayout ()); 220 221 jLabel2.setText("SQL query"); 222 gridBagConstraints = new java.awt.GridBagConstraints (); 223 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 224 gridBagConstraints.insets = new java.awt.Insets (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 (); 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 (0, 4, 4, 4); 237 jPanel3.add(jScrollPane2, gridBagConstraints); 238 239 jTabbedPane1.addTab("Query", jPanel3); 240 241 gridBagConstraints = new java.awt.GridBagConstraints (); 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 ()); 249 250 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 251 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 252 jButtonSave.setText("Save"); 253 jButtonSave.setEnabled(false); 254 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 255 public void actionPerformed(java.awt.event.ActionEvent evt) { 256 jButtonSaveActionPerformed(evt); 257 } 258 }); 259 260 gridBagConstraints = new java.awt.GridBagConstraints (); 261 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 262 gridBagConstraints.weightx = 1.0; 263 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 264 jPanel4.add(jButtonSave, gridBagConstraints); 265 266 jButtonClose.setText("Cancel"); 267 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 268 public void actionPerformed(java.awt.event.ActionEvent evt) { 269 jButtonCloseActionPerformed(evt); 270 } 271 }); 272 273 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 274 275 gridBagConstraints = new java.awt.GridBagConstraints (); 276 gridBagConstraints.gridx = 0; 277 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 278 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 279 getContentPane().add(jPanel4, gridBagConstraints); 280 281 pack(); 282 } 284 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 286 this.setVisible(false); 287 this.dispose(); 288 } 290 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 292 293 ResourceDescriptor rd = new ResourceDescriptor(); 294 295 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 297 String uri = getParentFolder(); 298 if (!uri.endsWith("/")) uri = uri + "/"; 299 uri += jTextFieldName.getText(); 300 rd.setUriString( uri ); 301 rd.setLabel(jTextFieldLabel.getText().trim() ); 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 ex) { 330 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 331 ex.printStackTrace(); 332 return; 333 } 334 } 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 getParentFolder() { 355 return parentFolder; 356 } 357 358 public void setParentFolder(String parentFolder) { 359 this.parentFolder = parentFolder; 360 this.jTextFieldUriString.setText(parentFolder); 361 } 362 363 public ResourceDescriptor getNewResourceDescriptor() { 364 return newResourceDescriptor; 365 } 366 367 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 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 private javax.swing.ButtonGroup buttonGroup1; 401 private javax.swing.JButton jButtonClose; 402 private javax.swing.JButton jButtonSave; 403 private javax.swing.JEditorPane jEditorPaneDescription; 404 private javax.swing.JLabel jLabel1; 405 private javax.swing.JLabel jLabel2; 406 private javax.swing.JLabel jLabelDescription; 407 private javax.swing.JLabel jLabelLabel; 408 private javax.swing.JLabel jLabelName; 409 private javax.swing.JLabel jLabelUriString; 410 private javax.swing.JPanel jPanel1; 411 private javax.swing.JPanel jPanel2; 412 private javax.swing.JPanel jPanel3; 413 private javax.swing.JPanel jPanel4; 414 private javax.swing.JScrollPane jScrollPane1; 415 private javax.swing.JScrollPane jScrollPane2; 416 private javax.swing.JSeparator jSeparator1; 417 private javax.swing.JSeparator jSeparator2; 418 private javax.swing.JTabbedPane jTabbedPane1; 419 private javax.swing.JTextArea jTextAreaSql; 420 private javax.swing.JTextField jTextFieldLabel; 421 private javax.swing.JTextField jTextFieldName; 422 private javax.swing.JTextField jTextFieldUriString; 423 425 426 427 431 public void validate(ResourceDescriptor dataType) throws Exception 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 |