You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2004/04/13 23:28:24 UTC
cvs commit: cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/formmodel Field.java Union.java
sylvain 2004/04/13 14:28:24
Modified: src/blocks/forms/java/org/apache/cocoon/forms/formmodel
Field.java Union.java
Log:
Avoid to always validate in ReadFromRequest()
Revision Changes Path
1.7 +9 -22 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java
Index: Field.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Field.java 10 Apr 2004 13:41:41 -0000 1.6
+++ Field.java 13 Apr 2004 21:28:24 -0000 1.7
@@ -48,11 +48,10 @@
public class Field extends AbstractWidget implements ValidationErrorAware, DataWidget, SelectableWidget {
protected SelectionList selectionList;
- private final FieldDefinition definition;
+ private final FieldDefinition fieldDefinition;
protected String enteredValue;
protected Object value;
- private Object oldValue;
// At startup, we don't need to parse (both enteredValue and value are null),
// but need to validate (error if field is required)
@@ -63,19 +62,15 @@
public Field(FieldDefinition fieldDefinition) {
- this.definition = fieldDefinition;
+ this.fieldDefinition = fieldDefinition;
}
public final FieldDefinition getFieldDefinition() {
- return this.definition;
+ return this.fieldDefinition;
}
protected WidgetDefinition getDefinition() {
- return this.definition;
- }
-
- public Object getOldValue() {
- return oldValue;
+ return this.fieldDefinition;
}
public Object getValue() {
@@ -158,9 +153,6 @@
getForm().addWidgetEvent(new ValueChangedEvent(this, oldValue, newValue));
}
}
- // If set comes before a form is first sent then the new value will be the old value by the time of the next form request.
- // If the set occurs in an event handler then again the new value will be the old value by the time of the next form request.
- this.oldValue = newValue;
}
public void readFromRequest(FormContext formContext) {
@@ -178,16 +170,11 @@
}
}
- // TODO: This cause validation to occur too early.
- getValue();
- this.oldValue = value;
-
// Only convert if the text value actually changed. Otherwise, keep the old value
// and/or the old validation error (allows to keep errors when clicking on actions)
if (!(newEnteredValue == null ? "" : newEnteredValue).equals((enteredValue == null ? "" : enteredValue))) {
// TODO: Hmmm...
- //getForm().addWidgetEvent(new DeferredValueChangedEvent(this, value));
- getForm().addWidgetEvent(new DeferredValueChangedEvent(this, getValue()));
+ getForm().addWidgetEvent(new DeferredValueChangedEvent(this, value));
enteredValue = newEnteredValue;
validationError = null;
value = null;
@@ -257,7 +244,7 @@
}
// generate label, help, hint, etc.
- definition.generateDisplayData(contentHandler);
+ fieldDefinition.generateDisplayData(contentHandler);
// generate selection list, if any
if (selectionList != null) {
@@ -267,13 +254,13 @@
}
// include some info about the datatype
- definition.getDatatype().generateSaxFragment(contentHandler, locale);
+ fieldDefinition.getDatatype().generateSaxFragment(contentHandler, locale);
contentHandler.endElement(Constants.INSTANCE_NS, FIELD_EL, Constants.INSTANCE_PREFIX_COLON + FIELD_EL);
}
public void generateLabel(ContentHandler contentHandler) throws SAXException {
- definition.generateLabel(contentHandler);
+ fieldDefinition.generateLabel(contentHandler);
}
/**
1.4 +6 -7 cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java
Index: Union.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Union.java 12 Apr 2004 14:05:09 -0000 1.3
+++ Union.java 13 Apr 2004 21:28:24 -0000 1.4
@@ -66,18 +66,17 @@
return ELEMENT;
}
- public Object getOldValue() {
- return ((Field)caseWidget).getOldValue();
- }
-
public Object getValue() {
return caseWidget.getValue();
}
public void readFromRequest(FormContext formContext) {
+ // Ensure the case widget has read its value
+ caseWidget.readFromRequest(formContext);
+
Widget widget;
// Read current case from request
- String value = (String)getOldValue();
+ String value = (String)getValue();
if (value != null && !value.equals(""))
if ((widget = getWidget(value)) != null)
widget.readFromRequest(formContext);
@@ -91,7 +90,7 @@
Widget widget;
boolean valid = true;
// Read current case from request
- String value = (String)getOldValue();
+ String value = (String)getValue();
if (value != null && !value.equals(""))
if ((widget = getWidget(value)) != null)
valid = valid & widget.validate(formContext);