You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/05/12 22:33:17 UTC

svn commit: r537510 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/dojo/AjaxShellDelegate.java js/dojo/dojo.js js/dojo/src/widget/Widget.js js/tapestry/core.js

Author: jkuhnert
Date: Sat May 12 13:33:16 2007
New Revision: 537510

URL: http://svn.apache.org/viewvc?view=rev&rev=537510
Log:
Minor improvements to some of the core javascript inclusion logic so as to load as little as possible. (not quite as little, more to do still)

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/dojo.js
    tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java?view=diff&rev=537510&r1=537509&r2=537510
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java Sat May 12 13:33:16 2007
@@ -111,12 +111,31 @@
         
         str.append("<script type=\"text/javascript\" src=\"")
         .append(_dojoSource.buildURL()).append("\"></script>");
+
+        // configure basic dojo properties , logging includes
+
+        if (_debug) {
+
+            String logRequire = _consoleEnabled ? "dojo.require(\"dojo.debug.console\");\n"
+                : "dojo.require(\"dojo.logging.Logger\");\n";
+
+            str.append("\n<script type=\"text/javascript\">\n");
+            str.append(logRequire)
+            .append("dojo.log.setLevel(dojo.log.getLevel(\"").append(_browserLogLevel)
+            .append("\"));\n")
+            .append("</script>");
+        }
         
         // module path registration to tapestry javascript sources
-        
+
+        String tapestryUrl = _tapestryPath.buildURL();
+        if (tapestryUrl.endsWith("/")) {
+            tapestryUrl = tapestryUrl.substring(0, tapestryUrl.length() - 1);
+        }
+
         str.append("\n<script type=\"text/javascript\">\n")
         .append("dojo.registerModulePath(\"tapestry\", \"")
-        .append(_tapestryPath.buildURL()).append("\");\n");
+        .append(tapestryUrl).append("\");\n");
         str.append("</script>\n");
         
         // include core tapestry.js package
@@ -124,19 +143,9 @@
         str.append("<script type=\"text/javascript\" src=\"")
         .append(_tapestrySource.buildURL()).append("\"></script>");
         
-        String logRequire = _consoleEnabled ? "dojo.require(\"dojo.debug.console\");\n"
-                : "dojo.require(\"dojo.logging.Logger\");\n";
-        
-        // logging configuration
+        // namespace registration
         
         str.append("\n<script type=\"text/javascript\">\n");
-        
-        if (_debug) {
-            str.append(logRequire)
-            .append("dojo.log.setLevel(dojo.log.getLevel(\"").append(_browserLogLevel)
-            .append("\"));\n");
-        }
-        
         str.append("dojo.require(\"tapestry.namespace\");\n").append("</script>");
         
         writer.printRaw(str.toString());

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/dojo.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/dojo.js?view=diff&rev=537510&r1=537509&r2=537510
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/dojo.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/dojo.js Sat May 12 13:33:16 2007
@@ -705,12 +705,7 @@
 return _43b;};dojo.html.isTag=function(node){node=dojo.byId(node);if(node&&node.tagName){for(var i=1;i<arguments.length;i++){if(node.tagName.toLowerCase()==String(arguments[i]).toLowerCase()){return String(arguments[i]).toLowerCase();}}}
 return "";};if(dojo.render.html.ie&&!dojo.render.html.ie70){if(window.location.href.substr(0,6).toLowerCase()!="https:"){(function(){var _440=dojo.doc().createElement("script");_440.src="javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";dojo.doc().getElementsByTagName("head")[0].appendChild(_440);})();}}else{dojo.html.createExternalElement=function(doc,tag){return doc.createElement(tag);};}
 dojo.html._callDeprecated=function(_443,_444,args,_446,_447){dojo.deprecated("dojo.html."+_443,"replaced by dojo.html."+_444+"("+(_446?"node, {"+_446+": "+_446+"}":"")+")"+(_447?"."+_447:""),"0.5");var _448=[];if(_446){var _449={};_449[_446]=args[1];_448.push(args[0]);_448.push(_449);}else{_448=args;}
-var ret=dojo.html[_444].apply(dojo.html,args);if(_447){return ret[_447];}else{return ret;}};dojo.html.getViewportWidth=function(){return dojo.html._callDeprecated("getViewportWidth","getViewport",arguments,null,"width");};dojo.html.getViewportHeight=function(){return dojo.html._callDeprecated("getViewportHeight","getViewport",arguments,null,"height");};dojo.html.getViewportSize=function(){return dojo.html._callDeprecated("getViewportSize","getViewport",arguments);};dojo.html.getScrollTop=function(){return dojo.html._callDeprecated("getScrollTop","getScroll",arguments,null,"top");};dojo.html.getScrollLeft=function(){return dojo.html._callDeprecated("getScrollLeft","getScroll",arguments,null,"left");};dojo.html.getScrollOffset=function(){return dojo.html._callDeprecated("getScrollOffset","getScroll",arguments,null,"offset");};dojo.provide("dojo.a11y");dojo.a11y={imgPath:dojo.uri.moduleUri("dojo.widget","templates/images"),doAccessibleCheck:true,accessible:null,checkAccessible:
 function(){if(this.accessible===null){this.accessible=false;if(this.doAccessibleCheck==true){this.accessible=this.testAccessible();}}
-return this.accessible;},testAccessible:function(){this.accessible=false;if(dojo.render.html.ie||dojo.render.html.mozilla){var div=document.createElement("div");div.style.backgroundImage="url(\""+this.imgPath+"/tab_close.gif\")";dojo.body().appendChild(div);var _44c=null;if(window.getComputedStyle){var _44d=getComputedStyle(div,"");_44c=_44d.getPropertyValue("background-image");}else{_44c=div.currentStyle.backgroundImage;}
-var _44e=false;if(_44c!=null&&(_44c=="none"||_44c=="url(invalid-url:)")){this.accessible=true;}
-dojo.body().removeChild(div);}
-return this.accessible;},setCheckAccessible:function(_44f){this.doAccessibleCheck=_44f;},setAccessibleMode:function(){if(this.accessible===null){if(this.checkAccessible()){dojo.render.html.prefixes.unshift("a11y");}}
-return this.accessible;}};dojo.provide("dojo.widget.Widget");dojo.declare("dojo.widget.Widget",null,function(){this.children=[];this.extraArgs={};},{parent:null,isTopLevel:false,disabled:false,isContainer:false,widgetId:"",widgetType:"Widget",ns:"dojo",getNamespacedType:function(){return (this.ns?this.ns+":"+this.widgetType:this.widgetType).toLowerCase();},toString:function(){return "[Widget "+this.getNamespacedType()+", "+(this.widgetId||"NO ID")+"]";},repr:function(){return this.toString();},enable:function(){this.disabled=false;},disable:function(){this.disabled=true;},onResized:function(){this.notifyChildrenOfResize();},notifyChildrenOfResize:function(){for(var i=0;i<this.children.length;i++){var _451=this.children[i];if(_451.onResized){_451.onResized();}}},create:function(args,_453,_454,ns){if(ns){this.ns=ns;}
+var ret=dojo.html[_444].apply(dojo.html,args);if(_447){return ret[_447];}else{return ret;}};dojo.html.getViewportWidth=function(){return dojo.html._callDeprecated("getViewportWidth","getViewport",arguments,null,"width");};dojo.html.getViewportHeight=function(){return dojo.html._callDeprecated("getViewportHeight","getViewport",arguments,null,"height");};dojo.html.getViewportSize=function(){return dojo.html._callDeprecated("getViewportSize","getViewport",arguments);};dojo.html.getScrollTop=function(){return dojo.html._callDeprecated("getScrollTop","getScroll",arguments,null,"top");};dojo.html.getScrollLeft=function(){return dojo.html._callDeprecated("getScrollLeft","getScroll",arguments,null,"left");};dojo.html.getScrollOffset=function(){return dojo.html._callDeprecated("getScrollOffset","getScroll",arguments,null,"offset");};dojo.provide("dojo.widget.Widget");dojo.declare("dojo.widget.Widget",null,function(){this.children=[];this.extraArgs={};},{parent:null,isTopLevel:false,d
 isabled:false,isContainer:false,widgetId:"",widgetType:"Widget",ns:"dojo",getNamespacedType:function(){return (this.ns?this.ns+":"+this.widgetType:this.widgetType).toLowerCase();},toString:function(){return "[Widget "+this.getNamespacedType()+", "+(this.widgetId||"NO ID")+"]";},repr:function(){return this.toString();},enable:function(){this.disabled=false;},disable:function(){this.disabled=true;},onResized:function(){this.notifyChildrenOfResize();},notifyChildrenOfResize:function(){for(var i=0;i<this.children.length;i++){var _451=this.children[i];if(_451.onResized){_451.onResized();}}},create:function(args,_453,_454,ns){if(ns){this.ns=ns;}
 this.satisfyPropertySets(args,_453,_454);this.mixInProperties(args,_453,_454);this.postMixInProperties(args,_453,_454);dojo.widget.manager.add(this);this.buildRendering(args,_453,_454);this.initialize(args,_453,_454);this.postInitialize(args,_453,_454);this.postCreate(args,_453,_454);return this;},destroy:function(_456){if(this.parent){this.parent.removeChild(this);}
 this.destroyChildren();this.uninitialize();this.destroyRendering(_456);dojo.widget.manager.removeById(this.widgetId);},destroyChildren:function(){var _457;var i=0;while(this.children.length>i){_457=this.children[i];if(_457 instanceof dojo.widget.Widget){this.removeChild(_457);_457.destroy();continue;}
 i++;}},getChildrenOfType:function(type,_45a){var ret=[];var _45c=dojo.lang.isFunction(type);if(!_45c){type=type.toLowerCase();}
@@ -727,7 +722,7 @@
 return _47e;},getPreviousSibling:function(){var idx=this.getParentIndex();if(idx<=0){return null;}
 return this.parent.children[idx-1];},getSiblings:function(){return this.parent.children;},getParentIndex:function(){return dojo.lang.indexOf(this.parent.children,this,true);},getNextSibling:function(){var idx=this.getParentIndex();if(idx==this.parent.children.length-1){return null;}
 if(idx<0){return null;}
-return this.parent.children[idx+1];}});dojo.widget.lcArgsCache={};dojo.widget.tags={};dojo.widget.tags.addParseTreeHandler=function(type){dojo.deprecated("addParseTreeHandler",". ParseTreeHandlers are now reserved for components. Any unfiltered DojoML tag without a ParseTreeHandler is assumed to be a widget","0.5");};dojo.widget.tags["dojo:propertyset"]=function(_483,_484,_485){var _486=_484.parseProperties(_483["dojo:propertyset"]);};dojo.widget.tags["dojo:connect"]=function(_487,_488,_489){var _48a=_488.parseProperties(_487["dojo:connect"]);};dojo.widget.buildWidgetFromParseTree=function(type,frag,_48d,_48e,_48f,_490){dojo.a11y.setAccessibleMode();var _491=type.split(":");_491=(_491.length==2)?_491[1]:type;var _492=_490||_48d.parseProperties(frag[frag["ns"]+":"+_491]);var _493=dojo.widget.manager.getImplementation(_491,null,null,frag["ns"]);if(!_493){throw new Error("cannot find \""+type+"\" widget");}else{if(!_493.create){throw new Error("\""+type+"\" widget object has no
  \"create\" method and does not appear to implement *Widget");}}
+return this.parent.children[idx+1];}});dojo.widget.lcArgsCache={};dojo.widget.tags={};dojo.widget.tags.addParseTreeHandler=function(type){dojo.deprecated("addParseTreeHandler",". ParseTreeHandlers are now reserved for components. Any unfiltered DojoML tag without a ParseTreeHandler is assumed to be a widget","0.5");};dojo.widget.tags["dojo:propertyset"]=function(_483,_484,_485){var _486=_484.parseProperties(_483["dojo:propertyset"]);};dojo.widget.tags["dojo:connect"]=function(_487,_488,_489){var _48a=_488.parseProperties(_487["dojo:connect"]);};dojo.widget.buildWidgetFromParseTree=function(type,frag,_48d,_48e,_48f,_490){var _491=type.split(":");_491=(_491.length==2)?_491[1]:type;var _492=_490||_48d.parseProperties(frag[frag["ns"]+":"+_491]);var _493=dojo.widget.manager.getImplementation(_491,null,null,frag["ns"]);if(!_493){throw new Error("cannot find \""+type+"\" widget");}else{if(!_493.create){throw new Error("\""+type+"\" widget object has no \"create\" method and does no
 t appear to implement *Widget");}}
 _492["dojoinsertionindex"]=_48f;var ret=_493.create(_492,frag,_48e,frag["ns"]);return ret;};dojo.widget.defineWidget=function(_495,_496,_497,init,_499){if(dojo.lang.isString(arguments[3])){dojo.widget._defineWidget(arguments[0],arguments[3],arguments[1],arguments[4],arguments[2]);}else{var args=[arguments[0]],p=3;if(dojo.lang.isString(arguments[1])){args.push(arguments[1],arguments[2]);}else{args.push("",arguments[1]);p=2;}
 if(dojo.lang.isFunction(arguments[p])){args.push(arguments[p],arguments[p+1]);}else{args.push(null,arguments[p]);}
 dojo.widget._defineWidget.apply(this,args);}};dojo.widget.defineWidget.renderers="html|svg|vml";dojo.widget._defineWidget=function(_49c,_49d,_49e,init,_4a0){var _4a1=_49c.split(".");var type=_4a1.pop();var regx="\\.("+(_49d?_49d+"|":"")+dojo.widget.defineWidget.renderers+")\\.";var r=_49c.search(new RegExp(regx));_4a1=(r<0?_4a1.join("."):_49c.substr(0,r));dojo.widget.manager.registerWidgetPackage(_4a1);var pos=_4a1.indexOf(".");var _4a6=(pos>-1)?_4a1.substring(0,pos):_4a1;_4a0=(_4a0)||{};_4a0.widgetType=type;if((!init)&&(_4a0["classConstructor"])){init=_4a0.classConstructor;delete _4a0.classConstructor;}

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js?view=diff&rev=537510&r1=537509&r2=537510
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js Sat May 12 13:33:16 2007
@@ -1,5 +1,5 @@
 
-dojo.provide("dojo.widget.Widget");dojo.require("dojo.lang.func");dojo.require("dojo.lang.array");dojo.require("dojo.lang.extras");dojo.require("dojo.lang.declare");dojo.require("dojo.ns");dojo.require("dojo.widget.Manager");dojo.require("dojo.event.*");dojo.require("dojo.a11y");dojo.declare("dojo.widget.Widget", null,function(){this.children = [];this.extraArgs = {};},{parent: null,isTopLevel:  false,disabled: false,isContainer: false,widgetId: "",widgetType: "Widget",ns: "dojo",getNamespacedType: function(){return (this.ns ? this.ns + ":" + this.widgetType : this.widgetType).toLowerCase();},toString: function(){return '[Widget ' + this.getNamespacedType() + ', ' + (this.widgetId || 'NO ID') + ']';},repr: function(){return this.toString();},enable: function(){this.disabled = false;},disable: function(){this.disabled = true;},onResized: function(){this.notifyChildrenOfResize();},notifyChildrenOfResize: function(){for(var i=0; i<this.children.length; i++){var child = this.chi
 ldren[i];if( child.onResized ){child.onResized();}}},create: function(args, fragment, parent, ns){if(ns){this.ns = ns;}
+dojo.provide("dojo.widget.Widget");dojo.require("dojo.lang.func");dojo.require("dojo.lang.array");dojo.require("dojo.lang.extras");dojo.require("dojo.lang.declare");dojo.require("dojo.ns");dojo.require("dojo.widget.Manager");dojo.require("dojo.event.*");dojo.declare("dojo.widget.Widget", null,function(){this.children = [];this.extraArgs = {};},{parent: null,isTopLevel:  false,disabled: false,isContainer: false,widgetId: "",widgetType: "Widget",ns: "dojo",getNamespacedType: function(){return (this.ns ? this.ns + ":" + this.widgetType : this.widgetType).toLowerCase();},toString: function(){return '[Widget ' + this.getNamespacedType() + ', ' + (this.widgetId || 'NO ID') + ']';},repr: function(){return this.toString();},enable: function(){this.disabled = false;},disable: function(){this.disabled = true;},onResized: function(){this.notifyChildrenOfResize();},notifyChildrenOfResize: function(){for(var i=0; i<this.children.length; i++){var child = this.children[i];if( child.onResiz
 ed ){child.onResized();}}},create: function(args, fragment, parent, ns){if(ns){this.ns = ns;}
 this.satisfyPropertySets(args, fragment, parent);this.mixInProperties(args, fragment, parent);this.postMixInProperties(args, fragment, parent);dojo.widget.manager.add(this);this.buildRendering(args, fragment, parent);this.initialize(args, fragment, parent);this.postInitialize(args, fragment, parent);this.postCreate(args, fragment, parent);return this;},destroy: function(finalize){if(this.parent){this.parent.removeChild(this);}
 this.destroyChildren();this.uninitialize();this.destroyRendering(finalize);dojo.widget.manager.removeById(this.widgetId);},destroyChildren: function(){var widget;var i=0;while(this.children.length > i){widget = this.children[i];if (widget instanceof dojo.widget.Widget) {this.removeChild(widget);widget.destroy();continue;}
 i++;}},getChildrenOfType: function(type, recurse){var ret = [];var isFunc = dojo.lang.isFunction(type);if(!isFunc){type = type.toLowerCase();}
@@ -18,7 +18,7 @@
 return this.parent.children[idx+1];}});dojo.widget.lcArgsCache = {};dojo.widget.tags = {};dojo.widget.tags.addParseTreeHandler = function(type){dojo.deprecated("addParseTreeHandler", ". ParseTreeHandlers are now reserved for components. Any unfiltered DojoML tag without a ParseTreeHandler is assumed to be a widget", "0.5");}
 dojo.widget.tags["dojo:propertyset"] = function(fragment, widgetParser, parentComp){var properties = widgetParser.parseProperties(fragment["dojo:propertyset"]);}
 dojo.widget.tags["dojo:connect"] = function(fragment, widgetParser, parentComp){var properties = widgetParser.parseProperties(fragment["dojo:connect"]);}
-dojo.widget.buildWidgetFromParseTree = function(				type,frag,parser,parentComp,insertionIndex,localProps){dojo.a11y.setAccessibleMode();var stype = type.split(":");stype = (stype.length == 2) ? stype[1] : type;var localProperties = localProps || parser.parseProperties(frag[frag["ns"]+":"+stype]);var twidget = dojo.widget.manager.getImplementation(stype,null,null,frag["ns"]);if(!twidget){throw new Error('cannot find "' + type + '" widget');}else if (!twidget.create){throw new Error('"' + type + '" widget object has no "create" method and does not appear to implement *Widget');}
+dojo.widget.buildWidgetFromParseTree = function(				type,frag,parser,parentComp,insertionIndex,localProps){var stype = type.split(":");stype = (stype.length == 2) ? stype[1] : type;var localProperties = localProps || parser.parseProperties(frag[frag["ns"]+":"+stype]);var twidget = dojo.widget.manager.getImplementation(stype,null,null,frag["ns"]);if(!twidget){throw new Error('cannot find "' + type + '" widget');}else if (!twidget.create){throw new Error('"' + type + '" widget object has no "create" method and does not appear to implement *Widget');}
 localProperties["dojoinsertionindex"] = insertionIndex;var ret = twidget.create(localProperties, frag, parentComp, frag["ns"]);return ret;}
 dojo.widget.defineWidget = function(widgetClass, renderer, superclasses, init, props){if(dojo.lang.isString(arguments[3])){dojo.widget._defineWidget(arguments[0], arguments[3], arguments[1], arguments[4], arguments[2]);}else{var args = [ arguments[0] ], p = 3;if(dojo.lang.isString(arguments[1])){args.push(arguments[1], arguments[2]);}else{args.push('', arguments[1]);p = 2;}
 if(dojo.lang.isFunction(arguments[p])){args.push(arguments[p], arguments[p+1]);}else{args.push(null, arguments[p]);}

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js?view=diff&rev=537510&r1=537509&r2=537510
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js Sat May 12 13:33:16 2007
@@ -4,10 +4,30 @@
 dojo.provide("tapestry.lang");
 
 dojo.require("dojo.lang.common");
-dojo.require("dojo.logging.Logger");
 dojo.require("dojo.io.BrowserIO");
 dojo.require("dojo.event.browser");
 dojo.require("dojo.html.style");
+
+// redirect logging calls to standard debug if logging not enabled
+if (dj_undef("logging", dojo)) {
+    dojo.log = {
+        debug:function(){
+            dojo.debug.apply(this, arguments);
+        },
+        info:function(){
+            dojo.debug.apply(this, arguments);
+        },
+        warn:function(){
+            dojo.debug.apply(this, arguments);
+        },
+        err:function(){
+            dojo.debug.apply(this, arguments);
+        },
+        exception:function(){
+            dojo.debug.apply(this, arguments);
+        }
+    }
+}
 
 /**
  * package: tapestry