1 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 it.businesslogic.ireport.gui.sheet.Tag; 15 import java.io.File ; 16 import java.math.BigDecimal ; 17 import java.util.List ; 18 import java.util.regex.Pattern ; 19 import javax.swing.JOptionPane ; 20 import com.jaspersoft.jasperserver.irplugin.JServer; 21 22 26 public class DataTypeDialog extends javax.swing.JDialog { 27 28 private int dialogResult = JOptionPane.CANCEL_OPTION; 29 30 private JServer server = null; 31 private String parentFolder = null; 32 private RepositoryFolder resource = null; 33 34 private ResourceDescriptor newResourceDescriptor = null; 35 36 private boolean doNotStore = false; 37 38 41 public DataTypeDialog(java.awt.Frame parent, boolean modal) { 42 super(parent, modal); 43 initComponents(); 44 45 it.businesslogic.ireport.util.Misc.centerFrame(this); 46 javax.swing.event.DocumentListener changesListener = new javax.swing.event.DocumentListener () { 47 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 48 updateSaveButton(); 49 } 50 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 51 updateSaveButton(); 52 } 53 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 54 updateSaveButton(); 55 } 56 }; 57 58 jComboBoxType.addItem( new it.businesslogic.ireport.gui.sheet.Tag("1","Text") ); 59 jComboBoxType.addItem( new it.businesslogic.ireport.gui.sheet.Tag("2","Number") ); 60 jComboBoxType.addItem( new it.businesslogic.ireport.gui.sheet.Tag("3","Date") ); 61 jComboBoxType.addItem( new it.businesslogic.ireport.gui.sheet.Tag("4","Date/time") ); 62 63 jComboBoxType.setSelectedIndex(0); 64 65 this.jTextFieldLabel.getDocument().addDocumentListener(changesListener); 66 this.jTextFieldName.getDocument().addDocumentListener(changesListener); 67 jTextFieldName.requestFocusInWindow(); 68 } 69 70 private void updateSaveButton() 71 { 72 if (jTextFieldLabel.getText().length() > 0 && 73 jTextFieldName.getText().length() > 0) 74 { 75 jButtonSave.setEnabled(true); 76 } 77 else 78 { 79 jButtonSave.setEnabled(false); 80 } 81 } 82 83 88 private void initComponents() { 90 java.awt.GridBagConstraints gridBagConstraints; 91 92 buttonGroup1 = new javax.swing.ButtonGroup (); 93 jPanel1 = new javax.swing.JPanel (); 94 jLabel1 = new javax.swing.JLabel (); 95 jSeparator1 = new javax.swing.JSeparator (); 96 jTabbedPane1 = new javax.swing.JTabbedPane (); 97 jPanel2 = new javax.swing.JPanel (); 98 jLabelUriString = new javax.swing.JLabel (); 99 jTextFieldUriString = new javax.swing.JTextField (); 100 jLabelName = new javax.swing.JLabel (); 101 jTextFieldName = new javax.swing.JTextField (); 102 jSeparator2 = new javax.swing.JSeparator (); 103 jLabelLabel = new javax.swing.JLabel (); 104 jTextFieldLabel = new javax.swing.JTextField (); 105 jScrollPane1 = new javax.swing.JScrollPane (); 106 jEditorPaneDescription = new javax.swing.JEditorPane (); 107 jLabelDescription = new javax.swing.JLabel (); 108 jPanel3 = new javax.swing.JPanel (); 109 jLabelType = new javax.swing.JLabel (); 110 jComboBoxType = new javax.swing.JComboBox (); 111 jLabelPattern = new javax.swing.JLabel (); 112 jTextFieldPattern = new javax.swing.JTextField (); 113 jLabelMinValue = new javax.swing.JLabel (); 114 jCheckBoxMinValue = new javax.swing.JCheckBox (); 115 jTextFieldMaxValue = new javax.swing.JTextField (); 116 jLabelMaxVal = new javax.swing.JLabel (); 117 jPanel5 = new javax.swing.JPanel (); 118 jCheckBoxMaxValue = new javax.swing.JCheckBox (); 119 jLabelStrictMinVal = new javax.swing.JLabel (); 120 jLabelStrictMaxVal = new javax.swing.JLabel (); 121 jTextFieldMinValue = new javax.swing.JTextField (); 122 jPanel4 = new javax.swing.JPanel (); 123 jButtonSave = new javax.swing.JButton (); 124 jButtonClose = new javax.swing.JButton (); 125 126 getContentPane().setLayout(new java.awt.GridBagLayout ()); 127 128 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 129 setTitle("Data Type"); 130 jPanel1.setLayout(new java.awt.GridBagLayout ()); 131 132 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 133 jLabel1.setFont(new java.awt.Font ("Tahoma", 1, 12)); 134 jLabel1.setIcon(new javax.swing.ImageIcon (getClass().getResource("/com/jaspersoft/jasperserver/irplugin/res/datasource_new.png"))); 135 jLabel1.setText("Data Type"); 136 jLabel1.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM); 137 jLabel1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); 138 gridBagConstraints = new java.awt.GridBagConstraints (); 139 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 140 gridBagConstraints.weightx = 1.0; 141 gridBagConstraints.weighty = 1.0; 142 jPanel1.add(jLabel1, gridBagConstraints); 143 144 gridBagConstraints = new java.awt.GridBagConstraints (); 145 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 146 getContentPane().add(jPanel1, gridBagConstraints); 147 148 jSeparator1.setMinimumSize(new java.awt.Dimension (2, 2)); 149 jSeparator1.setPreferredSize(new java.awt.Dimension (2, 2)); 150 gridBagConstraints = new java.awt.GridBagConstraints (); 151 gridBagConstraints.gridx = 0; 152 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 153 gridBagConstraints.weightx = 1.0; 154 getContentPane().add(jSeparator1, gridBagConstraints); 155 156 jPanel2.setLayout(new java.awt.GridBagLayout ()); 157 158 jPanel2.setPreferredSize(new java.awt.Dimension (400, 185)); 159 jLabelUriString.setText("Parent folder"); 160 gridBagConstraints = new java.awt.GridBagConstraints (); 161 gridBagConstraints.gridx = 0; 162 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 163 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 164 jPanel2.add(jLabelUriString, gridBagConstraints); 165 166 jTextFieldUriString.setEditable(false); 167 jTextFieldUriString.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 168 jTextFieldUriString.setOpaque(false); 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 (4, 4, 4, 4); 174 jPanel2.add(jTextFieldUriString, gridBagConstraints); 175 176 jLabelName.setText("Name"); 177 gridBagConstraints = new java.awt.GridBagConstraints (); 178 gridBagConstraints.gridx = 0; 179 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 180 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 181 jPanel2.add(jLabelName, gridBagConstraints); 182 183 gridBagConstraints = new java.awt.GridBagConstraints (); 184 gridBagConstraints.gridx = 1; 185 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 186 gridBagConstraints.weightx = 1.0; 187 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 188 jPanel2.add(jTextFieldName, gridBagConstraints); 189 190 jSeparator2.setMinimumSize(new java.awt.Dimension (0, 2)); 191 gridBagConstraints = new java.awt.GridBagConstraints (); 192 gridBagConstraints.gridx = 0; 193 gridBagConstraints.gridwidth = 2; 194 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 195 gridBagConstraints.weightx = 1.0; 196 gridBagConstraints.insets = new java.awt.Insets (4, 4, 6, 4); 197 jPanel2.add(jSeparator2, gridBagConstraints); 198 199 jLabelLabel.setText("Label"); 200 gridBagConstraints = new java.awt.GridBagConstraints (); 201 gridBagConstraints.gridx = 0; 202 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 203 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 204 jPanel2.add(jLabelLabel, gridBagConstraints); 205 206 gridBagConstraints = new java.awt.GridBagConstraints (); 207 gridBagConstraints.gridx = 1; 208 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 209 gridBagConstraints.weightx = 1.0; 210 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 211 jPanel2.add(jTextFieldLabel, gridBagConstraints); 212 213 jScrollPane1.setViewportView(jEditorPaneDescription); 214 215 gridBagConstraints = new java.awt.GridBagConstraints (); 216 gridBagConstraints.gridx = 1; 217 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 218 gridBagConstraints.weightx = 1.0; 219 gridBagConstraints.weighty = 1.0; 220 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 221 jPanel2.add(jScrollPane1, gridBagConstraints); 222 223 jLabelDescription.setText("Description"); 224 gridBagConstraints = new java.awt.GridBagConstraints (); 225 gridBagConstraints.gridx = 0; 226 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 227 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 228 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 229 jPanel2.add(jLabelDescription, gridBagConstraints); 230 231 jTabbedPane1.addTab("General", jPanel2); 232 233 jPanel3.setLayout(new java.awt.GridBagLayout ()); 234 235 jLabelType.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 236 jLabelType.setText("Type"); 237 gridBagConstraints = new java.awt.GridBagConstraints (); 238 gridBagConstraints.gridx = 0; 239 gridBagConstraints.gridy = 1; 240 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 241 gridBagConstraints.insets = new java.awt.Insets (8, 20, 4, 0); 242 jPanel3.add(jLabelType, gridBagConstraints); 243 244 gridBagConstraints = new java.awt.GridBagConstraints (); 245 gridBagConstraints.gridy = 1; 246 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 247 gridBagConstraints.weightx = 1.0; 248 gridBagConstraints.insets = new java.awt.Insets (8, 4, 4, 20); 249 jPanel3.add(jComboBoxType, gridBagConstraints); 250 251 jLabelPattern.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 252 jLabelPattern.setText("Pattern"); 253 gridBagConstraints = new java.awt.GridBagConstraints (); 254 gridBagConstraints.gridx = 0; 255 gridBagConstraints.gridy = 2; 256 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 257 gridBagConstraints.insets = new java.awt.Insets (0, 20, 16, 0); 258 jPanel3.add(jLabelPattern, gridBagConstraints); 259 260 gridBagConstraints = new java.awt.GridBagConstraints (); 261 gridBagConstraints.gridx = 1; 262 gridBagConstraints.gridy = 2; 263 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 264 gridBagConstraints.weightx = 0.8; 265 gridBagConstraints.insets = new java.awt.Insets (0, 4, 16, 20); 266 jPanel3.add(jTextFieldPattern, gridBagConstraints); 267 268 jLabelMinValue.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 269 jLabelMinValue.setText("Minimum value"); 270 gridBagConstraints = new java.awt.GridBagConstraints (); 271 gridBagConstraints.gridx = 0; 272 gridBagConstraints.gridy = 3; 273 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 274 gridBagConstraints.insets = new java.awt.Insets (0, 20, 4, 0); 275 jPanel3.add(jLabelMinValue, gridBagConstraints); 276 277 jCheckBoxMinValue.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 278 gridBagConstraints = new java.awt.GridBagConstraints (); 279 gridBagConstraints.gridx = 1; 280 gridBagConstraints.gridy = 4; 281 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 282 gridBagConstraints.insets = new java.awt.Insets (0, 4, 16, 20); 283 jPanel3.add(jCheckBoxMinValue, gridBagConstraints); 284 285 gridBagConstraints = new java.awt.GridBagConstraints (); 286 gridBagConstraints.gridx = 1; 287 gridBagConstraints.gridy = 5; 288 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 289 gridBagConstraints.weightx = 0.8; 290 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 20); 291 jPanel3.add(jTextFieldMaxValue, gridBagConstraints); 292 293 jLabelMaxVal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 294 jLabelMaxVal.setText("Maximum value"); 295 gridBagConstraints = new java.awt.GridBagConstraints (); 296 gridBagConstraints.gridx = 0; 297 gridBagConstraints.gridy = 5; 298 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 299 gridBagConstraints.insets = new java.awt.Insets (0, 20, 4, 0); 300 jPanel3.add(jLabelMaxVal, gridBagConstraints); 301 302 gridBagConstraints = new java.awt.GridBagConstraints (); 303 gridBagConstraints.gridx = 0; 304 gridBagConstraints.gridy = 99; 305 gridBagConstraints.weighty = 1.0; 306 jPanel3.add(jPanel5, gridBagConstraints); 307 308 jCheckBoxMaxValue.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 309 gridBagConstraints = new java.awt.GridBagConstraints (); 310 gridBagConstraints.gridx = 1; 311 gridBagConstraints.gridy = 6; 312 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 313 gridBagConstraints.insets = new java.awt.Insets (0, 4, 8, 20); 314 jPanel3.add(jCheckBoxMaxValue, gridBagConstraints); 315 316 jLabelStrictMinVal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 317 jLabelStrictMinVal.setText("Is strict minimum"); 318 gridBagConstraints = new java.awt.GridBagConstraints (); 319 gridBagConstraints.gridx = 0; 320 gridBagConstraints.gridy = 4; 321 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 322 gridBagConstraints.insets = new java.awt.Insets (0, 4, 16, 0); 323 jPanel3.add(jLabelStrictMinVal, gridBagConstraints); 324 325 jLabelStrictMaxVal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 326 jLabelStrictMaxVal.setText("Is strict maximum"); 327 gridBagConstraints = new java.awt.GridBagConstraints (); 328 gridBagConstraints.gridx = 0; 329 gridBagConstraints.gridy = 6; 330 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 331 gridBagConstraints.insets = new java.awt.Insets (0, 4, 8, 0); 332 jPanel3.add(jLabelStrictMaxVal, gridBagConstraints); 333 334 gridBagConstraints = new java.awt.GridBagConstraints (); 335 gridBagConstraints.gridx = 1; 336 gridBagConstraints.gridy = 3; 337 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 338 gridBagConstraints.weightx = 0.8; 339 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 20); 340 jPanel3.add(jTextFieldMinValue, gridBagConstraints); 341 342 jTabbedPane1.addTab("Data Type details", jPanel3); 343 344 gridBagConstraints = new java.awt.GridBagConstraints (); 345 gridBagConstraints.gridx = 0; 346 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 347 gridBagConstraints.weightx = 1.0; 348 gridBagConstraints.weighty = 1.0; 349 getContentPane().add(jTabbedPane1, gridBagConstraints); 350 351 jPanel4.setLayout(new java.awt.GridBagLayout ()); 352 353 jPanel4.setMinimumSize(new java.awt.Dimension (10, 30)); 354 jPanel4.setPreferredSize(new java.awt.Dimension (10, 30)); 355 jButtonSave.setText("Save"); 356 jButtonSave.setEnabled(false); 357 jButtonSave.addActionListener(new java.awt.event.ActionListener () { 358 public void actionPerformed(java.awt.event.ActionEvent evt) { 359 jButtonSaveActionPerformed(evt); 360 } 361 }); 362 363 gridBagConstraints = new java.awt.GridBagConstraints (); 364 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 365 gridBagConstraints.weightx = 1.0; 366 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 367 jPanel4.add(jButtonSave, gridBagConstraints); 368 369 jButtonClose.setText("Cancel"); 370 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 371 public void actionPerformed(java.awt.event.ActionEvent evt) { 372 jButtonCloseActionPerformed(evt); 373 } 374 }); 375 376 jPanel4.add(jButtonClose, new java.awt.GridBagConstraints ()); 377 378 gridBagConstraints = new java.awt.GridBagConstraints (); 379 gridBagConstraints.gridx = 0; 380 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 381 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 4); 382 getContentPane().add(jPanel4, gridBagConstraints); 383 384 pack(); 385 } 387 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 389 this.setVisible(false); 390 this.dispose(); 391 } 393 private void jButtonSaveActionPerformed(java.awt.event.ActionEvent evt) { 395 396 ResourceDescriptor rd = new ResourceDescriptor(); 397 398 rd.setDescription( jEditorPaneDescription.getText().trim() ); rd.setName( jTextFieldName.getText() ); 400 String uri = getParentFolder(); 401 if (!uri.endsWith("/")) uri = uri + "/"; 402 uri += jTextFieldName.getText(); 403 rd.setUriString( uri ); 404 rd.setLabel(jTextFieldLabel.getText().trim() ); rd.setParentFolder( getParentFolder() ); 406 rd.setIsNew(resource == null); 407 408 rd.setWsType( ResourceDescriptor.TYPE_DATA_TYPE ); 409 410 rd.setDataType(Byte.parseByte( ((Tag)jComboBoxType.getSelectedItem()).getValue()+"") ); 412 rd.setPattern( jTextFieldPattern.getText()); 413 rd.setMaxValue( jTextFieldMaxValue.getText() ); 414 rd.setMinValue( jTextFieldMinValue.getText() ); 415 rd.setStrictMax( jCheckBoxMaxValue.isSelected()); 416 rd.setStrictMin( jCheckBoxMinValue.isSelected()); 417 418 try { 419 420 validate(rd); 421 422 if (!doNotStore) 423 { 424 newResourceDescriptor = getServer().getWSClient().addOrModifyResource(rd, null); 425 } 426 else newResourceDescriptor = rd; 427 428 setDialogResult(JOptionPane.OK_OPTION); 429 430 if (resource != null) 431 { 432 resource.setDescriptor(newResourceDescriptor); 433 } 434 435 this.setVisible(false); 436 this.dispose(); 437 438 } catch (Exception ex) { 439 JOptionPane.showMessageDialog(this,"Error: " + ex.getMessage()); 440 ex.printStackTrace(); 441 return; 442 } 443 } 445 446 public int getDialogResult() { 447 return dialogResult; 448 } 449 450 public void setDialogResult(int dialogResult) { 451 this.dialogResult = dialogResult; 452 } 453 454 455 public JServer getServer() { 456 return server; 457 } 458 459 public void setServer(JServer server) { 460 this.server = server; 461 } 462 463 public String getParentFolder() { 464 return parentFolder; 465 } 466 467 public void setParentFolder(String parentFolder) { 468 this.parentFolder = parentFolder; 469 this.jTextFieldUriString.setText(parentFolder); 470 } 471 472 public ResourceDescriptor getNewResourceDescriptor() { 473 return newResourceDescriptor; 474 } 475 476 479 public void setResource(RepositoryFolder resource) 480 { 481 this.resource = resource; 482 if (resource != null) 483 { 484 setResource( resource.getDescriptor()); 485 jTextFieldName.setEditable(false); 486 jTextFieldName.setOpaque(false); 487 } 488 } 489 490 493 public void setResource(ResourceDescriptor descriptor) 494 { 495 if (descriptor == null) return; 496 497 jTextFieldName.setText( descriptor.getName()); 498 499 500 jTextFieldLabel.setText(descriptor.getLabel()); 501 jEditorPaneDescription.setText( descriptor.getDescription()); 502 503 if (descriptor.getWsType().equals( ResourceDescriptor.TYPE_DATA_TYPE)) 504 { 505 this.jCheckBoxMaxValue.setSelected( descriptor.isStrictMax()); 506 this.jCheckBoxMinValue.setSelected( descriptor.isStrictMin()); 507 this.jTextFieldMaxValue.setText( descriptor.getMaxValue() == null ? "" : descriptor.getMaxValue()); 508 this.jTextFieldMinValue.setText( descriptor.getMinValue() == null ? "" : descriptor.getMinValue()); 509 510 it.businesslogic.ireport.util.Misc.setComboboxSelectedTagValue(jComboBoxType, 511 ""+descriptor.getDataType()); 512 this.jTextFieldPattern.setText( descriptor.getPattern()); 513 } 514 } 515 516 private javax.swing.ButtonGroup buttonGroup1; 518 private javax.swing.JButton jButtonClose; 519 private javax.swing.JButton jButtonSave; 520 private javax.swing.JCheckBox jCheckBoxMaxValue; 521 private javax.swing.JCheckBox jCheckBoxMinValue; 522 private javax.swing.JComboBox jComboBoxType; 523 private javax.swing.JEditorPane jEditorPaneDescription; 524 private javax.swing.JLabel jLabel1; 525 private javax.swing.JLabel jLabelDescription; 526 private javax.swing.JLabel jLabelLabel; 527 private javax.swing.JLabel jLabelMaxVal; 528 private javax.swing.JLabel jLabelMinValue; 529 private javax.swing.JLabel jLabelName; 530 private javax.swing.JLabel jLabelPattern; 531 private javax.swing.JLabel jLabelStrictMaxVal; 532 private javax.swing.JLabel jLabelStrictMinVal; 533 private javax.swing.JLabel jLabelType; 534 private javax.swing.JLabel jLabelUriString; 535 private javax.swing.JPanel jPanel1; 536 private javax.swing.JPanel jPanel2; 537 private javax.swing.JPanel jPanel3; 538 private javax.swing.JPanel jPanel4; 539 private javax.swing.JPanel jPanel5; 540 private javax.swing.JScrollPane jScrollPane1; 541 private javax.swing.JSeparator jSeparator1; 542 private javax.swing.JSeparator jSeparator2; 543 private javax.swing.JTabbedPane jTabbedPane1; 544 private javax.swing.JTextField jTextFieldLabel; 545 private javax.swing.JTextField jTextFieldMaxValue; 546 private javax.swing.JTextField jTextFieldMinValue; 547 private javax.swing.JTextField jTextFieldName; 548 private javax.swing.JTextField jTextFieldPattern; 549 private javax.swing.JTextField jTextFieldUriString; 550 552 553 554 558 public void validate(ResourceDescriptor dataType) throws Exception 559 { 560 String strMinValue = (String )jTextFieldMinValue.getText(); 561 String strMaxValue = (String )jTextFieldMaxValue.getText(); 562 563 if (strMinValue != null && strMinValue.length() == 0) 564 dataType.setMinValue(null); 565 if (strMaxValue != null && strMaxValue.length() == 0) 566 dataType.setMaxValue(null); 567 568 if (dataType.getDataType() == dataType.DT_TYPE_NUMBER) { 569 BigDecimal minValue = null; 570 BigDecimal maxValue = null; 571 try { 572 573 minValue = new BigDecimal (strMinValue); 574 } catch(NumberFormatException e) { 575 if (strMinValue.length() > 0) 576 throw new Exception ("Invalid number"); 577 } 578 579 try { 580 581 maxValue = new BigDecimal (strMaxValue); 582 } catch(NumberFormatException e) { 583 if (strMaxValue.length() > 0) 584 throw new Exception ( "Invalid number"); 585 } 586 587 if (minValue != null && maxValue != null) 588 if (minValue.compareTo(maxValue) >= 0) 589 throw new Exception ("Minimum value must be smaller than maximum value"); 590 } 591 592 if (dataType.getDataType() == dataType.DT_TYPE_TEXT && dataType.getPattern() != null && dataType.getPattern().trim().length() > 0) { 593 if ( 594 strMinValue != null 595 && strMinValue.trim().length() > 0 596 && !Pattern.matches(dataType.getPattern(), strMinValue) 597 ) 598 { 599 throw new Exception ("Minimum value does not match pattern"); 600 } 601 if ( 602 strMaxValue != null 603 && strMaxValue.trim().length() > 0 604 && !Pattern.matches(dataType.getPattern(), strMaxValue) 605 ) 606 { 607 throw new Exception ("Maximum value does not match pattern"); 608 } 609 } 610 } 611 612 public boolean isDoNotStore() { 613 return doNotStore; 614 } 615 616 public void setDoNotStore(boolean doNotStore) { 617 this.doNotStore = doNotStore; 618 } 619 } 620 | Popular Tags |