You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2005/08/25 21:43:06 UTC
cvs commit: jakarta-tapestry/framework/src/test/org/apache/tapestry TestTapestryUtils.java
hlship 2005/08/25 12:43:06
Modified: framework/src/java/org/apache/tapestry/form Form.js
FormComponentContributorContext.java
FormComponentContributorContextImpl.java
FormSupportImpl.java FormEventType.java
. status.xml
framework/src/java/org/apache/tapestry/form/translator
AbstractTranslator.java NumberTranslator.java
NumberTranslator.js
framework/src/test/org/apache/tapestry/form/validator
TestMax.java TestMinLength.java TestRequired.java
BaseValidatorTestCase.java TestPattern.java
TestMaxLength.java TestMin.java TestEmail.java
framework/src/java/org/apache/tapestry/form/validator
MaxLength.java Email.java Min.java Pattern.java
StringValidator.js Required.java RegExValidator.js
Max.java MinLength.java NumberValidator.js
framework/src/test/org/apache/tapestry/form
TestValidatableFieldSupportImpl.java
TestTranslatedFieldSupportImpl.java
TestFormComponentContributorContext.java
TestFormSupport.java
FormComponentContributorTestCase.java
framework/src/java/org/apache/tapestry TapestryUtils.java
framework/src/test/org/apache/tapestry/form/translator
TestStringTranslator.java TestNumberTranslator.java
TestDateTranslator.java
framework/src/test/org/apache/tapestry
TestTapestryUtils.java
Log:
TAPESTRY-592: Optimize generated JavaScript to reduce the verbosity
Revision Changes Path
1.11 +98 -43 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/Form.js
Index: Form.js
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/Form.js,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Form.js 23 Aug 2005 23:21:21 -0000 1.10
+++ Form.js 25 Aug 2005 19:43:04 -0000 1.11
@@ -16,11 +16,8 @@
var Tapestry = new Object();
-function default_invalid_field_handler(event, field, message)
+Tapestry.default_invalid_field_handler = function(event, field, message)
{
- // Temporary, while all the event logic is getting munged together
- // inside one big handler.
-
if (!event.abort && !field.disabled)
{
Tapestry.set_focus(field);
@@ -28,12 +25,69 @@
window.alert(message);
event.abort = true;
- event.cancelListeners = true;
+ event.cancel_handlers = true;
}
}
+Tapestry.find = function(elementId)
+{
+ return document.getElementById(elementId);
+}
+
+Tapestry.register_form = function(formId)
+{
+ var form = this.find(formId);
+
+ form.events = new FormEventManager(form);
+}
+
+Tapestry.onpresubmit = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_presubmit_handler(handler);
+}
+
+Tapestry.onsubmit = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_submit_handler(handler);
+}
+
+Tapestry.onpostsubmit = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_postsubmit_handler(handler);
+}
+
+Tapestry.onreset = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_reset_handler(handler);
+}
+
+Tapestry.onrefresh = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_refresh_handler(handler);
+}
+
+Tapestry.oncancel = function(formId, handler)
+{
+ var form = this.find(formId);
+
+ form.events.add_cancel_handler(handler);
+}
+
Tapestry.set_focus = function (field)
{
+ if (typeof field == "string")
+ field = this.find(field);
+
if (field.focus)
field.focus();
@@ -41,13 +95,17 @@
field.select();
}
-Tapestry.trim_field_value = function(field)
+Tapestry.trim_field_value = function(fieldId)
{
+ var field = this.find(fieldId);
+
field.value = field.value.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
-Tapestry.require_field = function(event, field, message)
+Tapestry.require_field = function(event, fieldId, message)
{
+ var field = this.find(fieldId);
+
if (field.value.length == 0)
event.invalid_field(field, message);
}
@@ -60,7 +118,7 @@
// A listener may set the abort flag to true, which will prevent
// the Form submit or reset from occuring, but will not prevent
// other listeners from being invoked. A listener may also set the
-// cancelListeners flag, which will prevent further listeners from being
+// cancel_handlers flag, which will prevent further listeners from being
// invoked.
// The invalid_field_handler is provided (by the FormEventManager)
// to handle any invalid fields.
@@ -70,7 +128,7 @@
this.form = form;
this.type = type;
this.abort = false;
- this.cancelListeners = false;
+ this.cancel_handlers = false;
this.invalid_field_handler = invalid_field_handler;
}
@@ -93,9 +151,6 @@
function FormEventManager(form)
{
this.form = form;
-
- // Add an events property to the form
- form.events = this;
// Key is handler type ("submit", "refresh", "reset" or "cancel"), value
// is an array of functions.
@@ -113,15 +168,15 @@
// The function should take three parameters:
// the FormSubmitEvent, the field object, and the message
- this.invalid_field_handler = default_invalid_field_handler;
+ this.invalid_field_handler = Tapestry.default_invalid_field_handler;
}
-// addListener(type, handler)
+// add_handler(type, handler)
//
// type -- the handler type to add ("submit", "refresh", "reset" or "cancel"
// handler -- a function to execute
-FormEventManager.prototype.addListener = function(type, handler)
+FormEventManager.prototype.add_handler = function(type, handler)
{
var array = this.handlers[type];
if (array == null)
@@ -133,14 +188,14 @@
array.push(handler);
}
-// invokeListeners(type, eventObject)
+// invoke_handlers(type, eventObject)
//
// type -- the type of handler to execute
-// eventObject -- passed to the handler function
+// eventObj -- passed to the handler function
-FormEventManager.prototype.invokeListeners = function(type, eventObj)
+FormEventManager.prototype.invoke_handlers = function(type, eventObj)
{
- if (eventObj.cancelListeners) return;
+ if (eventObj.cancel_handlers) return;
var array = this.handlers[type];
@@ -152,7 +207,7 @@
var handler = array[i];
handler.call(window, eventObj);
- if (eventObj.cancelListeners) return;
+ if (eventObj.cancel_handlers) return;
}
}
@@ -162,7 +217,7 @@
FormEventManager.prototype.addCancelListener= function(handler)
{
- this.addListener("cancel", handler);
+ this.add_handler("cancel", handler);
}
// cancel()
@@ -174,7 +229,7 @@
{
var event = new FormSubmitEvent(this.form, "cancel", this.invalid_field_handler);
- this.invokeListeners("cancel", event);
+ this.invoke_handlers("cancel", event);
if (event.abort == false)
{
@@ -184,7 +239,7 @@
}
}
-// addPreSubmitListener(handler)
+// add_presubmit_handler(handler)
//
// Typically used to setup state prior to the submit handlers being invoked.
// Pre-submit listeners are invoked before submit handlers are invoked. If
@@ -195,12 +250,12 @@
// form - the Form object for which a listener is added
// handler - recieves notification when the form is submitted
-FormEventManager.prototype.addPreSubmitListener = function(handler)
+FormEventManager.prototype.add_presubmit_handler = function(handler)
{
- this.addListener("presubmit", handler);
+ this.add_handler("presubmit", handler);
}
-// addSubmitListener(handler)
+// add_submit_handler(handler)
//
// Typically used for input validations; normal submit listeners are skipped when
// a form is submitted to refresh some of its values. If a handler sets
@@ -210,21 +265,21 @@
// form - the Form object for which a listener is added
// handler - receives notifications when the form is submitted
-FormEventManager.prototype.addSubmitListener = function(handler)
+FormEventManager.prototype.add_submit_handler = function(handler)
{
- this.addListener("submit", handler);
+ this.add_handler("submit", handler);
}
-// addPostSubmitListener(handler)
+// add_postsubmit_handler(handler)
//
// Used to perform final cleanup after all submit listeners have been invoked.
//
// form - the Form object for which a listener is added
// handler - receives notifications when the form is submitted
-FormEventManager.prototype.addPostSubmitListener = function(handler)
+FormEventManager.prototype.add_postsubmit_handler = function(handler)
{
- this.addListener("postsubmit", handler);
+ this.add_handler("postsubmit", handler);
}
// submit()
@@ -240,9 +295,9 @@
{
var event = new FormSubmitEvent(this.form, "submit", this.invalid_field_handler);
- this.invokeListeners("presubmit", event);
- this.invokeListeners("submit", event);
- this.invokeListeners("postsubmit", event);
+ this.invoke_handlers("presubmit", event);
+ this.invoke_handlers("submit", event);
+ this.invoke_handlers("postsubmit", event);
if (event.abort)
return false;
@@ -252,7 +307,7 @@
return true;
}
-// addRefreshListener(handler)
+// add_refresh_handler(handler)
//
// Used for a limited number of situations where some logic is necessary even
// when a form is submitted for refresh. Normal submit listeners are skipped, but
@@ -261,10 +316,10 @@
//
// handler - receives notifications when the form is submitted (normally, or for refresh)
-FormEventManager.prototype.addRefreshListener = function(handler)
+FormEventManager.prototype.add_refresh_handler = function(handler)
{
- this.addListener("submit", handler);
- this.addListener("refresh", handler);
+ this.add_handler("submit", handler);
+ this.add_handler("refresh", handler);
}
// refresh()
@@ -278,7 +333,7 @@
{
var event = new FormSubmitEvent(this.form, "refresh", this.invalid_field_handler);
- this.invokeListeners("refresh", event);
+ this.invoke_handlers("refresh", event);
if (event.abort)
return;
@@ -288,15 +343,15 @@
this.form.submit();
}
-// addResetListener(handler)
+// add_reset_handler(handler)
//
// Allow for special behavior when a form is reset, intended as the
// form's onreset . Listeners are invoked
// before the form is reset.
-FormEventManager.prototype.addResetListener = function(handler)
+FormEventManager.prototype.add_reset_handler = function(handler)
{
- this.addListener("reset", handler);
+ this.add_handler("reset", handler);
}
// reset()
@@ -309,7 +364,7 @@
{
var event = new FormSubmitEvent(this.form, "reset", this.invalid_field_handler);
- this.invokeListeners("reset", event);
+ this.invoke_handlers("reset", event);
return ! event.abort;
}
1.4 +2 -2 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormComponentContributorContext.java
Index: FormComponentContributorContext.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormComponentContributorContext.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FormComponentContributorContext.java 21 Jul 2005 13:17:55 -0000 1.3
+++ FormComponentContributorContext.java 25 Aug 2005 19:43:04 -0000 1.4
@@ -43,7 +43,7 @@
public void includeClasspathScript(String path);
/**
- * Adds initialization to register a submitListener on the client side. A submitListener is a
+ * Adds initialization to register a submit handler on the client side. A submit handler is a
* JavaScript method that accepts a single parameter, a (JavaScript) FormSubmitEvent.
*
* @param submitListener
@@ -51,7 +51,7 @@
* of a listener function ("function(event) { ... } ").
*/
- public void addSubmitListener(String submitListener);
+ public void addSubmitHandler(String handler);
/**
* Registers a field for automatic focus. The goal is for the first field that is in error to
1.4 +7 -7 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormComponentContributorContextImpl.java
Index: FormComponentContributorContextImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormComponentContributorContextImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FormComponentContributorContextImpl.java 2 Aug 2005 14:59:41 -0000 1.3
+++ FormComponentContributorContextImpl.java 25 Aug 2005 19:43:04 -0000 1.4
@@ -35,8 +35,6 @@
{
private final ClassResolver _resolver;
- private final String _formDOM;
-
private final String _fieldDOM;
private final PageRenderSupport _pageRenderSupport;
@@ -45,6 +43,8 @@
private final IForm _form;
+ private final String _formId;
+
/**
* Used for testing.
*/
@@ -55,7 +55,7 @@
_field = field;
_resolver = null;
- _formDOM = null;
+ _formId = null;
_fieldDOM = null;
_pageRenderSupport = null;
_form = null;
@@ -68,11 +68,11 @@
_field = field;
_form = field.getForm();
+ _formId = _form.getName();
_resolver = cycle.getInfrastructure().getClassResolver();
- _formDOM = "document." + _form.getName();
- _fieldDOM = _formDOM + "." + field.getName();
+ _fieldDOM = "Tapestry.find('" + field.getClientId() + "')";
_pageRenderSupport = TapestryUtils.getPageRenderSupport(cycle, field);
}
@@ -89,9 +89,9 @@
_pageRenderSupport.addExternalScript(resource);
}
- public void addSubmitListener(String submitListener)
+ public void addSubmitHandler(String submitListener)
{
- _pageRenderSupport.addInitializationScript(_formDOM + ".events.addSubmitListener("
+ _pageRenderSupport.addInitializationScript("Tapestry.onsubmit('" + _formId + "', "
+ submitListener + ");");
}
1.13 +7 -11 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
Index: FormSupportImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- FormSupportImpl.java 24 Aug 2005 14:45:33 -0000 1.12
+++ FormSupportImpl.java 25 Aug 2005 19:43:04 -0000 1.13
@@ -301,13 +301,11 @@
FormEventType type = (FormEventType) entry.getKey();
Object value = entry.getValue();
- buffer.append(TapestryUtils.buildClientElementReference(formId));
- buffer.append(".events.");
- buffer.append(type.getAddListenerMethodName());
-
- // Build a composite function in-place
-
- buffer.append("(function (event)\n{");
+ buffer.append("Tapestry.");
+ buffer.append(type.getAddHandlerFunctionName());
+ buffer.append("('");
+ buffer.append(formId);
+ buffer.append("', function (event)\n{");
List l = (List) value;
int count = l.size();
@@ -510,8 +508,7 @@
if (!_form.getFocus() || _cycle.getAttribute(FIELD_FOCUS_ATTRIBUTE) != null)
return;
- _pageRenderSupport.addInitializationScript("Tapestry.set_focus("
- + TapestryUtils.buildClientElementReference(fieldId) + ");");
+ _pageRenderSupport.addInitializationScript("Tapestry.set_focus('" + fieldId + "');");
_cycle.setAttribute(FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
}
@@ -527,8 +524,7 @@
_pageRenderSupport.addExternalScript(_script);
- _pageRenderSupport.addInitializationScript("new FormEventManager("
- + TapestryUtils.buildClientElementReference(formId) + ");");
+ _pageRenderSupport.addInitializationScript("Tapestry.register_form('" + formId + "');");
}
public String rewind()
1.6 +12 -10 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormEventType.java
Index: FormEventType.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/FormEventType.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FormEventType.java 16 Jun 2005 18:27:11 -0000 1.5
+++ FormEventType.java 25 Aug 2005 19:43:04 -0000 1.6
@@ -20,7 +20,8 @@
*
* @author Howard Lewis Ship
* @since 1.0.2
- * @deprecated Managing of form events is now done on the client side; this class may be removed in a future release of Tapestry.
+ * @deprecated Managing of form events is now done on the client side; this class may be removed in
+ * a future release of Tapestry.
*/
public class FormEventType
@@ -33,23 +34,23 @@
* are multiple event handlers for the form they will be combined using the binary and operator (<code>&&</code>).
*/
- public static final FormEventType SUBMIT = new FormEventType("SUBMIT", "addSubmitListener");
+ public static final FormEventType SUBMIT = new FormEventType("SUBMIT", "onsubmit");
/**
* Form event triggered when the form is reset; this allows an event handler to deal with any
* special cases related to resetting.
*/
- public static final FormEventType RESET = new FormEventType("RESET", "addResetListener");
+ public static final FormEventType RESET = new FormEventType("RESET", "onreset");
private final String _name;
- private final String _addListenerMethodName;
+ private final String _addHandlerFunctionName;
- private FormEventType(String name, String addListenerMethodName)
+ private FormEventType(String name, String addHandlerFunctionName)
{
_name = name;
- _addListenerMethodName = addListenerMethodName;
+ _addHandlerFunctionName = addHandlerFunctionName;
}
public String toString()
@@ -58,12 +59,13 @@
}
/**
- * Returns the DOM property corresponding to event type (used when generating client-side
- * scripting).
+ * Returns the name of the function, on the Tapestry object (see Form.js), which should be
+ * invoked. The first parameter will be the id of the form, the second will be the handler
+ * itself.
*/
- public String getAddListenerMethodName()
+ public String getAddHandlerFunctionName()
{
- return _addListenerMethodName;
+ return _addHandlerFunctionName;
}
}
\ No newline at end of file
1.228 +1 -0 jakarta-tapestry/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/jakarta-tapestry/status.xml,v
retrieving revision 1.227
retrieving revision 1.228
diff -u -r1.227 -r1.228
--- status.xml 24 Aug 2005 15:32:05 -0000 1.227
+++ status.xml 25 Aug 2005 19:43:04 -0000 1.228
@@ -78,6 +78,7 @@
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-222">IE Error in DataPicker.js</action>
<action type="fix" dev="PF" fixes-bug="TAPESTRY-586">Do not bind form component values unless all validators succeed.</action>
<action type="fix" dev="HLS" fixes-bug="TAPESTRY-588">Including the tapestry-portlet jar in the classpath for a servlet application causes exceptions</action>
+ <action type="fix" dev="HLS" fixes-bug="TAPESTRY-592">Optimize generated JavaScript to reduce the verbosity</action>
</release>
<release version="4.0-beta-4" date="Aug 10 2005">
<action type="fix" dev="HLS">Add getComponent() method to IComponent.</action>
1.7 +1 -1 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/AbstractTranslator.java
Index: AbstractTranslator.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/AbstractTranslator.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractTranslator.java 19 Aug 2005 13:28:16 -0000 1.6
+++ AbstractTranslator.java 25 Aug 2005 19:43:04 -0000 1.7
@@ -108,7 +108,7 @@
super.renderContribution(writer, cycle, context, field);
if (_trim)
- context.addSubmitListener("function (event) { Tapestry.trim_field_value(" + context.getFieldDOM() + "); }");
+ context.addSubmitHandler("function (event) { Tapestry.trim_field_value('" + field.getClientId() + "'); }");
}
public boolean isTrim()
1.11 +2 -2 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java
Index: NumberTranslator.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- NumberTranslator.java 19 Aug 2005 15:46:59 -0000 1.10
+++ NumberTranslator.java 25 Aug 2005 19:43:04 -0000 1.11
@@ -123,8 +123,8 @@
String message = TapestryUtils.enquote(buildMessage(context, field, getMessageKey()));
- context.addSubmitListener("function(event) { Tapestry.validate_number(event, "
- + context.getFieldDOM() + ", " + message + "); }");
+ context.addSubmitHandler("function(event) { Tapestry.validate_number(event, '"
+ + field.getClientId() + "', " + message + "); }");
}
/**
1.5 +3 -1 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.js
Index: NumberTranslator.js
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/translator/NumberTranslator.js,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NumberTranslator.js 19 Aug 2005 13:58:38 -0000 1.4
+++ NumberTranslator.js 25 Aug 2005 19:43:04 -0000 1.5
@@ -12,8 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-Tapestry.validate_number = function(event, field, message)
+Tapestry.validate_number = function(event, fieldId, message)
{
+ var field = this.find(fieldId);
+
if (field.value == "") return;
if (isNaN(field.value))
1.4 +4 -10 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMax.java
Index: TestMax.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMax.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestMax.java 19 Aug 2005 13:28:16 -0000 1.3
+++ TestMax.java 25 Aug 2005 19:43:05 -0000 1.4
@@ -97,7 +97,7 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
@@ -107,11 +107,8 @@
trainFormatMessage(contextc, context, null, ValidationStrings.VALUE_TOO_LARGE, new Object[]
{ "My Field", new Double(20) }, "default message");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_max_number(event, document.myform.myfield, 20.0, 'default message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_max_number(event, 'myfield', 20.0, 'default message'); }");
replayControls();
@@ -124,7 +121,7 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
@@ -140,11 +137,8 @@
{ "My Field", new Double(20) },
"custom\\message");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_max_number(event, document.myform.myfield, 20.0, 'custom\\\\message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_max_number(event, 'myfield', 20.0, 'custom\\\\message'); }");
replayControls();
1.6 +4 -10 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMinLength.java
Index: TestMinLength.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMinLength.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestMinLength.java 19 Aug 2005 13:28:16 -0000 1.5
+++ TestMinLength.java 25 Aug 2005 19:43:05 -0000 1.6
@@ -96,21 +96,18 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
trainFormatMessage(contextc, context, null, ValidationStrings.VALUE_TOO_SHORT, new Object[]
{ new Integer(20), "My Field" }, "default message");
context
- .addSubmitListener("function(event) { Tapestry.validate_min_length(event, document.myform.myfield, 20, 'default message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_min_length(event, 'myfield', 20, 'default message'); }");
replayControls();
@@ -123,16 +120,13 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "customField");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
trainFormatMessage(
contextc,
context,
@@ -143,7 +137,7 @@
"custom\\message");
context
- .addSubmitListener("function(event) { Tapestry.validate_min_length(event, document.myform.myfield, 25, 'custom\\\\message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_min_length(event, 'customField', 25, 'custom\\\\message'); }");
replayControls();
1.9 +2 -5 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestRequired.java
Index: TestRequired.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestRequired.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestRequired.java 19 Aug 2005 13:28:16 -0000 1.8
+++ TestRequired.java 25 Aug 2005 19:43:05 -0000 1.9
@@ -162,13 +162,10 @@
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", "fred");
context.registerForFocus(ValidationConstants.REQUIRED_FIELD);
- context.getFieldDOM();
- contextc.setReturnValue("document.fred.barney");
-
trainFormatMessage(
contextc,
context,
@@ -179,7 +176,7 @@
"Default\\Message for Fred.");
context
- .addSubmitListener("function(event) { Tapestry.require_field(event, document.fred.barney, 'Default\\\\Message for Fred.'); }");
+ .addSubmitHandler("function(event) { Tapestry.require_field(event, 'fred', 'Default\\\\Message for Fred.'); }");
replayControls();
1.4 +22 -4 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java
Index: BaseValidatorTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BaseValidatorTestCase.java 18 Jun 2005 19:56:26 -0000 1.3
+++ BaseValidatorTestCase.java 25 Aug 2005 19:43:05 -0000 1.4
@@ -39,6 +39,22 @@
return field;
}
+ protected IFormComponent newField(String displayName, String clientId)
+ {
+ MockControl control = MockControl.createNiceControl(IFormComponent.class);
+ addControl(control);
+
+ IFormComponent field = (IFormComponent) control.getMock();
+
+ field.getClientId();
+ control.setReturnValue(clientId);
+
+ field.getDisplayName();
+ control.setReturnValue(displayName);
+
+ return field;
+ }
+
protected IFormComponent newField()
{
return (IFormComponent) newMock(IFormComponent.class);
@@ -49,17 +65,19 @@
return (ValidationMessages) newMock(ValidationMessages.class);
}
- protected ValidationMessages newMessages(String messageOverride, String messageKey, Object[] parameters, String result)
+ protected ValidationMessages newMessages(String messageOverride, String messageKey,
+ Object[] parameters, String result)
{
MockControl control = newControl(ValidationMessages.class);
ValidationMessages messages = (ValidationMessages) control.getMock();
-
+
trainFormatMessage(control, messages, messageOverride, messageKey, parameters, result);
-
+
return messages;
}
- protected void trainFormatMessage(MockControl control, ValidationMessages messages, String messageOverride, String messageKey, Object[] parameters, String result)
+ protected void trainFormatMessage(MockControl control, ValidationMessages messages,
+ String messageOverride, String messageKey, Object[] parameters, String result)
{
messages.formatValidationMessage(messageOverride, messageKey, parameters);
control.setMatcher(MockControl.ARRAY_MATCHER);
1.4 +4 -10 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestPattern.java
Index: TestPattern.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestPattern.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestPattern.java 19 Aug 2005 13:28:16 -0000 1.3
+++ TestPattern.java 25 Aug 2005 19:43:05 -0000 1.4
@@ -111,16 +111,13 @@
context.includeClasspathScript("/org/apache/tapestry/form/validator/RegExValidator.js");
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", "myfield");
trainFormatMessage(contextc, context, null, ValidationStrings.REGEX_MISMATCH, new Object[]
{ "Fred" }, "default message");
- context.getFieldDOM();
- contextc.setReturnValue("document.fred.barney");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_regexp(event, document.fred.barney, '"
+ .addSubmitHandler("function(event) { Tapestry.validate_regexp(event, 'myfield', '"
+ pattern + "', 'default message'); }");
replayControls();
@@ -143,7 +140,7 @@
context.includeClasspathScript("/org/apache/tapestry/form/validator/RegExValidator.js");
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", "myfield");
trainFormatMessage(
contextc,
@@ -154,11 +151,8 @@
{ "Fred" },
"custom\\message");
- context.getFieldDOM();
- contextc.setReturnValue("document.fred.barney");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_regexp(event, document.fred.barney, '"
+ .addSubmitHandler("function(event) { Tapestry.validate_regexp(event, 'myfield', '"
+ pattern + "', 'custom\\\\message'); }");
replayControls();
1.5 +2 -5 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMaxLength.java
Index: TestMaxLength.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMaxLength.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TestMaxLength.java 19 Aug 2005 13:28:16 -0000 1.4
+++ TestMaxLength.java 25 Aug 2005 19:43:05 -0000 1.5
@@ -95,21 +95,18 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
trainFormatMessage(contextc, context, null, ValidationStrings.VALUE_TOO_LONG, new Object[]
{ new Integer(20), "My Field" }, "default\\message");
context
- .addSubmitListener("function(event) { Tapestry.validate_max_length(event, document.myform.myfield, 20, 'default\\\\message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_max_length(event, 'myfield', 20, 'default\\\\message'); }");
replayControls();
1.4 +4 -10 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMin.java
Index: TestMin.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestMin.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestMin.java 19 Aug 2005 13:28:16 -0000 1.3
+++ TestMin.java 25 Aug 2005 19:43:05 -0000 1.4
@@ -96,7 +96,7 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
@@ -106,11 +106,8 @@
trainFormatMessage(contextc, context, null, ValidationStrings.VALUE_TOO_SMALL, new Object[]
{ "My Field", new Double(20) }, "default message");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_min_number(event, document.myform.myfield, 20.0, 'default message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_min_number(event, 'myfield', 20.0, 'default message'); }");
replayControls();
@@ -123,7 +120,7 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField("My Field");
+ IFormComponent field = newField("My Field", "myfield");
MockControl contextc = newControl(FormComponentContributorContext.class);
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
@@ -139,11 +136,8 @@
{ "My Field", new Double(20) },
"custom\\message");
- context.getFieldDOM();
- contextc.setReturnValue("document.myform.myfield");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_min_number(event, document.myform.myfield, 20.0, 'custom\\\\message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_min_number(event, 'myfield', 20.0, 'custom\\\\message'); }");
replayControls();
1.5 +6 -14 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestEmail.java
Index: TestEmail.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/validator/TestEmail.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- TestEmail.java 19 Aug 2005 13:28:16 -0000 1.4
+++ TestEmail.java 25 Aug 2005 19:43:05 -0000 1.5
@@ -110,17 +110,13 @@
context.includeClasspathScript("/org/apache/tapestry/form/validator/RegExValidator.js");
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", "myfield");
trainFormatMessage(contextc, context, null, ValidationStrings.INVALID_EMAIL, new Object[]
{ "Fred" }, "default\\message");
- context.getFieldDOM();
- contextc.setReturnValue("document.fred.barney");
-
- context
- .addSubmitListener("function(event) { Tapestry.validate_regex(event, document.fred.barney, '"
- + pattern + "', 'default\\\\message'); }");
+ context.addSubmitHandler("function(event) { Tapestry.validate_regex(event, 'myfield', '"
+ + pattern + "', 'default\\\\message'); }");
replayControls();
@@ -143,7 +139,7 @@
context.includeClasspathScript("/org/apache/tapestry/form/validator/RegExValidator.js");
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", "barney");
trainFormatMessage(
contextc,
@@ -154,12 +150,8 @@
{ "Fred" },
"custom message");
- context.getFieldDOM();
- contextc.setReturnValue("document.fred.barney");
-
- context
- .addSubmitListener("function(event) { Tapestry.validate_regex(event, document.fred.barney, '"
- + pattern + "', 'custom message'); }");
+ context.addSubmitHandler("function(event) { Tapestry.validate_regex(event, 'barney', '"
+ + pattern + "', 'custom message'); }");
replayControls();
1.7 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MaxLength.java
Index: MaxLength.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MaxLength.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MaxLength.java 19 Aug 2005 13:28:16 -0000 1.6
+++ MaxLength.java 25 Aug 2005 19:43:05 -0000 1.7
@@ -73,15 +73,15 @@
{
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_max_length(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", ");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_max_length(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', ");
buffer.append(_maxLength);
buffer.append(", ");
buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
}
1.8 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Email.java
Index: Email.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Email.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Email.java 23 Aug 2005 23:21:10 -0000 1.7
+++ Email.java 25 Aug 2005 19:43:05 -0000 1.8
@@ -77,14 +77,14 @@
String pattern = _matcher.getEscapedPatternString(PATTERN);
String message = TapestryUtils.enquote(buildMessage(context, field));
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_regex(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", '");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_regex(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', '");
buffer.append(pattern);
buffer.append("', ");
buffer.append(message);
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
}
1.7 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Min.java
Index: Min.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Min.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Min.java 19 Aug 2005 13:28:16 -0000 1.6
+++ Min.java 25 Aug 2005 19:43:05 -0000 1.7
@@ -73,15 +73,15 @@
String message = buildMessage(context, field);
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_min_number(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", ");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_min_number(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', ");
buffer.append(_min);
buffer.append(", ");
buffer.append(TapestryUtils.enquote(message));
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
public void setMin(double min)
1.6 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Pattern.java
Index: Pattern.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Pattern.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Pattern.java 19 Aug 2005 13:28:16 -0000 1.5
+++ Pattern.java 25 Aug 2005 19:43:05 -0000 1.6
@@ -77,15 +77,15 @@
String pattern = _matcher.getEscapedPatternString(_pattern);
String message = buildMessage(context, field);
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_regexp(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", '");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_regexp(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', '");
buffer.append(pattern);
buffer.append("', ");
buffer.append(TapestryUtils.enquote(message));
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
public void setPattern(String pattern)
1.6 +4 -2 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/StringValidator.js
Index: StringValidator.js
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/StringValidator.js,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StringValidator.js 19 Aug 2005 13:28:16 -0000 1.5
+++ StringValidator.js 25 Aug 2005 19:43:05 -0000 1.6
@@ -12,16 +12,18 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-Tapestry.validate_min_length = function(event, field, min, message)
+Tapestry.validate_min_length = function(event, fieldId, min, message)
{
+ var field = this.find(fieldId);
if (field.value == "") return;
if (field.value.length < min)
event.invalid_field(field, message)
}
-Tapestry.validate_max_length = function(event, field, max, message)
+Tapestry.validate_max_length = function(event, fieldId, max, message)
{
+ var field = this.find(fieldId);
if (field.value == "") return;
if (field.value.length > max)
1.10 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Required.java
Index: Required.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Required.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Required.java 19 Aug 2005 13:28:16 -0000 1.9
+++ Required.java 25 Aug 2005 19:43:05 -0000 1.10
@@ -75,13 +75,13 @@
{
context.registerForFocus(ValidationConstants.REQUIRED_FIELD);
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.require_field(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", ");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.require_field(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', ");
buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
/**
1.6 +2 -1 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/RegExValidator.js
Index: RegExValidator.js
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/RegExValidator.js,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RegExValidator.js 19 Aug 2005 13:28:16 -0000 1.5
+++ RegExValidator.js 25 Aug 2005 19:43:05 -0000 1.6
@@ -12,8 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-Tapestry.validate_regex = function(event, field, pattern, message)
+Tapestry.validate_regex = function(event, fieldId, pattern, message)
{
+ var field = this.find(fieldId);
var value = field.value;
if (value == "") return;
1.6 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Max.java
Index: Max.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/Max.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Max.java 19 Aug 2005 13:28:16 -0000 1.5
+++ Max.java 25 Aug 2005 19:43:05 -0000 1.6
@@ -73,15 +73,15 @@
String message = TapestryUtils.enquote(buildMessage(context, field));
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_max_number(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", ");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_max_number(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', ");
buffer.append(_max);
buffer.append(", ");
buffer.append(message);
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
public void setMax(double max)
1.7 +4 -4 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MinLength.java
Index: MinLength.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/MinLength.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MinLength.java 19 Aug 2005 13:28:16 -0000 1.6
+++ MinLength.java 25 Aug 2005 19:43:05 -0000 1.7
@@ -77,14 +77,14 @@
{
context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js");
- StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_min_length(event, ");
- buffer.append(context.getFieldDOM());
- buffer.append(", ");
+ StringBuffer buffer = new StringBuffer("function(event) { Tapestry.validate_min_length(event, '");
+ buffer.append(field.getClientId());
+ buffer.append("', ");
buffer.append(_minLength);
buffer.append(", ");
buffer.append(TapestryUtils.enquote(buildMessage(context, field)));
buffer.append("); }");
- context.addSubmitListener(buffer.toString());
+ context.addSubmitHandler(buffer.toString());
}
}
\ No newline at end of file
1.6 +4 -2 jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/NumberValidator.js
Index: NumberValidator.js
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/form/validator/NumberValidator.js,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- NumberValidator.js 19 Aug 2005 13:58:39 -0000 1.5
+++ NumberValidator.js 25 Aug 2005 19:43:05 -0000 1.6
@@ -12,8 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-Tapestry.validate_min_number = function(event, field, min, message)
+Tapestry.validate_min_number = function(event, fieldId, min, message)
{
+ var field = this.find(fieldId);
var value = field.value;
if (value == "") return;
@@ -22,8 +23,9 @@
event.invalid_field(field, message)
}
-Tapestry.validate_max_number = function(event, field, max, message)
+Tapestry.validate_max_number = function(event, fieldId, max, message)
{
+ var field = this.find(fieldId);
var value = field.value;
if (value == "") return;
1.8 +2 -2 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java
Index: TestValidatableFieldSupportImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestValidatableFieldSupportImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestValidatableFieldSupportImpl.java 10 Aug 2005 06:02:50 -0000 1.7
+++ TestValidatableFieldSupportImpl.java 25 Aug 2005 19:43:05 -0000 1.8
@@ -140,7 +140,7 @@
form.getName();
formControl.setReturnValue("myform");
- field.getName();
+ field.getClientId();
fieldControl.setReturnValue("myfield");
field.getValidators();
@@ -189,7 +189,7 @@
form.getName();
formControl.setReturnValue("myform");
- field.getName();
+ field.getClientId();
fieldControl.setReturnValue("myfield");
field.getValidators();
1.3 +1 -1 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestTranslatedFieldSupportImpl.java
Index: TestTranslatedFieldSupportImpl.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestTranslatedFieldSupportImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestTranslatedFieldSupportImpl.java 18 Aug 2005 21:56:06 -0000 1.2
+++ TestTranslatedFieldSupportImpl.java 25 Aug 2005 19:43:05 -0000 1.3
@@ -133,7 +133,7 @@
form.getName();
formControl.setReturnValue("myform");
- field.getName();
+ field.getClientId();
fieldControl.setReturnValue("myfield");
field.getTranslator();
1.2 +7 -7 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java
Index: TestFormComponentContributorContext.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormComponentContributorContext.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestFormComponentContributorContext.java 18 Jun 2005 12:54:39 -0000 1.1
+++ TestFormComponentContributorContext.java 25 Aug 2005 19:43:05 -0000 1.2
@@ -46,7 +46,7 @@
return form;
}
- private IFormComponent newField(IForm form, String name)
+ private IFormComponent newField(IForm form, String clientId)
{
MockControl control = newControl(IFormComponent.class);
IFormComponent field = (IFormComponent) control.getMock();
@@ -54,8 +54,8 @@
field.getForm();
control.setReturnValue(form);
- field.getName();
- control.setReturnValue(name);
+ field.getClientId();
+ control.setReturnValue(clientId);
return field;
}
@@ -99,7 +99,7 @@
FormComponentContributorContext context = new FormComponentContributorContextImpl(
Locale.ENGLISH, cycle, field);
- assertEquals("document.myform.myfield", context.getFieldDOM());
+ assertEquals("Tapestry.find('myfield')", context.getFieldDOM());
verifyControls();
}
@@ -136,7 +136,7 @@
verifyControls();
}
- public void testAddSubmitListener()
+ public void testAddSubmitHandler()
{
IForm form = newForm("myform");
@@ -153,7 +153,7 @@
PageRenderSupport prs = newSupport();
- prs.addInitializationScript("document.myform.events.addSubmitListener(foo);");
+ prs.addInitializationScript("Tapestry.onsubmit('myform', foo);");
trainGetAttribute(cyclec, cycle, TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE, prs);
@@ -162,7 +162,7 @@
FormComponentContributorContext context = new FormComponentContributorContextImpl(
Locale.ENGLISH, cycle, field);
- context.addSubmitListener("foo");
+ context.addSubmitHandler("foo");
verifyControls();
}
1.14 +35 -52 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormSupport.java
Index: TestFormSupport.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/TestFormSupport.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TestFormSupport.java 24 Aug 2005 14:45:33 -0000 1.13
+++ TestFormSupport.java 25 Aug 2005 19:43:05 -0000 1.14
@@ -157,10 +157,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -198,7 +195,7 @@
trainGetFocusField(delegatec, delegate, "wilma");
trainGetFieldFocus(cyclec, cycle, null);
- support.addInitializationScript("Tapestry.set_focus(document.getElementById('wilma'));");
+ trainFocus(support);
trainSetFieldFocus(cycle);
@@ -209,6 +206,19 @@
verifyControls();
}
+ private void trainRegister(PageRenderSupport support)
+ {
+ support.addExternalScript(new ClasspathResource(getClassResolver(),
+ "/org/apache/tapestry/form/Form.js"));
+
+ support.addInitializationScript("Tapestry.register_form('myform');");
+ }
+
+ private void trainFocus(PageRenderSupport support)
+ {
+ support.addInitializationScript("Tapestry.set_focus('wilma');");
+ }
+
private void trainSetFieldFocus(IRequestCycle cycle)
{
cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
@@ -338,10 +348,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -363,7 +370,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -377,7 +384,7 @@
writer.end();
support
- .addInitializationScript("document.getElementById('myform').events.addSubmitListener(function (event)\n{\n mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
+ .addInitializationScript("Tapestry.onsubmit('myform', function (event)\n{\n mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
// Side test: what if no focus field?
@@ -441,10 +448,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -464,7 +468,7 @@
writer.attribute("method", "post");
writer.attribute("action", "/app");
writer.attribute("name", "myform");
- writer.attribute("id", "myform");
+ writer.attribute("id", "myform");
writer.attribute("enctype", "foo/bar");
render.render(writer, cycle);
@@ -540,10 +544,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -565,7 +566,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -638,10 +639,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -721,10 +719,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -746,7 +741,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -821,10 +816,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -846,7 +838,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -860,7 +852,7 @@
writer.end();
support
- .addInitializationScript("document.getElementById('myform').events.addResetListener(function (event)\n{\n myReset1();\n myReset2();\n});\n");
+ .addInitializationScript("Tapestry.onreset('myform', function (event)\n{\n myReset1();\n myReset2();\n});\n");
trainGetFocusField(delegatec, delegate, null);
@@ -1173,10 +1165,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1198,7 +1187,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -1287,10 +1276,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1312,7 +1298,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -1598,10 +1584,7 @@
IRender render = (IRender) newMock(IRender.class);
- support.addExternalScript(new ClasspathResource(getClassResolver(),
- "/org/apache/tapestry/form/Form.js"));
-
- support.addInitializationScript("new FormEventManager(document.getElementById('myform'));");
+ trainRegister(support);
link.getParameterNames();
linkc.setReturnValue(new String[]
@@ -1623,7 +1606,7 @@
writer.attribute("name", "myform");
writer.attribute("id", "myform");
-
+
render.render(writer, cycle);
writer.println();
@@ -1637,7 +1620,7 @@
writer.end();
support
- .addInitializationScript("document.getElementById('myform').events.addSubmitListener(function (event)\n{\n mySubmit();\n});\n");
+ .addInitializationScript("Tapestry.onsubmit('myform', function (event)\n{\n mySubmit();\n});\n");
trainGetFocusField(delegatec, delegate, null);
1.7 +31 -3 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/FormComponentContributorTestCase.java
Index: FormComponentContributorTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/FormComponentContributorTestCase.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FormComponentContributorTestCase.java 19 Aug 2005 13:28:17 -0000 1.6
+++ FormComponentContributorTestCase.java 25 Aug 2005 19:43:05 -0000 1.7
@@ -130,6 +130,34 @@
return field;
}
+ protected IFormComponent newField(String displayName, String clientId, int count)
+ {
+ MockControl control = MockControl.createNiceControl(IFormComponent.class);
+
+ addControl(control);
+
+ IFormComponent field = (IFormComponent) control.getMock();
+
+ field.getDisplayName();
+ control.setReturnValue(displayName);
+
+ field.getClientId();
+ control.setReturnValue(clientId, count);
+
+ return field;
+ }
+
+ protected IFormComponent newFieldWithClientId(String clientId)
+ {
+ MockControl control = newControl(IFormComponent.class);
+ IFormComponent field = (IFormComponent)control.getMock();
+
+ field.getClientId();
+ control.setReturnValue(clientId);
+
+ return field;
+ }
+
protected void trainGetFieldDOM(MockControl control, FormComponentContributorContext context,
String result)
{
@@ -177,9 +205,9 @@
return messages;
}
- protected void trainTrim(FormComponentContributorContext context, String fieldDOM)
+ protected void trainTrim(FormComponentContributorContext context, String fieldId)
{
- context.addSubmitListener("function (event) { Tapestry.trim_field_value(" + fieldDOM
- + "); }");
+ context.addSubmitHandler("function (event) { Tapestry.trim_field_value('" + fieldId
+ + "'); }");
}
}
1.9 +10 -8 jakarta-tapestry/framework/src/java/org/apache/tapestry/TapestryUtils.java
Index: TapestryUtils.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/java/org/apache/tapestry/TapestryUtils.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TapestryUtils.java 24 Aug 2005 12:19:15 -0000 1.8
+++ TapestryUtils.java 25 Aug 2005 19:43:06 -0000 1.9
@@ -250,24 +250,26 @@
* [A-Za-z][A-Za-z0-9:_.-]*, but a component id might include a leading dollar sign (for an
* anonymous component with a fabricated id).
*/
-
+
public static String convertTapestryIdToNMToken(String baseId)
{
- while (baseId.startsWith("$"))
- baseId = baseId.substring(1);
-
- return baseId.replace('$', '_');
+ String result = baseId.replace('$', '_');
+
+ while (result.startsWith("_"))
+ result = result.substring(1);
+
+ return result;
}
/**
* Converts a clientId into a client-side DOM reference; i.e.
- * <code>document.getElementById('<i>id</i>')</code>
+ * <code>document.getElementById('<i>id</i>')</code>.
*/
-
+
public static String buildClientElementReference(String clientId)
{
Defense.notNull(clientId, "clientId");
-
+
return "document.getElementById('" + clientId + "')";
}
}
\ No newline at end of file
1.7 +2 -5 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java
Index: TestStringTranslator.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestStringTranslator.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestStringTranslator.java 19 Aug 2005 13:28:17 -0000 1.6
+++ TestStringTranslator.java 25 Aug 2005 19:43:06 -0000 1.7
@@ -155,12 +155,9 @@
FormComponentContributorContext context = (FormComponentContributorContext) contextc
.getMock();
- context.getFieldDOM();
- contextc.setReturnValue("field_dom");
+ IFormComponent field = newFieldWithClientId("myfield");
- trainTrim(context, "field_dom");
-
- IFormComponent field = newField();
+ trainTrim(context, "myfield");
replayControls();
1.11 +9 -16 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java
Index: TestNumberTranslator.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestNumberTranslator.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TestNumberTranslator.java 19 Aug 2005 13:28:17 -0000 1.10
+++ TestNumberTranslator.java 25 Aug 2005 19:43:06 -0000 1.11
@@ -210,12 +210,10 @@
trainBuildMessage(contextc, context, null, ValidationStrings.INVALID_NUMBER, new Object[]
{ "Number Field", "#" }, "invalid number message");
- trainGetFieldDOM(contextc, context, "field_dom");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_number(event, field_dom, 'invalid number message'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_number(event, 'numberField', 'invalid number message'); }");
- IFormComponent field = newField("Number Field");
+ IFormComponent field = newField("Number Field", "numberField", 1);
replayControls();
@@ -250,12 +248,10 @@
{ "Number Field", "#" },
"Blah Blah 'Field Name' Blah.");
- trainGetFieldDOM(contextc, context, "field_dom");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_number(event, field_dom, 'Blah Blah \\'Field Name\\' Blah.'); }");
+ .addSubmitHandler("function(event) { Tapestry.validate_number(event, 'myfield', 'Blah Blah \\'Field Name\\' Blah.'); }");
- IFormComponent field = newField("Number Field");
+ IFormComponent field = newField("Number Field", "myfield", 1);
replayControls();
@@ -268,6 +264,9 @@
public void testTrimRenderContribution()
{
+
+ IFormComponent field = newField("Number Field", "myfield", 2);
+
NumberTranslator translator = new NumberTranslator();
IMarkupWriter writer = newWriter();
@@ -279,21 +278,15 @@
context.includeClasspathScript(translator.defaultScript());
- trainGetFieldDOM(contextc, context, "field_dom");
-
- trainTrim(context, "field_dom");
+ trainTrim(context, "myfield");
trainGetLocale(contextc, context, Locale.ENGLISH);
trainBuildMessage(contextc, context, null, ValidationStrings.INVALID_NUMBER, new Object[]
{ "Number Field", "#" }, "invalid number message");
- trainGetFieldDOM(contextc, context, "field_dom");
-
context
- .addSubmitListener("function(event) { Tapestry.validate_number(event, field_dom, 'invalid number message'); }");
-
- IFormComponent field = newField("Number Field");
+ .addSubmitHandler("function(event) { Tapestry.validate_number(event, 'myfield', 'invalid number message'); }");
replayControls();
1.9 +3 -8 jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
Index: TestDateTranslator.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestDateTranslator.java 19 Aug 2005 13:28:17 -0000 1.8
+++ TestDateTranslator.java 25 Aug 2005 19:43:06 -0000 1.9
@@ -235,16 +235,11 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
- IFormComponent field = newField();
+ IFormComponent field = newFieldWithClientId("foo");
- MockControl contextc = newControl(FormComponentContributorContext.class);
- FormComponentContributorContext context = (FormComponentContributorContext) contextc
- .getMock();
+ FormComponentContributorContext context = (FormComponentContributorContext) newMock(FormComponentContributorContext.class);
- context.getFieldDOM();
- contextc.setReturnValue("field_dom");
-
- trainTrim(context, "field_dom");
+ trainTrim(context, "foo");
replayControls();
1.6 +13 -0 jakarta-tapestry/framework/src/test/org/apache/tapestry/TestTapestryUtils.java
Index: TestTapestryUtils.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/test/org/apache/tapestry/TestTapestryUtils.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestTapestryUtils.java 19 Aug 2005 13:28:17 -0000 1.5
+++ TestTapestryUtils.java 25 Aug 2005 19:43:06 -0000 1.6
@@ -272,4 +272,17 @@
assertEquals("'this is a \\'single quote\\''", TapestryUtils
.enquote("this is a 'single quote'"));
}
+
+ public void testConvertTapestryIdToNMToken()
+ {
+ assertEquals("abc", TapestryUtils.convertTapestryIdToNMToken("abc"));
+ assertEquals("abc", TapestryUtils.convertTapestryIdToNMToken("$abc"));
+ assertEquals("a_b_c", TapestryUtils.convertTapestryIdToNMToken("$a$b$c"));
+ }
+
+ public void testBuildClientElementReference()
+ {
+ assertEquals("document.getElementById('foo')", TapestryUtils
+ .buildClientElementReference("foo"));
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org