public DecoratedNotEmptyValidator(JLabel componentLabel, String[] excludedChars) { this.validator = new NotEmptyValidator(); this.label = componentLabel; this.excludedChars = excludedChars; this.label.setText("<html><font color=\"#" + Integer.toHexString(this.label.getForeground().getRGB()).substring(2, 8) + "\">" + this.label.getText() + "</font><font color=\"RED\">*</font></html>"); } @Override
@Override public void validateValue(Property property, Object value) throws ValidationException { try { if (value != null) { String stringValue = value.toString(); if (this.excludedChars != null) { for (String exclChar : this.excludedChars) { if (stringValue.contains(exclChar)) { throw new ValidationException(String.format("Character '%s' not allowed", exclChar)); } } } } this.validator.validateValue(property, value); this.label.setIcon(null); this.label.setToolTipText(null); } catch (ValidationException vex) { this.label.setIcon(TangoIcons.status_dialog_error(TangoIcons.Res.R16)); throw vex; } } }
JComponent addValidatedTextField(JPanel parent, TextFieldEditor textEditor, String labelText, String propertyName, String validatorRegex) { if(validatorRegex == null || validatorRegex.isEmpty()){ return addTextField(parent, textEditor, labelText, propertyName, false, null); } else { JLabel jLabel = new JLabel(labelText); parent.add(jLabel); PropertyDescriptor propertyDescriptor = propertyContainer.getDescriptor(propertyName); propertyDescriptor.setValidator(new PatternValidator(Pattern.compile(validatorRegex))); JComponent editorComponent = textEditor.createEditorComponent(propertyDescriptor, bindingContext); UIUtils.addPromptSupport(editorComponent, "enter " + labelText.toLowerCase().replace(":", "") + " here"); editorComponent.setPreferredSize(new Dimension(editorComponent.getPreferredSize().width, controlHeight)); editorComponent.setMaximumSize(new Dimension(editorComponent.getMaximumSize().width, controlHeight)); jLabel.setLabelFor(editorComponent); parent.add(editorComponent); return editorComponent; } }
productDirDescriptor.setValidator(new NotNullValidator()); productDirDescriptor.setDisplayName("target product directory");
bindingContext.bind("useAutoAccuracy", checkBox); final IntervalValidator rangeValidator = new IntervalValidator(new ValueRange(0, Util.MAX_ACCURACY)); final PropertyDescriptor accuracyDescriptor = bindingContext.getPropertySet().getDescriptor("accuracy"); accuracyDescriptor.setValidator(rangeValidator);
productDirDescriptor.setValidator(new NotNullValidator()); productDirDescriptor.setDisplayName("target product directory");
bindingContext.bind("useAutoAccuracy", checkBox); final IntervalValidator rangeValidator = new IntervalValidator(new ValueRange(0, Util.MAX_ACCURACY)); final PropertyDescriptor accuracyDescriptor = bindingContext.getPropertySet().getDescriptor("accuracy"); accuracyDescriptor.setValidator(rangeValidator);
public static JTextField addTextField(JPanel parent, TextFieldEditor textEditor, String labelText, PropertyContainer propertyContainer, BindingContext bindingContext, String propertyName, boolean isRequired) { parent.add(new JLabel(labelText)); PropertyDescriptor propertyDescriptor = propertyContainer.getDescriptor(propertyName); if (isRequired) { propertyDescriptor.setValidator(new NotEmptyValidator()); } JComponent editorComponent = textEditor.createEditorComponent(propertyDescriptor, bindingContext); UIUtils.addPromptSupport(editorComponent, "enter " + labelText.toLowerCase().replace(":", "") + " here"); UIUtils.enableUndoRedo(editorComponent); parent.add(editorComponent); return (JTextField) editorComponent; }
propertyDescriptor.setValidator(new NotEmptyValidator()); PropertyEditor editor = PropertyEditorRegistry.getInstance().findPropertyEditor(propertyDescriptor); JComponent editorComponent = editor.createEditorComponent(propertyDescriptor, bindingContext);
propertyDescriptor.setValidator(new NotEmptyValidator()); PropertyEditor editor = editorRegistry.findPropertyEditor(propertyDescriptor); JComponent editorComponent = editor.createEditorComponent(propertyDescriptor, bindingContext);