Swing Components Java

/*
Code revised from Desktop Java Live:
http://www.sourcebeat.com/downloads/
*/
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.validation.ValidationResult;
import com.jgoodies.validation.util.DefaultValidationResultModel;
import com.jgoodies.validation.util.ValidationResultModel;
import com.jgoodies.validation.util.ValidationUtils;
import com.jgoodies.validation.view.ValidationResultViewFactory;
public class ValidationHowExample extends JPanel {
    private JTextField nameField;
    private JTextField siteField;
    private JTextField feedField;
    private Feed feed;
    private ValidationResultModel validationResultModel;
    private ShowFeedInformationAction showFeedInformationAction;
    public ValidationHowExample() {
        DefaultFormBuilder formBuilder = new DefaultFormBuilder(new FormLayout(""));
        formBuilder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        formBuilder.appendColumn("right:pref");
        formBuilder.appendColumn("3dlu");
        formBuilder.appendColumn("fill:p:g");
        this.nameField = new JTextField();
        formBuilder.append("Name:", this.nameField);
        this.siteField = new JTextField();
        formBuilder.append("Site Url:", this.siteField);
        this.feedField = new JTextField();
        formBuilder.append("Feed Url:", this.feedField);
        this.validationResultModel = new DefaultValidationResultModel();
        this.validationResultModel.addPropertyChangeListener(new ValidationListener());
        JComponent validationResultsComponent = ValidationResultViewFactory.createReportList(validationResultModel);
        formBuilder.appendRow("top:30dlu:g");
        CellConstraints cc = new CellConstraints();
        formBuilder.add(validationResultsComponent, cc.xywh(1, formBuilder.getRow() + 1, 3, 1, "fill, fill"));
        formBuilder.nextLine(2);
        formBuilder.append(new JButton(new ValidateAction()), 3);
        this.showFeedInformationAction = new ShowFeedInformationAction();
        formBuilder.append(new JButton(this.showFeedInformationAction), 3);
        createFeed();
        initializeFormElements();
        add(formBuilder.getPanel());
    }
    private ValidationResult validateIt() {
        ValidationResult validationResult = new ValidationResult();
        if (ValidationUtils.isEmpty(this.nameField.getText())) {
            validationResult.addError("The name field can not be blank.");
        } else if (!ValidationUtils.hasBoundedLength(this.nameField.getText(), 5, 14)) {
            validationResult.addError("The name field must be between 5 and 14 characters.");
        }
        if (!"ClientJava.com".equals(this.nameField.getText())) {
            validationResult.addWarning("This form prefers the feed ClientJava.com");
        }
        if (ValidationUtils.isEmpty(this.feedField.getText())) {
            validationResult.addError("The feed field can not be blank.");
        }
        if (ValidationUtils.isEmpty(this.siteField.getText())) {
            validationResult.addError("The site field can not be blank.");
        }
        return validationResult;
    }
    private class ValidationListener implements PropertyChangeListener {
        public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getPropertyName() == ValidationResultModel.PROPERTYNAME_RESULT) {
                JOptionPane.showMessageDialog(null, "Validation has been performed");
                showFeedInformationAction.setEnabled(!validationResultModel.hasErrors());
            } else if (evt.getPropertyName() == ValidationResultModel.PROPERTYNAME_MESSAGES) {
                if (Boolean.TRUE.equals(evt.getNewValue())) {
                    JOptionPane.showMessageDialog(null, "Messages have been found.");
                }
            }
        }
    }
    private Feed getFeed() {
        return this.feed;
    }
    private void createFeed() {
        this.feed = new Feed();
        this.feed.setName("ClientJava.com");
        this.feed.setSiteUrl("http://www.clientjava.com/blog");
        this.feed.setFeedUrl("http://www.clientjava.com/blog/rss.xml");
    }
    private void initializeFormElements() {
        this.nameField.setText(this.feed.getName());
        this.siteField.setText(this.feed.getSiteUrl());
        this.feedField.setText(this.feed.getFeedUrl());
    }
    private void synchFormAndFeed() {
        this.feed.setName(this.nameField.getText());
        this.feed.setSiteUrl(this.siteField.getText());
        this.feed.setFeedUrl(this.feedField.getText());
    }
    private class ValidateAction extends AbstractAction {
        public ValidateAction() {
            super("Validate");
        }
        public void actionPerformed(ActionEvent e) {
            synchFormAndFeed();
            ValidationResult validationResult = validateIt();
            validationResultModel.setResult(validationResult);
        }
    }
    private class ShowFeedInformationAction extends AbstractAction {
        public ShowFeedInformationAction() {
            super("Show Feed Information");
            setEnabled(false);
        }
        public void actionPerformed(ActionEvent event) {
            StringBuffer message = new StringBuffer();
            message.append("");
            message.append("Name: ");
            message.append(getFeed().getName());
            message.append("
");
            message.append("Site URL: ");
            message.append(getFeed().getSiteUrl());
            message.append("
");
            message.append("Feed URL: ");
            message.append(getFeed().getFeedUrl());
            message.append("");
            JOptionPane.showMessageDialog(null, message.toString());
        }
    }
    public static void main(String[] a){
      JFrame f = new JFrame("How To Validate Example");
      f.setDefaultCloseOperation(2);
      f.add(new ValidationHowExample());
      f.pack();
      f.setVisible(true);
    }
}
           
       
jgoodiesValidation.zip( 277 k)