/* * Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org * Use is subject to license terms. See license.txt. */ package org.beanfabrics.swing; import java.awt.GridLayout; import javax.swing.JFrame; import org.beanfabrics.model.AbstractPM; import org.beanfabrics.model.PMManager; import org.beanfabrics.model.TextPM; import org.beanfabrics.swing.internal.TextPMTextField; import org.beanfabrics.validation.ValidationRule; import org.beanfabrics.validation.ValidationState; /** * @author Michael Karneim */ public class TextPMTextFieldTestGUI { public static void main(String[] args) { PersonPM model = new PersonPM(); TextPMTextField textfield1 = new TextPMTextField(); textfield1.setPresentationModel(model.name); TextPMTextField textfield2 = new TextPMTextField(); textfield2.setPresentationModel(model.name); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().setLayout(new GridLayout()); f.add(textfield1); f.add(textfield2); f.pack(); f.setVisible(true); } static class PersonPM extends AbstractPM { protected final TextPM name = new TextPM(); public PersonPM() { PMManager.setup(this); name.getValidator().add(new ValidationRule() { public ValidationState validate() { if (name.getText().length() < 5) { return new ValidationState("name must have 5 characters at least"); } return null; } }); } } }