You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/08/04 21:59:19 UTC

svn commit: r562756 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java js/tapestry/form.js

Author: jkuhnert
Date: Sat Aug  4 12:59:18 2007
New Revision: 562756

URL: http://svn.apache.org/viewvc?view=rev&rev=562756
Log:
Fixed broken form.js that was missing form_compat.js inclusion.

Upgraded Ognl ExpressionCompiler interface to handle new local reference context methods.

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java?view=diff&rev=562756&r1=562755&r2=562756
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java Sat Aug  4 12:59:18 2007
@@ -355,10 +355,8 @@
     void createLocalReferences(OgnlContext context, ClassFab classFab, Class[] params)
             throws CannotCompileException, NotFoundException
     {
-        context.remove(LOCAL_REFERENCE_COUNTER);
-
-        Map referenceMap = (Map) context.remove(LOCAL_REFERENCE_MAP);
-        if (referenceMap == null)
+        Map referenceMap = context.getLocalReferences();
+        if (referenceMap == null || referenceMap.size() < 1)
             return;
 
         Iterator it = referenceMap.keySet().iterator();
@@ -381,6 +379,8 @@
 
             MethodSignature method = new MethodSignature(ref.getType(), ref.getName(), params, null);
             classFab.addMethod(Modifier.PUBLIC, method, body);
+
+            it.remove();
         }
     }
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js?view=diff&rev=562756&r1=562755&r2=562756
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js Sat Aug  4 12:59:18 2007
@@ -1,6 +1,8 @@
 dojo.provide("tapestry.form");
 dojo.provide("tapestry.form.datetime");
 dojo.provide("tapestry.form.validation");
+dojo.provide("tapestry.form_compat");
+dojo.provide("Tapestry");
 
 dojo.require("dojo.event.browser");
 dojo.require("dojo.dom");
@@ -807,4 +809,128 @@
 		return true;
 	}
 
+}
+
+// package: tapestry.form_compat
+// Backwards compatibility functions, to be removed in 4.1.1 js version. Contains all of
+// the functions found in the old Form.js provided by previous Tapestry releases.
+// Should only be included by tapestry.form, don't dojo.require() this module.
+
+// global used to deprecate old event connection methods
+tapestry.form.deprecateConnect=function(formName, fnc, event, advice){
+	dojo.deprecated("Tapestry.on"+event,
+					"use dojo.event.connect instead",
+					"4.1.1");
+
+	if (advice) {
+		dojo.event.connect(advice, dojo.byId(formName), event, fnc);
+	} else {
+		dojo.event.connect(dojo.byId(formName), event, fnc);
+	}
+}
+
+// BEGIN old function definitions
+
+Tapestry.default_invalid_field_handler=function(event, field, message){
+	dojo.deprecated("Tapestry.default_invalid_field_handler",
+					"use tapestry.form.validation.validateForm instead",
+					"4.1.1");
+	if (field.disabled) return;
+
+    if (typeof window != "undefined"){
+    	window.alert(message);
+    } else {
+    	dojo.debug("Invalid field : " + message);
+    }
+    tapestry.form.focusField(field);
+}
+
+Tapestry.invalid_field=function(field, message){
+	Tapestry.default_invalid_field_handler(null, field, message);
+}
+
+Tapestry.find=function(id){
+	dojo.deprecated("Tapestry.find",
+					"use dojo.byId instead",
+					"4.1.1");
+	return dojo.byId(id);
+}
+
+Tapestry.register_form=function(formId){
+	dojo.deprecated("Tapestry.register_form",
+					"use tapestry.form.registerForm instead register_form(" + formId + ")",
+					"4.1.1");
+	tapestry.form.registerForm(formId);
+}
+
+Tapestry.onpresubmit=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "onsubmit", "before"); };
+Tapestry.onsubmit=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "onsubmit"); };
+Tapestry.onpostsubmit=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "onsubmit", "after"); };
+Tapestry.onreset=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "onreset"); };
+Tapestry.onrefresh=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "onrefresh"); };
+Tapestry.oncancel=function(formName, fnc){ tapestry.form.deprecateConnect(formName, fnc, "oncancel"); };
+
+Tapestry.set_focus=function (field){
+	dojo.deprecated("Tapestry.set_focus",
+					"use tapestry.form.focusField instead",
+					"4.1.1");
+	tapestry.form.focusField(field);
+}
+
+Tapestry.trim_field_value = function(fieldId)
+{
+	dojo.deprecated("Tapestry.trim_field_value",
+					"use dojo.html instead",
+					"4.1.1");
+
+	if (arguments.length < 1) return;
+
+	var elm=dojo.byId(id);
+	if (!elm) {return;}
+	if ( elm.type != "text" && elm.type != "textarea"
+		&& elm.type != "password" ) { return; }
+
+	elm.value = elm.value.replace(/(^\s*|\s*$)/g, "");
+}
+
+Tapestry.require_field = function(event, field, message)
+{
+	dojo.deprecated("Tapestry.require_field",
+					"use tapestry.form.validation.validateForm instead",
+					"4.1.1");
+	if (arguments.length < 1) return;
+
+	var elem=dojo.byId(field);
+	if (!elem) { return; }
+
+	// Are textbox, textarea, or password fields blank.
+	if ( (elem.type == "text" || elem.type == "textarea" || elem.type == "password")
+		&& /^\s*$/.test(elem.value) ) {
+		Tapestry.default_invalid_field_handler(elem, message);
+		return;
+	}
+	// Does drop-down box have option selected.
+	else if ( (elem.type == "select-one" || elem.type == "select-multiple")
+			&& elem.selectedIndex == -1 ) {
+		Tapestry.default_invalid_field_handler(elem, message);
+		return;
+	} else if ( elem instanceof Array )  {
+		// Does radio button group (or check box group) have option checked.
+		var checked = false;
+		for (var j = 0; j < elem.length; j++) {
+			if (elem[j].checked) { checked = true; }
+		}
+		if ( !checked ) {
+			Tapestry.default_invalid_field_handler(elem, message);
+			return;
+		}
+	}
+}
+
+Tapestry.submit_form = function(form_id, field_name)
+{
+	dojo.deprecated("Tapestry.submit_form",
+					"use tapestry.form.submit instead (" + form_id + ", " + field_name + ")",
+					"4.1.1");
+	tapestry.form.submit(form_id, field_name);
 }