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/02/06 06:01:49 UTC

svn commit: r503984 [26/29] - in /tapestry/tapestry4/trunk: ./ tapestry-examples/TimeTracker/src/context/WEB-INF/ tapestry-framework/ tapestry-framework/src/java/org/apache/tapestry/asset/ tapestry-framework/src/java/org/apache/tapestry/dojo/ tapestry-...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/loader.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/loader.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/loader.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/loader.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,95 @@
+
+dojo.provide("dojo.widget.html.loader");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.io.*");dojo.require("dojo.lang.common");dojo.require("dojo.lang.extras");dojo.require("dojo.experimental");dojo.experimental("dojo.widget.html.loader");dojo.widget.html.loader = new (function(){this.toString = function(){ return "dojo.widget.html.loader"; }
+var _loader = this;dojo.addOnLoad(function(){dojo.experimental(_loader.toString());var undo = dojo.evalObjPath("dojo.undo.browser");if(djConfig["preventBackButtonFix"] && undo && !undo.initialState){undo.setInitialState(new trackerObj);}});var logger = {};var trackerObj = function(id, data){this.id = id;this.data = data
+};trackerObj.prototype.handle = function(type){if(typeof dojo == 'undefined'){ return; }
+var wg = dojo.widget.byId(this.id);if(wg){ wg.setContent(this.data, true); }};this._log = function(widget, data){if(widget.trackHistory){if(!logger[widget.widgetId]){logger[widget.widgetId] = { childrenIds: [], stack:[data] };}var children = logger[widget.widgetId].childrenIds;while(children && children.length){delete logger[children.pop()];}
+for(var child in widget.children){logger[widget.widgetId].childrenIds = child.widgetId;}
+dojo.undo.browser.addToHistory(new trackerObj(widget.widgetId, dojo.lang.shallowCopy(data, true)));}}
+var undef = dojo.lang.isUndefined;var isFunc = dojo.lang.isFunction;function handleDefaults(e, handler, useAlert){if(!handler){ handler = "onContentError"; }
+if(dojo.lang.isString(e)){ e = {_text: e}; }
+if(!e._text){ e._text = e.toString(); }
+e.toString = function(){ return this._text; };if(typeof e.returnValue != "boolean"){e.returnValue = true;}
+if(typeof e.preventDefault != "function"){e.preventDefault = function(){ this.returnValue = false; };}
+this[handler](e);if(e.returnValue){if(useAlert){alert(e.toString());}else{this.loader.callOnUnLoad.call(this, false);this.onSetContent(e.toString());}}
+};function downloader(bindArgs) {for(var x in this.bindArgs){bindArgs[x] = (undef(bindArgs[x]) ? this.bindArgs[x] : undefined);}
+var cache = this.cacheContent;if(undef(bindArgs.useCache)){ bindArgs.useCache = cache; }
+if(undef(bindArgs.preventCache)){ bindArgs.preventCache = !cache; }
+if(undef(bindArgs.mimetype)){ bindArgs.mimetype = "text/html"; }
+this.loader.bindObj = dojo.io.bind(bindArgs);};function stackRunner(st){var err = "", func = null;var scope = this.scriptScope || dojo.global();while(st.length){func = st.shift();try{func.call(scope);}catch(e){err += "\n"+func+" failed: "+e;}}
+if(err.length){var name = (st== this.loader.addOnLoads) ? "addOnLoad" : "addOnUnLoad";handleDefaults.call(this, name+" failure\n "+err, "onExecError", true);}};function stackPusher(st, obj, func){if(typeof func == 'undefined') {st.push(obj);}else{st.push(function(){ obj[func](); });}};function refreshed(){this.onResized();this.onLoad();this.isLoaded = true;};function asyncParse(data){if(this.executeScripts){this.onExecScript.call(this, data.scripts);}
+if(this.parseContent){this.onContentParse.call(this);}
+refreshed.call(this);};function runHandler(){if(dojo.lang.isFunction(this.handler)) {this.handler(this, this.containerNode||this.domNode);refreshed.call(this);return false;}
+return true;};this.htmlContentBasicFix = function(s, url){var titles = [], styles = [];var regex = /<title[^>]*>([\s\S]*?)<\/title>/i;var match, attr;while(match = regex.exec(s)){titles.push(match[1]);s = s.substring(0, match.index) + s.substr(match.index + match[0].length);};regex = /(?:<(style)[^>]*>([\s\S]*?)<\/style>|<link ([^>]*rel=['"]?stylesheet['"]?[^>]*)>)/i;while(match = regex.exec(s)){if(match[1] && match[1].toLowerCase() == "style"){styles.push(dojo.html.fixPathsInCssText(match[2],url));}else if(attr = match[3].match(/href=(['"]?)([^'">]*)\1/i)){styles.push({path: attr[2]});}
+s = s.substring(0, match.index) + s.substr(match.index + match[0].length);};return {'s': s, 'titles': titles, 'styles': styles};};this.htmlContentAdjustPaths = function(s, url){var tag = "", str = "", tagFix = "", path = "";var attr = [], origPath = "", fix = "";var regexFindTag = /<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i;var regexFindAttr = /\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@]+?)\2/i;var regexProtocols = /^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/;while(tag = regexFindTag.exec(s)){str += s.substring(0, tag.index);s = s.substring((tag.index + tag[0].length), s.length);tag = tag[0];tagFix = '';while(attr = regexFindAttr.exec(tag)){path = ""; origPath = attr[3];switch(attr[1].toLowerCase()){case "src":// falltrough
+case "href":
+if(regexProtocols.exec(origPath)){path = origPath;} else {path = (new dojo.uri.Uri(url, origPath).toString());}
+break;case "style":// style
+path = dojo.html.fixPathsInCssText(origPath, url);break;default:
+path = origPath;}
+fix = " " + attr[1] + "=" + attr[2] + path + attr[2];tagFix += tag.substring(0, attr.index) + fix;tag = tag.substring((attr.index + attr[0].length), tag.length);}
+str += tagFix + tag;}
+return str+s;};this.htmlContentScripts = function(s, collectScripts){var scripts = [], requires = [], match = [];var attr = "", tmp = null, tag = "", sc = "", str = "";var regex = /<script([^>]*)>([\s\S]*?)<\/script>/i;var regexSrc = /src=(['"]?)([^"']*)\1/i;var regexDojoJs = /.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/;var regexInvalid = /(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g;var regexRequires = /dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/;while(match = regex.exec(s)){if(this.executeScripts && match[1]){if(attr = regexSrc.exec(match[1])){if(regexDojoJs.exec(attr[2])){dojo.debug("Security note! inhibit:"+attr[2]+" from  beeing loaded again.");}else{scripts.push({path: attr[2]});}}
+}
+if(match[2]){sc = match[2].replace(regexInvalid, "");if(!sc){ continue; }
+while(tmp = regexRequires.exec(sc)){requires.push(tmp[0]);sc = sc.substring(0, tmp.index) + sc.substr(tmp.index + tmp[0].length);}
+if(collectScripts){scripts.push(sc);}}
+s = s.substr(0, match.index) + s.substr(match.index + match[0].length);}
+if(collectScripts){var regex = /(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*\S=(['"])[^>]*[^\.\]])scriptScope([^>]*>)/;str = "";while(tag = regex.exec(s)){tmp = ((tag[2]=="'") ? '"': "'");str += s.substring(0, tag.index);s = s.substr(tag.index).replace(regex, "$1dojo.widget.byId("+ tmp + this.widgetId + tmp + ").scriptScope$3");}
+s = str + s;}
+return {'s': s, 'requires': requires, 'scripts': scripts};};this.splitAndFixPaths = function(args){if(!args.url) { args.url = "./"; }
+url = new dojo.uri.Uri(location, args.url).toString();var ret = {'xml': "",'styles':[],'titles':[],'requires':[],'scripts':[],'url':url };if(args.content){var tmp = null, content = args.content;if(args.adjustPaths){content = _loader.htmlContentAdjustPaths.call(this, content, url);}
+tmp = _loader.htmlContentBasicFix.call(this, content, url);content = tmp.s;ret.styles = tmp.styles;ret.titles = tmp.titles;if(args.collectRequires || args.collectScripts){tmp = _loader.htmlContentScripts.call(this, content, args.collectScripts);content = tmp.s;ret.requires = tmp.requires;ret.scripts = tmp.scripts;}
+var match = [];if(args.bodyExtract){match = content.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(match) { content = match[1]; }}
+ret.xml = content;}
+return ret;};this.hookUp = function(args){var widget = args.widget;if(dojo.lang.isString(widget)){if(args.mixin){dojo.raise(this.toString()+", cant use mixin when widget is a string");}
+widget = dojo.evalObjPath(widget);}
+if(!widget || !(widget instanceof dojo.widget.HtmlWidget)){dojo.raise(this.toString()+" Widget isn't defined or isn't a HtmlWidget instance");}
+if(widget.loader && widget.setUrl){ return; }
+var widgetProto = (args.mixin) ? widget : widget.constructor.prototype;widget.loader = {isLoaded: false,styleNodes:  [],addOnLoads: [],addOnUnLoads: [],callOnUnLoad:(function(canCall){return function(after){ this.abort();if(canCall){ this.onUnLoad(); }
+canCall = after;};})(false),bindObj: null,unHook: (function(w, wg){var oldProps = {isContainer: w.isContainer,adjustPats: w.adjustPaths,href: w.href,extractContent: w.extractContent,parseContent: w.parseContent,cacheContent: w.cacheContent,bindArgs: w.bindArgs,preload: w.preload,refreshOnShow: w.refreshOnShow,handler: w.handler,trackHistory: w.trackHistory,executeScripts: w.executeScripts,scriptScope: w.scriptScope,postCreate: w.postCreate,show: w.show,refresh: w.refresh,loadContents: w.loadContents,abort: w.abort,destroy: w.destroy,onLoad: w.onLoad,onUnLoad: w.onUnLoad,addOnLoad: w.addOnLoad,addOnUnLoad: w.addOnUnLoad,onDownloadStart: w.onDownloadStart,onDownloadEnd: w.onDownloadEnd,onDownloadError: w.onDownloadError,onContentError: w.onContentError,onExecError: w.onExecError,onSetContent: w.onSetContent,setUrl: w.setUrl,setContent: w.setContent,onContentParse: w.onContentParse,onExecScript: w.onExecScript,setHandler: w.setHandler
+};return function(){if(wg.abort){ wg.abort(); }
+if((w != wg) && (dojo.widget.byType(wg.widgetType).length>1)){ return; }
+for(var x in oldProps){if(oldProps[x]===undefined){delete w[x]; continue;}
+w[x] = oldProps[x];}
+delete wg._loader_defined;delete wg.loader;};})(widgetProto, widget)
+};if(widgetProto._loader_defined || widget._loader_defined){ return; }
+dojo.mixin(widgetProto, {isContainer: true,adjustPaths: undef(widgetProto.adjustPaths) ? true : widgetProto.adjustPaths,href: undef(widgetProto.href) ? "" : widgetProto.href,extractContent: undef(widgetProto.extractContent) ? true : widgetProto.extractContent,parseContent: undef(widgetProto.parseContent) ? true : widgetProto.parseContent,cacheContent: undef(widgetProto.cacheContent) ? true : widgetProto.cacheContent,bindArgs:undef(widgetProto.bindArgs) ? {} : widgetProto.bindArgs,preload: undef(widgetProto.preload) ? false : widgetProto.preload,refreshOnShow:undef(widgetProto.refreshOnShow) ? false : widgetProto.refreshOnShow,handler: undef(widgetProto.handler) ? "" : widgetProto.handler,executeScripts: undef(widgetProto.executeScripts) ? false : widgetProto.executeScripts,trackHistory:undef(widgetProto.tracHistory) ? false : widgetProto.trackHistory,scriptScope: null
+});widgetProto.postCreate = (function(postCreate){return function(){if(widgetProto.constructor.superclass.postCreate != postCreate){postCreate.apply(this, arguments);}else{widgetProto.constructor.superclass.postCreate.apply(this, arguments);}
+if(this.handler!==""){ this.setHandler(this.handler); }
+if(this.isShowing() || this.preload){this.loadContents();if(!this.href){_loader._log(this,(this.domNode||this.containerNode).innerHTML);}}
+}})(widgetProto.postCreate);widgetProto.show = (function(show){return function(){if(this.refreshOnShow){this.refresh();}else{this.loadContents();}
+if((widgetProto.constructor.superclass.show == show) || !isFunc(show)){widgetProto.constructor.superclass.show.apply(this, arguments);}else{show.apply(this, arguments);}};})(widgetProto.show);widgetProto.destroy = (function(destroy){return function(destroy){this.onUnLoad();this.abort();this.loader.unHook();if((widgetProto.constructor.superclass.destroy != destroy) && isFunc(destroy)){destroy.apply(this, arguments);}else{widgetProto.constructor.superclass.destroy.apply(this, arguments);}}
+})(widgetProto.destroy);if(!widgetProto.refresh){widgetProto.refresh = function(){this.loader.isLoaded = false;this.loadContents();};}
+if(!widgetProto.loadContents){widgetProto.loadContents = function(){if(this.loader.isLoaded){ return; }
+if(isFunc(this.handler)){runHandler.call(this);}else if(this.href !== ""){handleDefaults.call(this, "Loading...", "onDownloadStart");var self = this, url = this.href;downloader.call(this, {url: url,load: function(type, data, xhr){self.onDownloadEnd.call(self, url, data);},error: function(type, err, xhr){var e = {responseText: xhr.responseText,status: xhr.status,statusText: xhr.statusText,responseHeaders: (xhr.getAllResponseHeaders) ? xhr.getAllResponseHeaders():[],_text: "Error loading '" + url + "' (" + xhr.status + " "+  xhr.statusText + ")"
+};handleDefaults.call(self, e, "onDownloadError");self.onLoad();}});}};}
+if(!widgetProto.abort){widgetProto.abort = function(){if(!this.loader || !this.loader.bindObj || !this.loader.bindObj.abort){ return; }
+this.loader.bindObj.abort();this.loader.bindObj = null;};}
+if(!widgetProto.onLoad){widgetProto.onLoad = function(){stackRunner.call(this, this.loader.addOnLoads);this.loader.isLoaded = true;};}
+if(!widgetProto.onUnLoad){widgetProto.onUnLoad = function(){stackRunner.call(this, this.loader.addOnUnLoads);delete this.scriptScope;}}
+if(!widgetProto.addOnLoad){widgetProto.addOnLoad = function(obj, func){stackPusher.call(this, this.loader.addOnLoads, obj, func);};}
+if(!widgetProto.addOnUnLoad){widgetProto.addOnUnLoad = function(obj, func){stackPusher.call(this, this.loader.addOnUnLoads, obj, func);}}
+if(!widgetProto.onExecError){widgetProto.onExecError = function(){};}
+if(!widgetProto.onContentError){widgetProto.onContentError = function(){};}
+if(!widgetProto.onDownloadError){widgetProto.onDownloadError = function(){};}
+if(!widgetProto.onDownloadStart){widgetProto.onDownloadStart = function(onDownloadStart){};}
+if(!widgetProto.onDownloadEnd){widgetProto.onDownloadEnd = function(url, data){var args =  {content: data,url: url,adjustPaths: this.adjustPaths,collectScripts: this.executeScripts,collectRequires: this.parseContent,bodyExtract: this.extractContent };data = _loader.splitAndFixPaths.call(this, args);this.setContent(data);}}
+if(!widgetProto.onSetContent){widgetProto.onSetContent = function(cont){this.destroyChildren();var styleNodes = this.loader.styleNodes;while(styleNodes.length){var st = styleNodes.pop();if(st && st.parentNode){st.parentNode.removeChild(st);}}
+var node = this.containerNode || this.domNode;while(node.firstChild){try{dojo.event.browser.clean(node.firstChild);}catch(e){}
+node.removeChild(node.firstChild);}
+try{if(typeof cont != "string"){node.appendChild(cont);}else{try{node.innerHTML = cont;}catch(e){var tmp;(tmp = dojo.doc().createElement("div")).innerHTML = cont;while(tmp.firstChild){node.appendChild(tmp.removeChild(tmp.firstChild));}}
+}}catch(e){e._text = "Could'nt load content: "+e;var useAlert = (this.loader._onSetContent_err == e._text);this.loader._onSetContent_err = e._text;handleDefaults.call(this, e, "onContentError", useAlert);}};}
+if(!widgetProto.setUrl){widgetProto.setUrl = function(url){this.href = url;this.loader.isLoaded = false;if ( this.preload || this.isShowing() ){this.loadContents();}}
+}
+if(!widgetProto.setContent){widgetProto.setContent = function(data, dontLog){this.loader.callOnUnLoad.call(this, true);if(!data||dojo.html.isNode(data)){this.onSetContent(data);refreshed.call(this);}else{if(typeof data.xml != 'string'){this.href = "";var args =  {content: data,url: this.href,adjustPaths: this.adjustPaths,collectScripts: this.executeScripts,collectRequires: this.parseContent,bodyExtract: this.extractContent };data = _loader.splitAndFixPaths.call(this, args);}else if(data.url!="./"){this.url = data.url;}
+this.onSetContent(data.xml);for(var i = 0, styles = data.styles; i < styles.length; i++){if(styles[i].path){this.loader.styleNodes.push(dojo.html.insertCssFile(styles[i].path));}else{this.loader.styleNodes.push(dojo.html.insertCssText(styles[i]));}}
+if(this.parseContent){for(var i = 0, requires = data.requires; i < requires.length; i++){try{eval(requires[i]);} catch(e){e._text = "dojo.widget.html.loader.hookUp: error in package loading calls, "+(e.description||e);handleDefaults.call(this, e, "onContentError", true);}}
+}
+if(dojo.hostenv.isXDomain && data.requires.length){dojo.addOnLoad(function(){asyncParse.call(this, data);if(!dontLog){_loader._log(this, data);}});dontLog = true;}else{asyncParse.call(this, data);}}if(!dontLog){}};}
+if(!widgetProto.onContentParse){widgetProto.onContentParse = function(){var node = this.containerNode || this.domNode;var parser = new dojo.xml.Parse();var frag = parser.parseElement(node, null, true);dojo.widget.getParser().createSubComponents(frag, this);};}
+if(!widgetProto.onExecScript){widgetProto.onExecScript = function(scripts){var self = this, tmp = "", code = "";for(var i = 0; i < scripts.length; i++){if(scripts[i].path){var url = scripts[i].path;downloader.call(this,{'url': url,'load': function(type, scriptStr){(function(){tmp = scriptStr; scripts[i] = scriptStr;}).call(self);},'error': function(type, error){error._text = type + " downloading remote script";handleDefaults.call(self, error, "onExecError", true);},'mimetype': "text/plain",'sync':     true
+});code += tmp;}else{code += scripts[i];}}
+try{delete this.scriptScope;this.scriptScope = new (new Function('_container_', code+'; return this;'))(self);}catch(e){e._text = "Error running scripts from content:\n"+(e.description||e.toString());handleDefaults.call(this, e, "onExecError", true);}};}
+if(!widgetProto.setHandler){widgetProto.setHandler = function(handler) {var fcn = dojo.lang.isFunction(handler) ? handler : window[handler];if(!isFunc(fcn)) {handleDefaults.call(this, "Unable to set handler, '" + handler + "' not a function.", "onExecError", true);return;}
+this.handler = function() {return fcn.apply(this, arguments);};};}
+widgetProto._loader_defined = true;};})();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/stabile.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/stabile.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/stabile.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/html/stabile.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,28 @@
+
+dojo.provide("dojo.widget.html.stabile");dojo.widget.html.stabile = {_sqQuotables: new RegExp("([\\\\'])", "g"),_depth: 0,_recur: false,depthLimit: 2
+};dojo.widget.html.stabile.getState = function(id){dojo.widget.html.stabile.setup();return dojo.widget.html.stabile.widgetState[id];}
+dojo.widget.html.stabile.setState = function(id, state, isCommit){dojo.widget.html.stabile.setup();dojo.widget.html.stabile.widgetState[id] = state;if(isCommit){dojo.widget.html.stabile.commit(dojo.widget.html.stabile.widgetState);}}
+dojo.widget.html.stabile.setup = function(){if(!dojo.widget.html.stabile.widgetState){var text = dojo.widget.html.stabile._getStorage().value;dojo.widget.html.stabile.widgetState = text ? dj_eval("("+text+")") : {};}}
+dojo.widget.html.stabile.commit = function(state){dojo.widget.html.stabile._getStorage().value = dojo.widget.html.stabile.description(state);}
+dojo.widget.html.stabile.description = function(v, showAll){var depth = dojo.widget.html.stabile._depth;var describeThis = function() {return this.description(this, true);}
+try {if(v===void(0)){return "undefined";}
+if(v===null){return "null";}
+if(typeof(v)=="boolean" || typeof(v)=="number"
+|| v instanceof Boolean || v instanceof Number){return v.toString();}
+if(typeof(v)=="string" || v instanceof String){var v1 = v.replace(dojo.widget.html.stabile._sqQuotables, "\\$1");v1 = v1.replace(/\n/g, "\\n");v1 = v1.replace(/\r/g, "\\r");return "'"+v1+"'";}
+if(v instanceof Date){return "new Date("+d.getFullYear+","+d.getMonth()+","+d.getDate()+")";}
+var d;if(v instanceof Array || v.push){if(depth>=dojo.widget.html.stabile.depthLimit)
+return "[ ... ]";d = "[";var first = true;dojo.widget.html.stabile._depth++;for(var i=0; i<v.length; i++){if(first){first = false;}else{d += ",";}
+d+=arguments.callee(v[i], showAll);}
+return d+"]";}
+if(v.constructor==Object
+|| v.toString==describeThis){if(depth>=dojo.widget.html.stabile.depthLimit)
+return "{ ... }";if(typeof(v.hasOwnProperty)!="function" && v.prototype){throw new Error("description: "+v+" not supported by script engine");}
+var first = true;d = "{";dojo.widget.html.stabile._depth++;for(var key in v){if(v[key]==void(0) || typeof(v[key])=="function")
+continue;if(first){first = false;}else{d += ", ";}
+var kd = key;if(!kd.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)){kd = arguments.callee(key, showAll);}
+d += kd+": "+arguments.callee(v[key], showAll);}
+return d+"}";}
+if(showAll){if(dojo.widget.html.stabile._recur){var objectToString = Object.prototype.toString;return objectToString.apply(v, []);}else{dojo.widget.html.stabile._recur = true;return v.toString();}}else{throw new Error("Unknown type: "+v);return "'unknown'";}} finally {dojo.widget.html.stabile._depth = depth;}}
+dojo.widget.html.stabile._getStorage = function(){if (dojo.widget.html.stabile.dataField) {return dojo.widget.html.stabile.dataField;}
+var form = document.forms._dojo_form;return dojo.widget.html.stabile.dataField = form ? form.stabile : {value: ""};}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DemoEngine.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DemoEngine.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DemoEngine.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DemoEngine.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"itemDescription":"This is the description of this demo.","categories":"Categories"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownDatePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownDatePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectDate":"Select a date"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownTimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownTimePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownTimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/DropdownTimePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectTime":"Select time"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"linkWindowNew":"New Window","linkTarget":"Target","linkUrl":"URL","linkWindowSelf":"Self","linkClass":"Class","insertImageDialogTitle":"Insert/Edit Image","createLinkDialogTitle":"Insert/Edit Link","createLinkDialogSelectError":"Please select some text to create a link.","linkWindowTop":"Top Window"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2BrowserCommand.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2BrowserCommand.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2BrowserCommand.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Editor2BrowserCommand.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"htmltoggle":"HTML Source","plainformatblock":"Paragraph Style","undo":"Undo","fontsize":"Font Size","insertimage":"Insert Image","subscript":"Subscript","delete":"Delete","superscript":"Superscript","copy":"Copy","formatblock":"Paragraph Style","insertunorderedlist":"Bullet List","bold":"Bold","removeformat":"Remove Format","unlink":"Remove Link","selectall":"Select All","justifyright":"Align Right","redo":"Redo","paste":"Paste","outdent":"Outdent","indent":"Indent","createlink":"Create Link","insertorderedlist":"Numbered List","justifycenter":"Align Center","underline":"Underline","hilitecolor":"Background Color","fontname":"Font Name","italic":"Italic","justifyfull":"Justify","forecolor":"Foreground Color","strikethrough":"Strikethrough","inserthorizontalrule":"Horizontal Rule","cut":"Cut","justifyleft":"Align Left"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ResizableTextarea.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ResizableTextarea.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ResizableTextarea.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ResizableTextarea.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"statusLabel":"drag to resize"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/TimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/TimePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/TimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/TimePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"any":"any"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Wizard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Wizard.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Wizard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/Wizard.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonPrevious":"Previous","buttonDone":"Done","buttonNext":"Next"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/common.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/common.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonCancel":"Cancel","buttonOk":"OK"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DemoEngine.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DemoEngine.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DemoEngine.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DemoEngine.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"itemDescription":"Dies ist die Beschreibung dieser Demo.","categories":"Kategorien"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownDatePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownDatePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectDate":"Datum wählen"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownTimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownTimePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownTimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/DropdownTimePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectTime":"Zeit wählen"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"linkTarget":"Ziel","createLinkDialogSelectError":"Bitte selekieren Sie text um daraus einen Link zu erzeugen.","linkClass":"Klasse","linkWindowTop":"Oberes Fenster","createLinkDialogTitle":"Link einfügen/bearbeiten","linkUrl":"URL","linkWindowNew":"Neues Fenster","insertImageDialogTitle":"Bild einfügen/bearbeiten","linkWindowSelf":"Self"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2BrowserCommand.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2BrowserCommand.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2BrowserCommand.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Editor2BrowserCommand.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"plainformatblock":"Paragraph Stil","undo":"Rückgängig","fontsize":"Schriftgröße","insertimage":"Bild einfügen","subscript":"Tiefgestellt","delete":"Löschen","superscript":"Hochgestellt","copy":"Kopieren","formatblock":"Paragraph Stil","insertunorderedlist":"Auflistung","bold":"Fett","removeformat":"Formatierung löschen","unlink":"Link löschen","selectall":"Alles auswählen","justifyright":"Rechtsbündig","redo":"Wiederholen","paste":"Einfügen","outdent":"Ausrücken","indent":"Einrücken","createlink":"Link erstellen","insertorderedlist":"Nummerierung","justifycenter":"Zentiert","underline":"Unterstrichen","hilitecolor":"Hintergrundfarbe","fontname":"Schriftart","italic":"Kursiv","justifyfull":"Blocksatz","forecolor":"Textfarbe","strikethrough":"Durchgestrichen","inserthorizontalrule":"Horizontale Linie","cut":"Ausschneiden","justifyleft":"Linksbündig","htmltoggle":"HTML Source"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/ResizableTextarea.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/ResizableTextarea.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/ResizableTextarea.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/ResizableTextarea.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"statusLabel":"Ziehen zum Vergrößern"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Wizard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Wizard.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Wizard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/Wizard.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonPrevious":"Zurück","buttonDone":"OK","buttonNext":"Weiter"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/common.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/common.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonCancel":"Abbrechen","buttonOk":"OK"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/de/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* Der Wert liegt außerhalb des gültigen Bereichs.","invalidMessage":"* Der eingegebene Wert ist ungültig.","missingMessage":"* Der Wert wird benötigt."})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/DropdownDatePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/DropdownDatePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectDate":"Choisir une date"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/fr/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* Cette valeur est hors limites.","invalidMessage":"* La valeur saisie est incorrecte.","missingMessage":"* Cette valeur est obligatoire."})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DemoEngine.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DemoEngine.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DemoEngine.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DemoEngine.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"itemDescription":"Questa è la descrizione di questa demo.","categories":"Categorie"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownDatePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownDatePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectDate":"Seleziona una data"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownTimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownTimePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownTimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/DropdownTimePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"selectTime":"Seleziona un'ora"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"linkWindowSelf":"Stessa Finestra","createLinkDialogSelectError":"Per favore seleziona del testo per creare un collegamento.","linkClass":"Classe","linkWindowTop":"Finestra Superiore","createLinkDialogTitle":"Inserisci/Modifica Collegamento","linkWindowNew":"Nuova Finestra","insertImageDialogTitle":"Inserisci/Modifica Immagine","linkTarget":"Target","linkUrl":"URL"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2BrowserCommand.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2BrowserCommand.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2BrowserCommand.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Editor2BrowserCommand.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"htmltoggle":"Sorgente HTML","plainformatblock":"Stile Paragrafo","undo":"Annulla","fontsize":"Dimensioni Font","insertimage":"Inserisci Immagine","subscript":"Pedice","delete":"Elimina","superscript":"Apice","copy":"Copia","formatblock":"Stile Paragrafo","insertunorderedlist":"Lista Puntata","bold":"Grassetto","removeformat":"Rimuovi Formato","unlink":"Rimuovi Collegamento","selectall":"Seleziona Tutto","justifyright":"Allinea a Destra","redo":"Ripeti","paste":"Incolla","outdent":"Riduci Rientro","indent":"Aumenta Rientro","createlink":"Crea collegamento","insertorderedlist":"Lista Numerata","justifycenter":"Allinea al Centro","underline":"Sottolineato","hilitecolor":"Colore Sfondo","fontname":"Nome Font","italic":"Corsivo","justifyfull":"Giustifica","forecolor":"Colore Primo Piano","strikethrough":"Barrato","inserthorizontalrule":"Righello Orizzontale","cut":"Taglia","justifyleft":"Allinea a Sinistra"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/ResizableTextarea.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/ResizableTextarea.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/ResizableTextarea.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/ResizableTextarea.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"statusLabel":"trascina per ridimensionare"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/TimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/TimePicker.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/TimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/TimePicker.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"any":"qualsiasi"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Wizard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Wizard.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Wizard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/Wizard.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonPrevious":"Precedente","buttonDone":"Fatto","buttonNext":"Successivo"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/common.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/common.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"buttonCancel":"Annulla","buttonOk":"OK"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/it/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* Questo valore è al di fuori dell'intervallo consentito","invalidMessage":"* Il valore inserito non è valido.","missingMessage":"* Questo valore è obbligatorio."})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ja/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ja/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ja/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/ja/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* 入力した数値は選択範囲外です。","invalidMessage":"* 入力したデータに該当するものがありません。","missingMessage":"* 入力が必須です。"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* This value is out of range.","invalidMessage":"* The value entered is not valid.","missingMessage":"* This value is required."})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/zh-cn/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/zh-cn/validate.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/zh-cn/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/nls/zh-cn/validate.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"rangeMessage":"* 输入数据超出值域。","invalidMessage":"* 非法的输入值。","missingMessage":"* 此值是必须的。"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/svg/Chart.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/svg/Chart.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/svg/Chart.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/svg/Chart.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,45 @@
+
+dojo.provide("dojo.widget.svg.Chart");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Chart");dojo.require("dojo.html.layout");dojo.require("dojo.math");dojo.require("dojo.svg");dojo.require("dojo.gfx.color");dojo.require("dojo.json");dojo.widget.defineWidget(
+"dojo.widget.svg.Chart",[dojo.widget.HtmlWidget, dojo.widget.Chart],function(){this.templatePath=null;this.templateCssPath=null;this._isInitialize=false;this.hasData=false;this.vectorNode=null;this.plotArea=null;this.dataGroup=null;this.axisGroup=null;this.properties={height:0,width:0,defaultWidth:600,defaultHeight:400,plotType:null,padding:{top:10,bottom:2,left:60,right:30
+},axes:{x:{plotAt:0,label:"",unitLabel:"",unitType:Number,nUnitsToShow:10,range:{min:0,max:200
+}},y:{plotAt:0,label:"",unitLabel:"",unitType:Number,nUnitsToShow:10,range:{min:0,max:200
+}}
+}};},{parseProperties:function(node){var bRangeX=false;var bRangeY=false;if (node.getAttribute("width")){this.properties.width=node.getAttribute("width");}
+if (node.getAttribute("height")){this.properties.height=node.getAttribute("height");}
+if (node.getAttribute("plotType")){this.properties.plotType=node.getAttribute("plotType");}
+if (node.getAttribute("padding")){if (node.getAttribute("padding").indexOf(",") > -1)
+var p=node.getAttribute("padding").split(",");else var p=node.getAttribute("padding").split(" ");if (p.length==1){var pad=parseFloat(p[0]);this.properties.padding.top=pad;this.properties.padding.right=pad;this.properties.padding.bottom=pad;this.properties.padding.left=pad;} else if(p.length==2){var padV=parseFloat(p[0]);var padH=parseFloat(p[1]);this.properties.padding.top=padV;this.properties.padding.right=padH;this.properties.padding.bottom=padV;this.properties.padding.left=padH;} else if(p.length==4){this.properties.padding.top=parseFloat(p[0]);this.properties.padding.right=parseFloat(p[1]);this.properties.padding.bottom=parseFloat(p[2]);this.properties.padding.left=parseFloat(p[3]);}}
+if (node.getAttribute("rangeX")){var p=node.getAttribute("rangeX");if (p.indexOf(",")>-1) p=p.split(",");else p=p.split(" ");this.properties.axes.x.range.min=parseFloat(p[0]);this.properties.axes.x.range.max=parseFloat(p[1]);bRangeX=true;}
+if (node.getAttribute("rangeY")){var p=node.getAttribute("rangeY");if (p.indexOf(",")>-1) p=p.split(",");else p=p.split(" ");this.properties.axes.y.range.min=parseFloat(p[0]);this.properties.axes.y.range.max=parseFloat(p[1]);bRangeY=true;}
+return { rangeX:bRangeX, rangeY:bRangeY };},setAxesPlot:function(table){if (table.getAttribute("axisAt")){var p=table.getAttribute("axisAt");if (p.indexOf(",")>-1) p=p.split(",");else p=p.split(" ");if (!isNaN(parseFloat(p[0]))){this.properties.axes.x.plotAt=parseFloat(p[0]);} else if (p[0].toLowerCase()=="ymin"){this.properties.axes.x.plotAt=this.properties.axes.y.range.min;} else if (p[0].toLowerCase()=="ymax"){this.properties.axes.x.plotAt=this.properties.axes.y.range.max;}
+if (!isNaN(parseFloat(p[1]))){this.properties.axes.y.plotAt=parseFloat(p[1]);} else if (p[1].toLowerCase()=="xmin"){this.properties.axes.y.plotAt=this.properties.axes.x.range.min;} else if (p[1].toLowerCase()=="xmax"){this.properties.axes.y.plotAt=this.properties.axes.x.range.max;}} else {this.properties.axes.x.plotAt=this.properties.axes.y.range.min;this.properties.axes.y.plotAt=this.properties.axes.x.range.min;}},drawVectorNode:function(){dojo.svg.g.suspend();if(this.vectorNode) this.destroy();this.vectorNode=document.createElementNS(dojo.svg.xmlns.svg, "svg");this.vectorNode.setAttribute("width", this.properties.width);this.vectorNode.setAttribute("height", this.properties.height);dojo.svg.g.resume();},drawPlotArea:function(){dojo.svg.g.suspend();if(this.plotArea){this.plotArea.parentNode.removeChild(this.plotArea);this.plotArea=null;}
+var defs = document.createElementNS(dojo.svg.xmlns.svg, "defs");var clip = document.createElementNS(dojo.svg.xmlns.svg, "clipPath");clip.setAttribute("id","plotClip"+this.widgetId);var rect = document.createElementNS(dojo.svg.xmlns.svg, "rect");rect.setAttribute("x", this.properties.padding.left);rect.setAttribute("y", this.properties.padding.top);rect.setAttribute("width", this.properties.width-this.properties.padding.left-this.properties.padding.right);rect.setAttribute("height", this.properties.height-this.properties.padding.top-this.properties.padding.bottom);clip.appendChild(rect);defs.appendChild(clip);this.vectorNode.appendChild(defs);this.plotArea = document.createElementNS(dojo.svg.xmlns.svg, "g");this.vectorNode.appendChild(this.plotArea);var rect = document.createElementNS(dojo.svg.xmlns.svg, "rect");rect.setAttribute("x", this.properties.padding.left);rect.setAttribute("y", this.properties.padding.top);rect.setAttribute("width", this.properties.width-this.propert
 ies.padding.left-this.properties.padding.right);rect.setAttribute("height", this.properties.height-this.properties.padding.top-this.properties.padding.bottom);rect.setAttribute("fill", "#fff");this.plotArea.appendChild(rect);dojo.svg.g.resume();},drawDataGroup:function(){dojo.svg.g.suspend();if(this.dataGroup){this.dataGroup.parentNode.removeChild(this.dataGroup);this.dataGroup=null;}
+this.dataGroup = document.createElementNS(dojo.svg.xmlns.svg, "g");this.dataGroup.setAttribute("style","clip-path:url(#plotClip"+this.widgetId+");");this.plotArea.appendChild(this.dataGroup);dojo.svg.g.resume();},drawAxes:function(){dojo.svg.g.suspend();if(this.axisGroup){this.axisGroup.parentNode.removeChild(this.axisGroup);this.axisGroup=null;}
+this.axisGroup = document.createElementNS(dojo.svg.xmlns.svg, "g");this.plotArea.appendChild(this.axisGroup);var stroke=1;var line = document.createElementNS(dojo.svg.xmlns.svg, "line");var y=dojo.widget.svg.Chart.Plotter.getY(this.properties.axes.x.plotAt, this);line.setAttribute("y1", y);line.setAttribute("y2", y);line.setAttribute("x1",this.properties.padding.left-stroke);line.setAttribute("x2",this.properties.width-this.properties.padding.right);line.setAttribute("style","stroke:#000;stroke-width:"+stroke+";");this.axisGroup.appendChild(line);var textSize=10;var text = document.createElementNS(dojo.svg.xmlns.svg, "text");text.setAttribute("x", this.properties.padding.left);text.setAttribute("y", this.properties.height-this.properties.padding.bottom+textSize+2);text.setAttribute("style", "text-anchor:middle;font-size:"+textSize+"px;fill:#000;");text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.x.range.min),2)));this.axisGroup.appendC
 hild(text);var text = document.createElementNS(dojo.svg.xmlns.svg, "text");text.setAttribute("x", this.properties.width-this.properties.padding.right-(textSize/2));text.setAttribute("y", this.properties.height-this.properties.padding.bottom+textSize+2);text.setAttribute("style", "text-anchor:middle;font-size:"+textSize+"px;fill:#000;");text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.x.range.max),2)));this.axisGroup.appendChild(text);var line=document.createElementNS(dojo.svg.xmlns.svg, "line");var x=dojo.widget.svg.Chart.Plotter.getX(this.properties.axes.y.plotAt, this);line.setAttribute("x1", x);line.setAttribute("x2", x);line.setAttribute("y1", this.properties.padding.top);line.setAttribute("y2", this.properties.height-this.properties.padding.bottom);line.setAttribute("style", "stroke:#000;stroke-width:"+stroke+";");this.axisGroup.appendChild(line);var text = document.createElementNS(dojo.svg.xmlns.svg, "text");text.setAttribute("x"
 , this.properties.padding.left-4);text.setAttribute("y", this.properties.height-this.properties.padding.bottom);text.setAttribute("style", "text-anchor:end;font-size:"+textSize+"px;fill:#000;");text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.y.range.min),2)));this.axisGroup.appendChild(text);var text = document.createElementNS(dojo.svg.xmlns.svg, "text");text.setAttribute("x", this.properties.padding.left-4);text.setAttribute("y", this.properties.padding.top+(textSize/2));text.setAttribute("style", "text-anchor:end;font-size:"+textSize+"px;fill:#000;");text.appendChild(document.createTextNode(dojo.math.round(parseFloat(this.properties.axes.y.range.max),2)));this.axisGroup.appendChild(text);dojo.svg.g.resume();},init:function(){if(!this.properties.width || !this.properties.height){var box=dojo.html.getContentBox(this.domNode);if(!this.properties.width){this.properties.width=(box.width<32)?this.properties.defaultWidth:box.width;}
+if(!this.properties.height){this.properties.height=(box.height<32)?this.properties.defaultHeight:box.height;}}
+this.drawVectorNode();this.drawPlotArea();this.drawDataGroup();this.drawAxes();this.domNode.appendChild(this.vectorNode);this.assignColors();this._isInitialized=true;},destroy:function(){while(this.domNode.childNodes.length>0){this.domNode.removeChild(this.domNode.childNodes.item(0));}
+this.vectorNode=this.plotArea=this.dataGroup=this.axisGroup=null;},render:function(){dojo.svg.g.suspend();if (this.dataGroup){while(this.dataGroup.childNodes.length>0){this.dataGroup.removeChild(this.dataGroup.childNodes.item(0));}} else {this.init();}
+for(var i=0; i<this.series.length; i++){dojo.widget.svg.Chart.Plotter.plot(this.series[i], this);}
+dojo.svg.g.resume();},postCreate:function(){var table=this.domNode.getElementsByTagName("table")[0];if (table){var ranges=this.parseProperties(table);var bRangeX=false;var bRangeY=false;var axisValues = this.parseData(table);if(!bRangeX){this.properties.axes.x.range={min:axisValues.x.min, max:axisValues.x.max};}
+if(!bRangeY){this.properties.axes.y.range={min:axisValues.y.min, max:axisValues.y.max};}
+this.setAxesPlot(table);this.domNode.removeChild(table);}
+if(this.series.length>0){this.render();}}
+}
+);dojo.widget.svg.Chart.Plotter=new function(){var self=this;var plotters = {};var types=dojo.widget.Chart.PlotTypes;this.getX=function(value, chart){var v=parseFloat(value);var min=chart.properties.axes.x.range.min;var max=chart.properties.axes.x.range.max;var ofst=0-min;min+=ofst; max+=ofst; v+=ofst;var xmin=chart.properties.padding.left;var xmax=chart.properties.width-chart.properties.padding.right;var x=(v*((xmax-xmin)/max))+xmin;return x;};this.getY=function(value, chart){var v=parseFloat(value);var max=chart.properties.axes.y.range.max;var min=chart.properties.axes.y.range.min;var ofst=0;if(min<0)ofst+=Math.abs(min);min+=ofst; max+=ofst; v+=ofst;var ymin=chart.properties.height-chart.properties.padding.bottom;var ymax=chart.properties.padding.top;var y=(((ymin-ymax)/(max-min))*(max-v))+ymax;return y;};this.addPlotter=function(name, func){plotters[name]=func;};this.plot=function(series, chart){if (series.values.length==0) return;if (series.plotType && plotters[series.pl
 otType]){return plotters[series.plotType](series, chart);}
+else if (chart.plotType && plotters[chart.plotType]){return plotters[chart.plotType](series, chart);}};plotters["bar"]=function(series, chart){var space=1;var lastW = 0;for (var i=0; i<series.values.length; i++){var x=self.getX(series.values[i].x, chart);var w;if (i==series.values.length-1){w=lastW;} else{w=self.getX(series.values[i+1].x, chart)-x-space;lastW=w;}
+x-=(w/2);var yA=self.getY(chart.properties.axes.x.plotAt, chart);var y=self.getY(series.values[i].value, chart);var h=Math.abs(yA-y);if (parseFloat(series.values[i].value)<chart.properties.axes.x.plotAt){var oy=yA;yA=y;y=oy;}
+var bar=document.createElementNS(dojo.svg.xmlns.svg, "rect");bar.setAttribute("fill", series.color);bar.setAttribute("title", series.label + ": " + series.values[i].value);bar.setAttribute("stroke-width", "0");bar.setAttribute("x", x);bar.setAttribute("y", y);bar.setAttribute("width", w);bar.setAttribute("height", h);bar.setAttribute("fill-opacity", "0.9");chart.dataGroup.appendChild(bar);}};plotters["line"]=function(series, chart){var tension=1.5;var line = document.createElementNS(dojo.svg.xmlns.svg, "path");line.setAttribute("fill", "none");line.setAttribute("stroke", series.color);line.setAttribute("stroke-width", "2");line.setAttribute("stroke-opacity", "0.85");line.setAttribute("title", series.label);chart.dataGroup.appendChild(line);var path = [];for (var i=0; i<series.values.length; i++){var x = self.getX(series.values[i].x, chart)
+var y = self.getY(series.values[i].value, chart);var dx = chart.properties.padding.left+1;var dy = chart.properties.height-chart.properties.padding.bottom;if (i>0){dx=x-self.getX(series.values[i-1].x, chart);dy=self.getY(series.values[i-1].value, chart);}
+if (i==0) path.push("M");else {path.push("C");var cx=x-(tension-1)*(dx/tension);path.push(cx+","+dy);cx=x-(dx/tension);path.push(cx+","+y);}
+path.push(x+","+y);}
+line.setAttribute("d", path.join(" "));};plotters["area"]=function(series, chart){var tension=1.5;var line = document.createElementNS(dojo.svg.xmlns.svg, "path");line.setAttribute("fill", series.color);line.setAttribute("fill-opacity", "0.4");line.setAttribute("stroke", series.color);line.setAttribute("stroke-width", "1");line.setAttribute("stroke-opacity", "0.8");line.setAttribute("title", series.label);chart.dataGroup.appendChild(line);var path = [];for (var i=0; i<series.values.length; i++){var x = self.getX(series.values[i].x, chart)
+var y = self.getY(series.values[i].value, chart);var dx = chart.properties.padding.left+1;var dy = chart.properties.height-chart.properties.padding.bottom;if (i>0){dx=x-self.getX(series.values[i-1].x, chart);dy=self.getY(series.values[i-1].value, chart);}
+if (i==0) path.push("M");else {path.push("C");var cx=x-(tension-1)*(dx/tension);path.push(cx+","+dy);cx=x-(dx/tension);path.push(cx+","+y);}
+path.push(x+","+y);}
+path.push("L");path.push(x + "," + self.getY(0, chart));path.push("L");path.push(self.getX(0, chart) + "," + self.getY(0, chart));path.push("Z");line.setAttribute("d", path.join(" "));},plotters["scatter"]=function(series, chart){var r=7;for (var i=0; i<series.values.length; i++){var x=self.getX(series.values[i].x, chart);var y=self.getY(series.values[i].value, chart);var point = document.createElementNS(dojo.svg.xmlns.svg, "path");point.setAttribute("fill", series.color);point.setAttribute("stroke-width", "0");point.setAttribute("title", series.label + ": " + series.values[i].value);point.setAttribute("d","M " + x + "," + (y-r) + " " +
+"Q " + x + "," + y + " " + (x+r) + "," + y + " " +
+"Q " + x + "," + y + " " + x + "," + (y+r) + " " +
+"Q " + x + "," + y + " " + (x-r) + "," + y + " " +
+"Q " + x + "," + y + " " + x + "," + (y-r) + " " +
+"Z"
+);chart.dataGroup.appendChild(point);}};plotters["bubble"]=function(series, chart){var minR=1;var min=chart.properties.axes.x.range.min;var max=chart.properties.axes.x.range.max;var ofst=0-min;min+=ofst; max+=ofst;var xmin=chart.properties.padding.left;var xmax=chart.properties.width-chart.properties.padding.right;var factor=(max-min)/(xmax-xmin)*25;for (var i=0; i<series.values.length; i++){var size = series.values[i].size;if (isNaN(parseFloat(size))) size=minR;var point=document.createElementNS(dojo.svg.xmlns.svg, "circle");point.setAttribute("stroke-width", 0);point.setAttribute("fill", series.color);point.setAttribute("fill-opacity", "0.8");point.setAttribute("r", (parseFloat(size)*factor)/2);point.setAttribute("cx", self.getX(series.values[i].x, chart));point.setAttribute("cy", self.getY(series.values[i].value, chart));point.setAttribute("title", series.label + ": " + series.values[i].value + " (" + size + ")");chart.dataGroup.appendChild(point);}};}();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1,4 @@
+.dojoAccordionPane .label {color: #000;font-weight: bold;background: url("images/soriaAccordionOff.gif") repeat-x top left #85aeec;border:1px solid #d9d9d9;font-size:0.9em;}
+.dojoAccordionPane-selected .label {background: url("images/soriaAccordionSelected.gif") repeat-x top left #85aeec;border:1px solid #84a3d1;}
+.dojoAccordionPane .label:hover {cursor: pointer;}
+.dojoAccordionPane .accBody {background: #fff;overflow: auto;border:1px solid #84a3d1;}
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/AccordionPane.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,4 @@
+<div dojoAttachPoint="domNode">
+<div dojoAttachPoint="labelNode" dojoAttachEvent="onclick: onLabelClick" class="${this.labelNodeClass}">${this.label}</div>
+<div dojoAttachPoint="containerNode" style="overflow: hidden;" class="${this.containerNodeClass}"></div>
+</div>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1,11 @@
+.dojoButtonContents {padding: 0px;text-align: center;vertical-align: middle;white-space: nowrap;color: inherit;}
+.dojoButtonContents * {text-align: center;vertical-align: middle;}
+.dojoButtonContentsDropDown {padding-right: 3px;}
+.dojoButtonDownArrowBackground {padding-left: 2px;padding-right: 2px;}
+.dojoButtonDownArrowBorder {border: 1px solid white;}
+.dojoButtonDownArrow {width: 0px;height: 0px;line-height: 0px !important;border-style: solid dotted none dotted;border-color: black transparent transparent transparent;border-width: 6px 5px 0px 5px;}
+.dojoButton[popupActive] .dojoButtonDownArrow,.dojoButtonDownArrowBackground[popupActive] .dojoButtonDownArrow,.dojoButton:active .dojoButtonDownArrow {border-top-color: white;}
+.dojoButton {font-family: Myriad, Arial, Helvetica;font-weight:normal;margin:0 3px;padding:3px;;white-space: nowrap;cursor: pointer;color: invert;background-color:#e1e1e1;vertical-align: middle;overflow: visible;}
+.dojoButton:hover {cursor: pointer;color:#0e4978;background-color:#e9e9e9;}
+.dojoButton[popupActive],.dojoButtonDownArrowBackground[popupActive],.dojoButton:active {border-style: inset !important;color:white;background-color:gray;}
+.dojoButton[disabled] {cursor: default;cursor: url("images/no.gif"), default;opacity: 0.3;filter: alpha(opacity=30);}
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ButtonTemplate.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1 @@
+<button tabIndex="0" type="${this.type}" id="${this.id}" name="${this.name}" alt="${this.alt}" dojoAttachPoint="containerNode" class="dojoButtonContents dojoButton" dojoAttachEvent="onClick:buttonClick; onFocus;"></button>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Checkbox.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Checkbox.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Checkbox.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Checkbox.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,8 @@
+<span tabIndex="${this.tabIndex}" waiRole="${this._type}" id="${this.id}"
+	><img dojoAttachPoint="imageNode" src="${dojoWidgetModuleUri}templates/check.gif"
+		alt="" dojoAttachEvent="onload: onImageLoad" style="position: absolute; clip: rect(0px 16px 16px 0px);"/
+	><img dojoAttachPoint="spacerNode" src="${dojoWidgetModuleUri}templates/images/blank.gif"
+		style="display: none;"/
+	><input type="${this._type}" name="${this.name}" value="${this.value}"
+		dojoAttachPoint="inputNode"
+></span>
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/CheckboxA11y.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/CheckboxA11y.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/CheckboxA11y.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/CheckboxA11y.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,4 @@
+<span class='${this.class}'>
+	<input type="${this._type}" name="${this.name}" tabIndex="${this.tabIndex}" id="${this.id}" value="${this.value}"
+		 dojoAttachEvent="onClick: _onClick;" dojoAttachPoint="inputNode"> 
+</span>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1,10 @@
+.dojoComboBoxOuter {border: 0px !important;margin: 0px !important;padding: 0px !important;background: transparent !important;white-space: nowrap !important;}
+.dojoComboBox {border: 1px inset #afafaf;margin: 0px;padding: 0px;vertical-align: middle !important;float: none !important;position: static !important;display: inline !important;}
+input.dojoComboBox {border-right-width: 0px !important;margin-right: 0px !important;padding-right: 0px !important;}
+img.dojoComboBox {border-left-width: 0px !important;padding-left: 0px !important;margin-left: 0px !important;}
+.dj_ie img.dojoComboBox {margin-top: 1px;margin-bottom: 1px;}
+.dojoComboBoxOptions {font-family: Verdana, Helvetica, Garamond, sans-serif;background-color: white;border: 1px solid #afafaf;position: absolute;z-index: 1000;overflow: auto;cursor: default;}
+.dojoComboBoxItem {padding-left: 2px;padding-top: 2px;margin: 0px;}
+.dojoComboBoxItemEven {background-color: #f4f4f4;}
+.dojoComboBoxItemOdd {background-color: white;}
+.dojoComboBoxItemHighlight {background-color: #63709A;color: white;}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboBox.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,15 @@
+<span class="dojoComboBoxOuter"
+	><input style="display:none"  tabindex="-1" name="" value="" 
+		dojoAttachPoint="comboBoxValue"
+	><input style="display:none"  tabindex="-1" name="" value="" 
+		dojoAttachPoint="comboBoxSelectionValue"
+	><input type="text" autocomplete="off" class="dojoComboBox"
+		dojoAttachEvent="key:_handleKeyEvents; keyUp: onKeyUp; compositionEnd; onResize;"
+		dojoAttachPoint="textInputNode"
+	><img hspace="0"
+		vspace="0"
+		class="dojoComboBox"
+		dojoAttachPoint="downArrowNode"
+		dojoAttachEvent="onMouseUp: handleArrowClick; onResize;"
+		src="${this.buttonSrc}"
+></span>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboButtonTemplate.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboButtonTemplate.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboButtonTemplate.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ComboButtonTemplate.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,10 @@
+<button class=dojoButton tabIndex="-1" type="${this.type}" id="${this.id}" name="${this.name}" alt="${this.alt}" dojoAttachEvent="onClick:buttonClick; onKey; onFocus;"
+	><table cellpadding=0 cellspacing=0 cols=2 style="display:inline;">
+		<tr>
+			<td class="dojoButtonContents dojoButtonContentsDropDown" tabIndex="0" dojoAttachPoint="containerNode"></td>
+			<td class="dojoButtonDownArrowBackground dojoButtonDownArrowBorder" dojoAttachPoint="popupStateNode"
+				><div class=dojoButtonDownArrow></div
+			></td>
+		</tr>
+	</table
+></button>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ContentPane.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ContentPane.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ContentPane.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/ContentPane.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1 @@
+.dojoContentPane {display: block;overflow: auto;}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1,35 @@
+.datePickerContainer {width:164px;}
+.calendarContainer {}
+.calendarBodyContainer {width:100%;background: #7591bc url("images/dpBg.gif") top left repeat-x;}
+.calendarBodyContainer thead tr td {color:#293a4b;font:bold 0.75em Helvetica, Arial, Verdana, sans-serif;text-align:center;padding:0.25em;background: url("images/dpHorizLine.gif") bottom left repeat-x;}
+.calendarBodyContainer tbody tr td {color:#fff;font:bold 0.7em Helvetica, Arial, Verdana, sans-serif;text-align:center;padding:0.4em;background: url("images/dpVertLine.gif") top right repeat-y;cursor:pointer;cursor:hand;}
+.monthWrapper {padding-bottom:2px;background: url("images/dpHorizLine.gif") bottom left repeat-x;}
+.monthContainer {width:100%;}
+.monthLabelContainer {text-align:center;font:bold 0.75em Helvetica, Arial, Verdana, sans-serif;background: url("images/dpMonthBg.png") repeat-x top left !important;color:#293a4b;padding:0.25em;}
+.monthCurve {width:12px;}
+.monthCurveTL {background: url("images/dpCurveTL.png") no-repeat top left !important;}
+.monthCurveTR {background: url("images/dpCurveTR.png") no-repeat top right !important;}
+.yearWrapper {background: url("images/dpHorizLineFoot.gif") top left repeat-x;padding-top:2px;}
+.yearContainer {width:100%;}
+.yearContainer td {background:url("images/dpYearBg.png") top left repeat-x;}
+.yearContainer .yearLabel {margin:0;padding:0.45em 0 0.45em 0;color:#fff;font:bold 0.75em Helvetica, Arial, Verdana, sans-serif;text-align:center;}
+.curveBL {background: url("images/dpCurveBL.png") bottom left no-repeat !important;width:9px !important;padding:0;margin:0;}
+.curveBR {background: url("images/dpCurveBR.png") bottom right no-repeat !important;width:9px !important;padding:0;margin:0;}
+.previousMonth {background-color:#6782a8 !important;}
+.previousMonthDisabled {background-color:#a4a5a6 !important;cursor:default !important
+}
+.currentMonth {}
+.currentMonthDisabled {background-color:#bbbbbc !important;cursor:default !important
+}
+.nextMonth {background-color:#6782a8 !important;}
+.nextMonthDisabled {background-color:#a4a5a6 !important;cursor:default !important;}
+.currentDate {text-decoration:underline;font-style:italic;}
+.selectedDate {background-color:#fff !important;color:#6782a8 !important;}
+.yearLabel .selectedYear {padding:0.2em;background-color:#9ec3fb !important;}
+.nextYear, .previousYear {cursor:pointer;cursor:hand;padding:0;}
+.nextYear {margin:0 0 0 0.55em;}
+.previousYear {margin:0 0.55em 0 0;}
+.incrementControl {cursor:pointer;cursor:hand;width:1em;}
+.increase {float:right;}
+.decrease {float:left;}
+.lastColumn {background-image:none !important;}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DatePicker.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,96 @@
+<div class="datePickerContainer" dojoAttachPoint="datePickerContainerNode">
+	<table cellspacing="0" cellpadding="0" class="calendarContainer">
+		<thead>
+			<tr>
+				<td class="monthWrapper" valign="top">
+					<table class="monthContainer" cellspacing="0" cellpadding="0" border="0">
+						<tr>
+							<td class="monthCurve monthCurveTL" valign="top"></td>
+							<td class="monthLabelContainer" valign="top">
+								<span dojoAttachPoint="increaseWeekNode" 
+									dojoAttachEvent="onClick: onIncrementWeek;" 
+									class="incrementControl increase">
+									<img src="${dojoWidgetModuleUri}templates/images/incrementMonth.png" 
+									alt="&darr;" style="width:7px;height:5px;" />
+								</span>
+								<span 
+									dojoAttachPoint="increaseMonthNode" 
+									dojoAttachEvent="onClick: onIncrementMonth;" class="incrementControl increase">
+									<img src="${dojoWidgetModuleUri}templates/images/incrementMonth.png" 
+										alt="&darr;"  dojoAttachPoint="incrementMonthImageNode">
+								</span>
+								<span 
+									dojoAttachPoint="decreaseWeekNode" 
+									dojoAttachEvent="onClick: onIncrementWeek;" 
+									class="incrementControl decrease">
+									<img src="${dojoWidgetModuleUri}templates/images/decrementMonth.png" alt="&uarr;" style="width:7px;height:5px;" />
+								</span>
+								<span 
+									dojoAttachPoint="decreaseMonthNode" 
+									dojoAttachEvent="onClick: onIncrementMonth;" class="incrementControl decrease">
+									<img src="${dojoWidgetModuleUri}templates/images/decrementMonth.png" 
+										alt="&uarr;" dojoAttachPoint="decrementMonthImageNode">
+								</span>
+								<span dojoAttachPoint="monthLabelNode" class="month"></span>
+							</td>
+							<td class="monthCurve monthCurveTR" valign="top"></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td colspan="3">
+					<table class="calendarBodyContainer" cellspacing="0" cellpadding="0" border="0">
+						<thead>
+							<tr dojoAttachPoint="dayLabelsRow">
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+							</tr>
+						</thead>
+						<tbody dojoAttachPoint="calendarDatesContainerNode" 
+							dojoAttachEvent="onClick: _handleUiClick;">
+							<tr dojoAttachPoint="calendarWeekTemplate">
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+								<td></td>
+							</tr>
+						</tbody>
+					</table>
+				</td>
+			</tr>
+		</tbody>
+		<tfoot>
+			<tr>
+				<td colspan="3" class="yearWrapper">
+					<table cellspacing="0" cellpadding="0" border="0" class="yearContainer">
+						<tr>
+							<td class="curveBL" valign="top"></td>
+							<td valign="top">
+								<h3 class="yearLabel">
+									<span dojoAttachPoint="previousYearLabelNode"
+										dojoAttachEvent="onClick: onIncrementYear;" class="previousYear"></span>
+									<span class="selectedYear" dojoAttachPoint="currentYearLabelNode"></span>
+									<span dojoAttachPoint="nextYearLabelNode" 
+										dojoAttachEvent="onClick: onIncrementYear;" class="nextYear"></span>
+								</h3>
+							</td>
+							<td class="curveBR" valign="top"></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</tfoot>
+	</table>
+	
+</div>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DemoEngine.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DemoEngine.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DemoEngine.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DemoEngine.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,24 @@
+<div dojoAttachPoint="domNode">
+	<div dojoAttachPoint="navigationNode">
+		<table border="0" cellspacing="0" cellpadding="0">
+			<tr>
+				<td width="1%" valign="top" class="navigationCell"><h1>Categories</h1><div dojoAttachPoint="menuNavigationNode"></div></td>
+				<td width="99%" valign="top">
+					<div dojoAttachPoint="demoNavigationNode">
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+
+	<div dojoAttachPoint="demoContainerNode">
+
+		<div dojoAttachPoint="demoPaneNode">
+		</div>
+
+		<div dojoAttachPoint="demoHeaderNode">
+			<span dojoAttachPoint="collapsedMenuNode" dojoAttachEvent="onclick: expandDemoNavigation"></span>
+			<div dojoAttachPoint="aboutNode">About this Demo</div>
+		</div>
+	</div>
+</div>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Dialog.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Dialog.html?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Dialog.html (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/Dialog.html Mon Feb  5 21:01:25 2007
@@ -0,0 +1,7 @@
+<div id="${this.widgetId}" class="dojoDialog" dojoattachpoint="wrapper">
+	<span dojoattachpoint="tabStartOuter" dojoonfocus="trapTabs" dojoonblur="clearTrap"	tabindex="0"></span>
+	<span dojoattachpoint="tabStart" dojoonfocus="trapTabs" dojoonblur="clearTrap" tabindex="0"></span>
+	<div dojoattachpoint="containerNode" style="position: relative; z-index: 2;"></div>
+	<span dojoattachpoint="tabEnd" dojoonfocus="trapTabs" dojoonblur="clearTrap" tabindex="0"></span>
+	<span dojoattachpoint="tabEndOuter" dojoonfocus="trapTabs" dojoonblur="clearTrap" tabindex="0"></span>
+</div>

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DocPane.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DocPane.css?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DocPane.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/templates/DocPane.css Mon Feb  5 21:01:25 2007
@@ -0,0 +1,43 @@
+.dojoDocPane { padding:1em; font: 1em Georgia,Times,"Times New Roman",serif; }
+.dojoDocPane .container{ }
+.dojoDocPane .dialog{ }
+.dojoDocPane .dialog .container{ padding: 0.5em; background: #fff; border: 2px solid #333; }
+.dojoDocPane .dialog .docDialog{ background: transparent; width: 20em; }
+.dojoDocPane .dialog .docDialog h2{ margin-top: 0; padding-top: 0; }
+.dojoDocPane .dialog .docDialog input { float: right; margin-right: 1em; }
+.dojoDocPane .dialog .docDialog p{ clear: both; }
+#dojoDocUserName, #dojoDocPassword { width: 10em; }
+.dojoDocPane .nav{ }
+.dojoDocPane .nav span{ }
+.dojoDocPane .detail{ }
+.dojoDocPane .detail h1{ }
+.dojoDocPane .detail h1 span.fn{ }
+.dojoDocPane .detail .description{ }
+.dojoDocPane .detail .params{ }
+.dojoDocPane .detail .params .row{ }
+.dojoDocPane .detail .params .row span{ }
+.dojoDocPane .detail .variables{ }
+.dojoDocPane .detail .variables .row{ }
+.dojoDocPane .detail .signature{ }
+.dojoDocPane .detail .signature .source{ white-space: pre; font: 0.8em Monaco, Courier, "Courier New", monospace; }
+.dojoDocPane .detail .signature .source .return{ color:#369; }
+.dojoDocPane .detail .signature .source .function{ color: #98543F; font-weight: bold; }
+.dojoDocPane .detail .signature .source .params{ }
+.dojoDocPane .detail .signature .source .params .type{ font-style: italic; color: #d17575; }
+.dojoDocPane .detail .signature .source .params .name{ color: #d14040; }
+.dojoDocPane .result{ }
+.dojoDocPane .result h1{ }
+.dojoDocPane .result .row{ }
+.dojoDocPane .result .row .summary{ }
+.dojoDocPane .package{ }
+.dojoDocPane .package h1{ }
+.dojoDocPane .package .row{ }
+.dojoDocPane .package .row .summary{ }
+.dojoDocPane .package .description{ }
+.dojoDocPane .package .methods{ }
+.dojoDocPane .package .methods h2{ }
+.dojoDocPane .package .methods .row{ }
+.dojoDocPane .package .methods .row .description{ }
+.dojoDocPane .package .requires{ }
+.dojoDocPane .package .requires h2{ }
+.dojoDocPane .package .requires .row{ }