You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2009/06/29 22:15:30 UTC
svn commit: r789433 -
/incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java
Author: sabob
Date: Mon Jun 29 20:15:30 2009
New Revision: 789433
URL: http://svn.apache.org/viewvc?rev=789433&view=rev
Log:
validation improvments
Modified:
incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java
Modified: incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java
URL: http://svn.apache.org/viewvc/incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java?rev=789433&r1=789432&r2=789433&view=diff
==============================================================================
--- incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java (original)
+++ incubator/click/trunk/click/examples/src/org/apache/click/examples/page/control/FieldSetDemo.java Mon Jun 29 20:15:30 2009
@@ -25,6 +25,8 @@
import org.apache.click.control.Field;
import org.apache.click.control.FieldSet;
import org.apache.click.control.Form;
+import org.apache.click.control.Radio;
+import org.apache.click.control.RadioGroup;
import org.apache.click.control.Submit;
import org.apache.click.control.TextArea;
import org.apache.click.control.TextField;
@@ -47,6 +49,12 @@
@Bindable public Form form = new Form();
+ // Payment options
+ private RadioGroup paymentGroup;
+ private TextField cardHolder;
+ private CreditCardField cardNumber;
+ private IntegerField cardExpiry;
+
public FieldSetDemo() {
form.setLabelAlign(Form.ALIGN_RIGHT);
form.setLabelStyle("width:11em;");
@@ -81,19 +89,27 @@
FieldSet paymentFieldSet = new FieldSet("paymentDetails");
form.add(paymentFieldSet);
- paymentFieldSet.add(new TextField("cardName"));
- paymentFieldSet.add(new CreditCardField("cardNumber"));
- IntegerField expiryField = new IntegerField("expiry");
- expiryField.setSize(4);
- expiryField.setMaxLength(4);
- paymentFieldSet.add(expiryField);
+ paymentGroup = new RadioGroup("paymentOption", true);
+ paymentGroup.add(new Radio("cod", "Cash On Delivery "));
+ paymentGroup.add(new Radio("credit", "Credit Card "));
+ paymentGroup.setVerticalLayout(false);
+ paymentFieldSet.add(paymentGroup);
+
+ cardHolder = new TextField("cardHolderName");
+ paymentFieldSet.add(cardHolder);
+ cardNumber = new CreditCardField("cardNumber");
+ paymentFieldSet.add(cardNumber);
+ cardExpiry = new IntegerField("expiry");
+ cardExpiry.setSize(4);
+ cardExpiry.setMaxLength(4);
+ paymentFieldSet.add(cardExpiry);
form.add(new Submit("ok", " OK ", this, "onOkClick"));
form.add(new PageSubmit("cancel", HomePage.class));
}
public boolean onOkClick() {
- if (form.isValid()) {
+ if (isFormValid()) {
List fieldList = ClickUtils.getFormFields(form);
for (Iterator i = fieldList.iterator(); i.hasNext(); ) {
Field field = (Field) i.next();
@@ -102,4 +118,23 @@
}
return true;
}
+
+ /**
+ * Perform additional form cross field validation returning true if valid.
+ *
+ * @return true if form is valid after cross field validation
+ */
+ protected boolean isFormValid() {
+ // If credit payment option is specified, ensure credit criteria is provided
+ if (paymentGroup.getValue().equals("credit")) {
+ cardHolder.setRequired(true);
+ cardHolder.validate();
+ cardNumber.setRequired(true);
+ cardNumber.validate();
+ cardExpiry.setRequired(true);
+ cardExpiry.validate();
+ }
+
+ return form.isValid();
+ }
}