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/01/21 19:26:26 UTC

svn commit: r498423 [25/30] - in /tapestry/tapestry4/trunk: .settings/ eclipse/ tapestry-examples/TimeTracker/src/context/WEB-INF/ tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/dao/ tapestry-examples/TimeTracker/src/java/org/ap...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeNodeV3.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeNodeV3.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeNodeV3.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeNodeV3.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,46 @@
+
+dojo.provide("dojo.widget.TreeNodeV3");dojo.require("dojo.html.*");dojo.require("dojo.event.*");dojo.require("dojo.io.*");dojo.require("dojo.widget.TreeWithNode");dojo.widget.defineWidget(
+"dojo.widget.TreeNodeV3",[dojo.widget.HtmlWidget, dojo.widget.TreeWithNode],function() {this.actionsDisabled = [];this.object = {};},{tryLazyInit: true,actions: {MOVE: "MOVE",DETACH: "DETACH",EDIT: "EDIT",ADDCHILD: "ADDCHILD",SELECT: "SELECT"
+},labelClass: "",contentClass: "",expandNode: null,labelNode: null,nodeDocType: "",selected: false,getnodeDocType: function() {return this.nodeDocType;},cloneProperties: ["actionsDisabled","tryLazyInit","nodeDocType","objectId","object","title","isFolder","isExpanded","state"],clone: function(deep) {var ret = new this.constructor();for(var i=0; i<this.cloneProperties.length; i++) {var prop = this.cloneProperties[i];ret[prop] = dojo.lang.shallowCopy(this[prop], true);}
+if (this.tree.unsetFolderOnEmpty && !deep && this.isFolder) {ret.isFolder = false;}
+ret.toggleObj = this.toggleObj;dojo.widget.manager.add(ret);ret.tree = this.tree;ret.buildRendering({},{});ret.initialize({},{});if (deep && this.children.length) {for(var i=0; i<this.children.length; i++) {var child = this.children[i];if (child.clone) {ret.children.push(child.clone(deep));} else {ret.children.push(dojo.lang.shallowCopy(child, deep));}}
+ret.setChildren();}
+return ret;},markProcessing: function() {this.markProcessingSavedClass = dojo.html.getClass(this.expandNode);dojo.html.setClass(this.expandNode, this.tree.classPrefix+'ExpandLoading');},unmarkProcessing: function() {dojo.html.setClass(this.expandNode, this.markProcessingSavedClass);},buildRendering: function(args, fragment, parent) {if (args.tree) {this.tree = dojo.lang.isString(args.tree) ? dojo.widget.manager.getWidgetById(args.tree) : args.tree;} else if (parent && parent.tree) {this.tree = parent.tree;}
+if (!this.tree) {dojo.raise("Can't evaluate tree from arguments or parent");}
+this.domNode = this.tree.nodeTemplate.cloneNode(true);this.expandNode = this.domNode.firstChild;this.contentNode = this.domNode.childNodes[1];this.labelNode = this.contentNode.firstChild;if (this.labelClass) {dojo.html.addClass(this.labelNode, this.labelClass);}
+if (this.contentClass) {dojo.html.addClass(this.contentNode, this.contentClass);}
+this.domNode.widgetId = this.widgetId;this.labelNode.innerHTML = this.title;},isTreeNode: true,object: {},title: "",isFolder: null,contentNode: null,expandClass: "",isExpanded: false,containerNode: null,getInfo: function() {var info = {widgetId: this.widgetId,objectId: this.objectId,index: this.getParentIndex()
+}
+return info;},setFolder: function() {this.isFolder = true;var setExpand="false";if (this.isExpanded){setExpand="true";}
+dojo.widget.wai.setAttr(this.labelNode, "waiState", "expanded", setExpand);this.viewSetExpand();if (!this.containerNode) {this.viewAddContainer();}
+dojo.event.topic.publish(this.tree.eventNames.afterSetFolder, { source: this });},initialize: function(args, frag, parent) {if (args.isFolder) {this.isFolder = true;}
+if (this.children.length || this.isFolder) {this.setFolder();} else {this.viewSetExpand();}
+for(var i=0; i<this.actionsDisabled.length;i++) {this.actionsDisabled[i] = this.actionsDisabled[i].toUpperCase();}
+dojo.event.topic.publish(this.tree.eventNames.afterChangeTree, {oldTree:null, newTree:this.tree, node:this} );},unsetFolder: function() {this.isFolder = false;this.viewSetExpand();dojo.event.topic.publish(this.tree.eventNames.afterUnsetFolder, { source: this });},insertNode: function(parent, index) {if (!index) index = 0;if (index==0) {dojo.html.prependChild(this.domNode, parent.containerNode);} else {dojo.html.insertAfter(this.domNode, parent.children[index-1].domNode);}},updateTree: function(newTree) {if (this.tree === newTree) {return;}
+var oldTree = this.tree;dojo.lang.forEach(this.getDescendants(),function(elem) {elem.tree = newTree;});if (oldTree.classPrefix != newTree.classPrefix) {var stack = [this.domNode]
+var elem;var reg = new RegExp("(^|\\s)"+oldTree.classPrefix, "g");while (elem = stack.pop()) {for(var i=0; i<elem.childNodes.length; i++) {var childNode = elem.childNodes[i]
+if (childNode.nodeDocType != 1) continue;dojo.html.setClass(childNode, dojo.html.getClass(childNode).replace(reg, '$1'+newTree.classPrefix));stack.push(childNode);}}
+}
+var message = {oldTree:oldTree, newTree:newTree, node:this}
+dojo.event.topic.publish(this.tree.eventNames.afterChangeTree, message );dojo.event.topic.publish(newTree.eventNames.afterChangeTree, message );},addedTo: function(parent, index, dontPublishEvent) {if (this.tree !== parent.tree) {this.updateTree(parent.tree);}
+if (parent.isTreeNode) {if (!parent.isFolder) {parent.setFolder();parent.state = parent.loadStates.LOADED;}}
+var siblingsCount = parent.children.length;this.insertNode(parent, index);this.viewAddLayout();if (siblingsCount > 1) {if (index == 0 && parent.children[1] instanceof dojo.widget.Widget) {parent.children[1].viewUpdateLayout();}
+if (index == siblingsCount-1 && parent.children[siblingsCount-2] instanceof dojo.widget.Widget) {parent.children[siblingsCount-2].viewUpdateLayout();}} else if (parent.isTreeNode) {parent.viewSetHasChildren();}
+if (!dontPublishEvent) {var message = {child: this,index: index,parent: parent
+}
+dojo.event.topic.publish(this.tree.eventNames.afterAddChild, message);}},createSimple: function(args, parent) {if (args.tree) {var tree = args.tree;} else if (parent) {var tree = parent.tree;} else {dojo.raise("createSimple: can't evaluate tree");}
+tree = dojo.widget.byId(tree);var treeNode = new tree.defaultChildWidget();for(var x in args){treeNode[x] = args[x];}
+treeNode.toggleObj = new (dojo.lfx.toggler[treeNode.toggle.toLowerCase()] || dojo.lfx.toggler.plain);dojo.widget.manager.add(treeNode);treeNode.buildRendering(args, {}, parent);treeNode.initialize(args, {}, parent);if (treeNode.parent) {delete dojo.widget.manager.topWidgets[treeNode.widgetId];}
+return treeNode;},viewUpdateLayout: function() {this.viewRemoveLayout();this.viewAddLayout();},viewAddContainer: function() {this.containerNode = this.tree.containerNodeTemplate.cloneNode(true);this.domNode.appendChild(this.containerNode);},viewAddLayout: function() {if (this.parent["isTree"]) {dojo.html.setClass(this.domNode, dojo.html.getClass(this.domNode) + ' '+this.tree.classPrefix+'IsRoot')
+}
+if (this.isLastChild()) {dojo.html.setClass(this.domNode, dojo.html.getClass(this.domNode) + ' '+this.tree.classPrefix+'IsLast')
+}},viewRemoveLayout: function() {dojo.html.removeClass(this.domNode, this.tree.classPrefix+"IsRoot");dojo.html.removeClass(this.domNode, this.tree.classPrefix+"IsLast");},viewGetExpandClass: function() {if (this.isFolder) {return this.isExpanded ? "ExpandOpen" : "ExpandClosed";} else {return "ExpandLeaf";}},viewSetExpand: function() {var expand = this.tree.classPrefix+this.viewGetExpandClass();var reg = new RegExp("(^|\\s)"+this.tree.classPrefix+"Expand\\w+",'g');dojo.html.setClass(this.domNode, dojo.html.getClass(this.domNode).replace(reg,'') + ' '+expand);this.viewSetHasChildrenAndExpand();},viewGetChildrenClass: function() {return 'Children'+(this.children.length ? 'Yes' : 'No');},viewSetHasChildren: function() {var clazz = this.tree.classPrefix+this.viewGetChildrenClass();var reg = new RegExp("(^|\\s)"+this.tree.classPrefix+"Children\\w+",'g');dojo.html.setClass(this.domNode, dojo.html.getClass(this.domNode).replace(reg,'') + ' '+clazz);this.viewSetHasChildrenAndExpand()
 ;},viewSetHasChildrenAndExpand: function() {var clazz = this.tree.classPrefix+'State'+this.viewGetChildrenClass()+'-'+this.viewGetExpandClass();var reg = new RegExp("(^|\\s)"+this.tree.classPrefix+"State[\\w-]+",'g');dojo.html.setClass(this.domNode, dojo.html.getClass(this.domNode).replace(reg,'') + ' '+clazz);},viewUnfocus: function() {dojo.html.removeClass(this.labelNode, this.tree.classPrefix+"LabelFocused");},viewFocus: function() {dojo.html.addClass(this.labelNode, this.tree.classPrefix+"LabelFocused");},viewEmphasize: function() {dojo.html.clearSelection(this.labelNode);dojo.html.addClass(this.labelNode, this.tree.classPrefix+'NodeEmphasized');},viewUnemphasize: function() {dojo.html.removeClass(this.labelNode, this.tree.classPrefix+'NodeEmphasized');},detach: function() {if (!this.parent) return;var parent = this.parent;var index = this.getParentIndex();this.doDetach.apply(this, arguments);dojo.event.topic.publish(this.tree.eventNames.afterDetach,{ child: this, parent
 : parent, index:index }
+);},doDetach: function() {var parent = this.parent;if (!parent) return;var index = this.getParentIndex();this.viewRemoveLayout();dojo.widget.DomWidget.prototype.removeChild.call(parent, this);var siblingsCount = parent.children.length;if (siblingsCount > 0) {if (index == 0) {parent.children[0].viewUpdateLayout();}
+if (index == siblingsCount) {parent.children[siblingsCount-1].viewUpdateLayout();}} else {if (parent.isTreeNode) {parent.viewSetHasChildren();}}
+if (this.tree.unsetFolderOnEmpty && !parent.children.length && parent.isTreeNode) {parent.unsetFolder();}
+this.parent = null;},destroy: function() {dojo.event.topic.publish(this.tree.eventNames.beforeNodeDestroy, { source: this } );this.detach();return dojo.widget.HtmlWidget.prototype.destroy.apply(this, arguments);},expand: function(){if (this.isExpanded) return;if (this.tryLazyInit) {this.setChildren();this.tryLazyInit = false;}
+this.isExpanded = true;dojo.widget.wai.setAttr(this.labelNode, "waiState", "expanded", "true");dojo.widget.wai.setAttr(this.containerNode, "waiRole", "role", "group");this.viewSetExpand();this.showChildren();},collapse: function(){if (!this.isExpanded) return;this.isExpanded = false;dojo.widget.wai.setAttr(this.labelNode, "waiState", "expanded", "false");this.hideChildren();},hideChildren: function(){this.tree.toggleObj.hide(
+this.containerNode, this.tree.toggleDuration, this.explodeSrc, dojo.lang.hitch(this, "onHideChildren")
+);},showChildren: function(){this.tree.toggleObj.show(
+this.containerNode, this.tree.toggleDuration, this.explodeSrc, dojo.lang.hitch(this, "onShowChildren")
+);},onShowChildren: function() {this.onShow();dojo.event.topic.publish(this.tree.eventNames.afterExpand, {source: this} );},onHideChildren: function() {this.viewSetExpand();this.onHide();dojo.event.topic.publish(this.tree.eventNames.afterCollapse, {source: this} );},setTitle: function(title) {var oldTitle = this.title;this.labelNode.innerHTML = this.title = title;dojo.event.topic.publish(this.tree.eventNames.afterSetTitle, { source: this, oldTitle:oldTitle });},toString: function() {return '['+this.widgetType+', '+this.title+']';}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeNodeV3.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRPCController.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRPCController.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRPCController.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRPCController.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,20 @@
+
+dojo.provide("dojo.widget.TreeRPCController");dojo.require("dojo.event.*");dojo.require("dojo.json")
+dojo.require("dojo.io.*");dojo.require("dojo.widget.TreeLoadingController");dojo.widget.defineWidget("dojo.widget.TreeRPCController", dojo.widget.TreeLoadingController, {doMove: function(child, newParent, index){var params = {child: this.getInfo(child),childTree: this.getInfo(child.tree),newParent: this.getInfo(newParent),newParentTree: this.getInfo(newParent.tree),newIndex: index
+};var success;this.runRPC({url: this.getRPCUrl('move'),load: function(response){success = this.doMoveProcessResponse(response, child, newParent, index) ;},sync: true,lock: [child, newParent],params: params
+});return success;},doMoveProcessResponse: function(response, child, newParent, index){if(!dojo.lang.isUndefined(response.error)){this.RPCErrorHandler("server", response.error);return false;}
+var args = [child, newParent, index];return dojo.widget.TreeLoadingController.prototype.doMove.apply(this, args);},doRemoveNode: function(node, callObj, callFunc){var params = {node: this.getInfo(node),tree: this.getInfo(node.tree)
+}
+this.runRPC({url: this.getRPCUrl('removeNode'),load: function(response){this.doRemoveNodeProcessResponse(response, node, callObj, callFunc)
+},params: params,lock: [node]
+});},doRemoveNodeProcessResponse: function(response, node, callObj, callFunc){if(!dojo.lang.isUndefined(response.error)){this.RPCErrorHandler("server", response.error);return false;}
+if(!response){ return false; }
+if(response == true){var args = [ node, callObj, callFunc ];dojo.widget.TreeLoadingController.prototype.doRemoveNode.apply(this, args);return;}else if(dojo.lang.isObject(response)){dojo.raise(response.error);}else{dojo.raise("Invalid response "+response)
+}},doCreateChild: function(parent, index, output, callObj, callFunc){var params = {tree: this.getInfo(parent.tree),parent: this.getInfo(parent),index: index,data: output
+}
+this.runRPC({url: this.getRPCUrl('createChild'),load: function(response) {this.doCreateChildProcessResponse( response, parent, index, callObj, callFunc)
+},params: params,lock: [parent]
+});},doCreateChildProcessResponse: function(response, parent, index, callObj, callFunc){if(!dojo.lang.isUndefined(response.error)){this.RPCErrorHandler("server",response.error);return false;}
+if(!dojo.lang.isObject(response)){dojo.raise("Invalid result "+response)
+}
+var args = [parent, index, response, callObj, callFunc];dojo.widget.TreeLoadingController.prototype.doCreateChild.apply(this, args);}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRPCController.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRpcControllerV3.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRpcControllerV3.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRpcControllerV3.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRpcControllerV3.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,34 @@
+
+dojo.provide("dojo.widget.TreeRpcControllerV3");dojo.require("dojo.event.*");dojo.require("dojo.json")
+dojo.require("dojo.io.*");dojo.require("dojo.widget.TreeLoadingControllerV3");dojo.widget.defineWidget(
+"dojo.widget.TreeRpcControllerV3",dojo.widget.TreeLoadingControllerV3,{extraRpcOnEdit: false,doMove: function(child, newParent, index, sync){var params = {child: this.getInfo(child),childTree: this.getInfo(child.tree),oldParent: this.getInfo(child.parent),oldParentTree: this.getInfo(child.parent.tree),newParent: this.getInfo(newParent),newParentTree: this.getInfo(newParent.tree),newIndex: index
+};var deferred = this.runRpc({url: this.getRpcUrl('move'),sync: sync,params: params
+});var _this = this;var args = arguments;deferred.addCallback(function() {dojo.widget.TreeBasicControllerV3.prototype.doMove.apply(_this,args);});return deferred;},prepareDetach: function(node, sync) {var deferred = this.startProcessing(node);return deferred;},finalizeDetach: function(node) {this.finishProcessing(node);},doDetach: function(node, sync){var params = {node: this.getInfo(node),tree: this.getInfo(node.tree)
+}
+var deferred = this.runRpc({url: this.getRpcUrl('detach'),sync: sync,params: params
+});var _this = this;var args = arguments;deferred.addCallback(function() {dojo.widget.TreeBasicControllerV3.prototype.doDetach.apply(_this,args);});return deferred;},requestEditConfirmation: function(node, action, sync) {if (!this.extraRpcOnEdit) {return dojo.Deferred.prototype.makeCalled();}
+var _this = this;var deferred = this.startProcessing(node);var params = {node: this.getInfo(node),tree: this.getInfo(node.tree)
+}
+deferred.addCallback(function() {return _this.runRpc({url: _this.getRpcUrl(action),sync: sync,params: params
+});});deferred.addBoth(function(r) {_this.finishProcessing(node);return r;});return deferred;},editLabelSave: function(node, newContent, sync) {var deferred = this.startProcessing(node);var _this = this;var params = {node: this.getInfo(node),tree: this.getInfo(node.tree),newContent: newContent
+}
+deferred.addCallback(function() {return _this.runRpc({url: _this.getRpcUrl('editLabelSave'),sync: sync,params: params
+});});deferred.addBoth(function(r) {_this.finishProcessing(node);return r;});return deferred;},editLabelStart: function(node, sync) {if (!this.canEditLabel(node)) {return false;}
+var _this = this;if (!this.editor.isClosed()) {var deferred = this.editLabelFinish(this.editor.saveOnBlur, sync);deferred.addCallback(function() {return _this.editLabelStart(node, sync);});return deferred;}
+var deferred = this.requestEditConfirmation(node, 'editLabelStart', sync);deferred.addCallback(function() {_this.doEditLabelStart(node);});return deferred;},editLabelFinish: function(save, sync) {var _this = this;var node = this.editor.node;var deferred = dojo.Deferred.prototype.makeCalled();if (!save && !node.isPhantom) {deferred = this.requestEditConfirmation(this.editor.node,'editLabelFinishCancel', sync);}
+if (save) {if (node.isPhantom) {deferred = this.sendCreateChildRequest(
+node.parent,node.getParentIndex(),{title:this.editor.getContents()},sync
+);} else {deferred = this.editLabelSave(node, this.editor.getContents(), sync);}}
+deferred.addCallback(function(server_data) {_this.doEditLabelFinish(save, server_data);});deferred.addErrback(function(r) {_this.doEditLabelFinish(false);return false;});return deferred;},createAndEdit: function(parent, index, sync) {var data = {title:parent.tree.defaultChildTitle};if (!this.canCreateChild(parent, index, data)) {return false;}
+if (!this.editor.isClosed()) {var deferred = this.editLabelFinish(this.editor.saveOnBlur, sync);deferred.addCallback(function() {return _this.createAndEdit(parent, index, sync);});return deferred;}
+var _this = this;var deferred = this.prepareCreateChild(parent, index, data, sync);deferred.addCallback(function() {var child = _this.makeDefaultNode(parent, index);child.isPhantom = true;return child;});deferred.addBoth(function(r) {_this.finalizeCreateChild(parent, index, data, sync);return r;});deferred.addCallback(function(child) {var d = _this.exposeCreateChild(parent, index, data, sync);d.addCallback(function() { return child });return d;});deferred.addCallback(function(child) {_this.doEditLabelStart(child);return child;});return deferred;},prepareDestroyChild: function(node, sync) {var deferred = this.startProcessing(node);return deferred;},finalizeDestroyChild: function(node) {this.finishProcessing(node);},doDestroyChild: function(node, sync){var params = {node: this.getInfo(node),tree: this.getInfo(node.tree)
+}
+var deferred = this.runRpc({url: this.getRpcUrl('destroyChild'),sync: sync,params: params
+});var _this = this;var args = arguments;deferred.addCallback(function() {dojo.widget.TreeBasicControllerV3.prototype.doDestroyChild.apply(_this,args);});return deferred;},sendCreateChildRequest: function(parent, index, data, sync) {var params = {tree: this.getInfo(parent.tree),parent: this.getInfo(parent),index: index,data: data
+}
+var deferred = this.runRpc({url: this.getRpcUrl('createChild'),sync: sync,params: params
+});return deferred;},doCreateChild: function(parent, index, data, sync){if (dojo.lang.isUndefined(data.title)) {data.title = parent.tree.defaultChildTitle;}
+var deferred = this.sendCreateChildRequest(parent,index,data,sync);var _this = this;var args = arguments;deferred.addCallback(function(server_data) {dojo.lang.mixin(data, server_data);return dojo.widget.TreeBasicControllerV3.prototype.doCreateChild.call(_this,parent,index,data);});return deferred;},doClone: function(child, newParent, index, deep, sync) {var params = {child: this.getInfo(child),oldParent: this.getInfo(child.parent),oldParentTree: this.getInfo(child.parent.tree),newParent: this.getInfo(newParent),newParentTree: this.getInfo(newParent.tree),index: index,deep: deep ? true : false,tree: this.getInfo(child.tree)
+}
+var deferred = this.runRpc({url: this.getRpcUrl('clone'),sync: sync,params: params
+});var _this = this;var args = arguments;deferred.addCallback(function() {dojo.widget.TreeBasicControllerV3.prototype.doClone.apply(_this,args);});return deferred;}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeRpcControllerV3.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelector.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelector.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelector.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelector.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,11 @@
+
+dojo.provide("dojo.widget.TreeSelector");dojo.require("dojo.widget.HtmlWidget");dojo.widget.defineWidget("dojo.widget.TreeSelector", dojo.widget.HtmlWidget, function() {this.eventNames = {};this.listenedTrees = [];},{widgetType: "TreeSelector",selectedNode: null,dieWithTree: false,eventNamesDefault: {select : "select",destroy : "destroy",deselect : "deselect",dblselect: "dblselect"
+},initialize: function() {for(name in this.eventNamesDefault) {if (dojo.lang.isUndefined(this.eventNames[name])) {this.eventNames[name] = this.widgetId+"/"+this.eventNamesDefault[name];}}
+},destroy: function() {dojo.event.topic.publish(this.eventNames.destroy, { source: this } );return dojo.widget.HtmlWidget.prototype.destroy.apply(this, arguments);},listenTree: function(tree) {dojo.event.topic.subscribe(tree.eventNames.titleClick, this, "select");dojo.event.topic.subscribe(tree.eventNames.iconClick, this, "select");dojo.event.topic.subscribe(tree.eventNames.collapse, this, "onCollapse");dojo.event.topic.subscribe(tree.eventNames.moveFrom, this, "onMoveFrom");dojo.event.topic.subscribe(tree.eventNames.removeNode, this, "onRemoveNode");dojo.event.topic.subscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");this.listenedTrees.push(tree);},unlistenTree: function(tree) {dojo.event.topic.unsubscribe(tree.eventNames.titleClick, this, "select");dojo.event.topic.unsubscribe(tree.eventNames.iconClick, this, "select");dojo.event.topic.unsubscribe(tree.eventNames.collapse, this, "onCollapse");dojo.event.topic.unsubscribe(tree.eventNames.moveFrom, this, "onMoveFro
 m");dojo.event.topic.unsubscribe(tree.eventNames.removeNode, this, "onRemoveNode");dojo.event.topic.unsubscribe(tree.eventNames.treeDestroy, this, "onTreeDestroy");for(var i=0; i<this.listenedTrees.length; i++){if(this.listenedTrees[i] === tree){this.listenedTrees.splice(i, 1);break;}}
+},onTreeDestroy: function(message) {this.unlistenTree(message.source);if (this.dieWithTree) {this.destroy();}},onCollapse: function(message) {if (!this.selectedNode) return;var node = message.source;var parent = this.selectedNode.parent;while (parent !== node && parent.isTreeNode) {parent = parent.parent;}
+if (parent.isTreeNode) {this.deselect();}},select: function(message) {var node = message.source;var e = message.event;if (this.selectedNode === node) {if(e.ctrlKey || e.shiftKey || e.metaKey){this.deselect();return;}
+dojo.event.topic.publish(this.eventNames.dblselect, { node: node });return;}
+if (this.selectedNode) {this.deselect();}
+this.doSelect(node);dojo.event.topic.publish(this.eventNames.select, {node: node} );},onMoveFrom: function(message) {if (message.child !== this.selectedNode) {return;}
+if (!dojo.lang.inArray(this.listenedTrees, message.newTree)) {this.deselect();}},onRemoveNode: function(message) {if (message.child !== this.selectedNode) {return;}
+this.deselect();},doSelect: function(node){node.markSelected();this.selectedNode = node;},deselect: function(){var node = this.selectedNode;this.selectedNode = null;node.unMarkSelected();dojo.event.topic.publish(this.eventNames.deselect, {node: node} );}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelector.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelectorV3.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelectorV3.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelectorV3.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelectorV3.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,25 @@
+
+dojo.provide("dojo.widget.TreeSelectorV3");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.TreeCommon");dojo.widget.defineWidget(
+"dojo.widget.TreeSelectorV3",[dojo.widget.HtmlWidget, dojo.widget.TreeCommon],function() {this.eventNames = {};this.listenedTrees = {};this.selectedNodes = [];this.lastClicked = {}},{listenTreeEvents: ["afterTreeCreate","afterCollapse","afterChangeTree", "afterDetach", "beforeTreeDestroy", "afterNavigate"],listenNodeFilter: function(elem) { return elem instanceof dojo.widget.Widget},allowedMulti: true,dblselectTimeout: 300,eventNamesDefault: {select : "select",deselect : "deselect",dblselect: "dblselect"
+},onAfterTreeCreate: function(message) {var tree = message.source;dojo.event.browser.addListener(tree.domNode, "onclick", dojo.lang.hitch(this, this.onTreeClick));if (dojo.render.html.ie) {dojo.event.browser.addListener(tree.domNode, "ondblclick", dojo.lang.hitch(this, this.onTreeDblClick));}
+dojo.event.browser.addListener(tree.domNode, "onKey", dojo.lang.hitch(this, this.onKey));},onKey: function(e) {if (!e.key || e.altKey) { return; }
+if (e.key == ' ') {var node = this.domElement2TreeNode(e.target);if (node){this.processNode(node, e);}}
+},onAfterNavigate: function(message) {this.processNode(message.node, message.event);},onAfterChangeTree: function(message) {if (!message.oldTree && message.node.selected) {this.select(message.node);}
+if (!message.newTree || !this.listenedTrees[message.newTree.widgetId]) {if (this.selectedNode && message.node.children) {this.deselectIfAncestorMatch(message.node);}}
+},initialize: function(args) {for(name in this.eventNamesDefault) {if (dojo.lang.isUndefined(this.eventNames[name])) {this.eventNames[name] = this.widgetId+"/"+this.eventNamesDefault[name];}}
+},onBeforeTreeDestroy: function(message) {this.unlistenTree(message.source);},onAfterCollapse: function(message) {this.deselectIfAncestorMatch(message.source);},onTreeDblClick: function(event) {this.onTreeClick(event);},checkSpecialEvent: function(event) {return event.shiftKey || event.ctrlKey;},onTreeClick: function(event) {var node = this.domElement2TreeNode(event.target);if (!node) {return;}
+var checkLabelClick = function(domElement) {return domElement === node.labelNode;}
+if (this.checkPathCondition(event.target, checkLabelClick)) {this.processNode(node, event);}},processNode: function(node, event) {if (node.actionIsDisabled(node.actions.SELECT)) {return;}
+if (dojo.lang.inArray(this.selectedNodes, node)) {if(this.checkSpecialEvent(event)){this.deselect(node);return;}
+var _this = this;var i=0;var selectedNode;while(this.selectedNodes.length > i) {selectedNode = this.selectedNodes[i];if (selectedNode !== node) {this.deselect(selectedNode);continue;}
+i++;}
+var wasJustClicked = this.checkRecentClick(node)
+eventName = wasJustClicked ? this.eventNames.dblselect : this.eventNames.select;if (wasJustClicked) {eventName = this.eventNames.dblselect;this.forgetLastClicked();} else {eventName = this.eventNames.select;this.setLastClicked(node)
+}
+dojo.event.topic.publish(eventName, { node: node });return;}
+this.deselectIfNoMulti(event);this.setLastClicked(node);this.select(node);},forgetLastClicked: function() {this.lastClicked = {}},setLastClicked: function(node) {this.lastClicked.date = new Date();this.lastClicked.node = node;},checkRecentClick: function(node) {var diff = new Date() - this.lastClicked.date;if (this.lastClicked.node && diff < this.dblselectTimeout) {return true;} else {return false;}},deselectIfNoMulti: function(event) {if (!this.checkSpecialEvent(event) || !this.allowedMulti) {this.deselectAll();}},deselectIfAncestorMatch: function(ancestor) {var _this = this;dojo.lang.forEach(this.selectedNodes, function(node) {var selectedNode = node;node = node.parent
+while (node && node.isTreeNode) {if (node === ancestor) {_this.deselect(selectedNode);return;}
+node = node.parent;}});},onAfterDetach: function(message) {this.deselectIfAncestorMatch(message.child);},select: function(node) {var index = dojo.lang.find(this.selectedNodes, node, true);if (index >=0 ) {return;}
+this.selectedNodes.push(node);dojo.event.topic.publish(this.eventNames.select, {node: node} );},deselect: function(node){var index = dojo.lang.find(this.selectedNodes, node, true);if (index < 0) {return;}
+this.selectedNodes.splice(index, 1);dojo.event.topic.publish(this.eventNames.deselect, {node: node} );},deselectAll: function() {while (this.selectedNodes.length) {this.deselect(this.selectedNodes[0]);}}
+});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeSelectorV3.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeTimeoutIterator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeTimeoutIterator.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeTimeoutIterator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeTimeoutIterator.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,10 @@
+
+dojo.provide("dojo.widget.TreeTimeoutIterator");dojo.require("dojo.event.*");dojo.require("dojo.json")
+dojo.require("dojo.io.*");dojo.require("dojo.widget.TreeCommon");dojo.declare(
+"dojo.widget.TreeTimeoutIterator",null,function(elem, callFunc, callObj) {var _this = this;this.currentParent = elem;this.callFunc = callFunc;this.callObj = callObj ? callObj: this;this.stack = [];},{maxStackDepth: Number.POSITIVE_INFINITY,stack: null,currentParent: null,currentIndex: 0,filterFunc: function() { return true },finishFunc: function() { return true },setFilter: function(func, obj) {this.filterFunc = func;this.filterObj = obj;},setMaxLevel: function(level) {this.maxStackDepth = level-2;},forward: function(timeout) {var _this = this;if (this.timeout) {var tid = setTimeout(function() {_this.processNext(); clearTimeout(tid); }, _this.timeout);} else {return this.processNext();}},start: function(processFirst) {if (processFirst) {return this.callFunc.call(this.callObj, this.currentParent, this);}
+return this.processNext();},processNext: function() {var handler;var _this = this;var found;var next;if (this.maxStackDepth == -2) {return;}
+while (true) {var children = this.currentParent.children;if (children && children.length) {do {next = children[this.currentIndex];} while (this.currentIndex++ < children.length && !(found = this.filterFunc.call(this.filterObj,next)));if (found) {if (next.isFolder && this.stack.length <= this.maxStackDepth) {this.moveParent(next,0);}
+return this.callFunc.call(this.callObj, next, this);}}
+if (this.stack.length) {this.popParent();continue;}
+break;}
+return this.finishFunc.call(this.finishObj);},setFinish: function(func, obj) {this.finishFunc = func;this.finishObj = obj;},popParent: function() {var p = this.stack.pop();this.currentParent = p[0];this.currentIndex = p[1];},moveParent: function(nextParent, nextIndex) {this.stack.push([this.currentParent, this.currentIndex]);this.currentParent = nextParent;this.currentIndex = nextIndex;}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeTimeoutIterator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeToggleOnSelect.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeToggleOnSelect.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeToggleOnSelect.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeToggleOnSelect.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.widget.TreeToggleOnSelect");dojo.require("dojo.widget.HtmlWidget");dojo.widget.defineWidget(
+"dojo.widget.TreeToggleOnSelect",dojo.widget.HtmlWidget,{selector: "",controller: "",selectEvent: "select",initialize: function() {this.selector = dojo.widget.byId(this.selector);this.controller = dojo.widget.byId(this.controller);dojo.event.topic.subscribe(this.selector.eventNames[this.selectEvent], this, "onSelectEvent");},onSelectEvent: function(message) {var node = message.node
+node.isExpanded ? this.controller.collapse(node) : this.controller.expand(node)
+}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeToggleOnSelect.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeV3.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeV3.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeV3.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeV3.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,19 @@
+
+dojo.provide("dojo.widget.TreeV3");dojo.require("dojo.widget.TreeWithNode");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.io.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.TreeNodeV3");dojo.widget.defineWidget(
+"dojo.widget.TreeV3",[dojo.widget.HtmlWidget, dojo.widget.TreeWithNode],function(){this.eventNames = {};this.DndAcceptTypes = [];this.actionsDisabled = [];this.listeners = [];this.tree = this;},{DndMode: "",defaultChildWidget: null,defaultChildTitle: "New Node",eagerWidgetInstantiation: false,eventNamesDefault:{afterTreeCreate: "afterTreeCreate",beforeTreeDestroy: "beforeTreeDestroy",beforeNodeDestroy: "beforeNodeDestroy",afterChangeTree: "afterChangeTree",afterSetFolder: "afterSetFolder",afterUnsetFolder: "afterUnsetFolder",beforeMoveFrom: "beforeMoveFrom",beforeMoveTo: "beforeMoveTo",afterMoveFrom: "afterMoveFrom",afterMoveTo: "afterMoveTo",afterAddChild: "afterAddChild",afterDetach: "afterDetach",afterExpand: "afterExpand",beforeExpand: "beforeExpand",afterSetTitle: "afterSetTitle",afterCollapse: "afterCollapse",beforeCollapse: "beforeCollapse",afterNavigate: "afterNavigate"
+},classPrefix: "Tree",style: "",allowAddChildToLeaf: true,unsetFolderOnEmpty: true,DndModes: {BETWEEN: 1,ONTO: 2
+},DndAcceptTypes: "",templateCssPath: dojo.uri.moduleUri("dojo", "widget/templates/TreeV3.css"),templateString: '<div style="${this.style}">\n</div>',isExpanded: true,isTree: true,createNode: function(data){data.tree = this.widgetId;if(data.widgetName){return dojo.widget.createWidget(data.widgetName, data);}else if(this.defaultChildWidget.prototype.createSimple){return this.defaultChildWidget.prototype.createSimple(data);}else{var ns = this.defaultChildWidget.prototype.ns;var wt = this.defaultChildWidget.prototype.widgetType;return dojo.widget.createWidget(ns + ":" + wt, data);}},makeNodeTemplate: function(){var domNode = document.createElement("div");dojo.html.setClass(domNode, this.classPrefix+"Node "+this.classPrefix+"ExpandLeaf "+this.classPrefix+"ChildrenNo");dojo.widget.wai.setAttr(domNode, "waiRole", "role", "presentation");this.nodeTemplate = domNode;var expandNode = document.createElement("div");var clazz = this.classPrefix+"Expand";dojo.widget.wai.setAttr(expandNod
 e, "waiRole", "role", "presentation");if (dojo.render.html.ie){clazz = clazz + ' ' + this.classPrefix+"IEExpand";}
+dojo.html.setClass(expandNode, clazz);this.expandNodeTemplate = expandNode;var labelNode = document.createElement("span");dojo.html.setClass(labelNode, this.classPrefix+"Label");dojo.widget.wai.setAttr(labelNode, "waiRole", "role", "treeitem");this.labelNodeTemplate = labelNode;var contentNode = document.createElement("div");dojo.widget.wai.setAttr(contentNode, "waiRole", "role", "presentation");var clazz = this.classPrefix+"Content";if(dojo.render.html.ie && !dojo.render.html.ie70){clazz = clazz + ' ' + this.classPrefix+"IEContent";}
+dojo.html.setClass(contentNode, clazz);this.contentNodeTemplate = contentNode;domNode.appendChild(expandNode);domNode.appendChild(contentNode);contentNode.appendChild(labelNode);},makeContainerNodeTemplate: function(){var div = document.createElement('div');div.style.display = 'none';dojo.html.setClass(div, this.classPrefix+"Container");dojo.widget.wai.setAttr(div, "waiRole", "role", "presentation");this.containerNodeTemplate = div;},actions: {ADDCHILD: "ADDCHILD"
+},getInfo: function(){var info = {widgetId: this.widgetId,objectId: this.objectId
+}
+return info;},adjustEventNames: function(){for(var name in this.eventNamesDefault){if(dojo.lang.isUndefined(this.eventNames[name])){this.eventNames[name] = this.widgetId+"/"+this.eventNamesDefault[name];}}
+},adjustDndMode: function(){var _this = this;var DndMode = 0;dojo.lang.forEach(this.DndMode.split(';'),function(elem){var mode = _this.DndModes[dojo.string.trim(elem).toUpperCase()];if(mode){DndMode = DndMode | mode;}}
+);this.DndMode = DndMode;},destroy: function(){dojo.event.topic.publish(this.tree.eventNames.beforeTreeDestroy, { source: this } );return dojo.widget.HtmlWidget.prototype.destroy.apply(this, arguments);},initialize: function(args){this.domNode.widgetId = this.widgetId;for(var i=0; i<this.actionsDisabled.length; i++){this.actionsDisabled[i] = this.actionsDisabled[i].toUpperCase();}
+if(!args.defaultChildWidget){this.defaultChildWidget = dojo.widget.TreeNodeV3;}else{this.defaultChildWidget = dojo.getObject(args.defaultChildWidget);}
+this.adjustEventNames();this.adjustDndMode();this.makeNodeTemplate();this.makeContainerNodeTemplate();this.containerNode = this.domNode;dojo.html.setClass(this.domNode, this.classPrefix+"Container");dojo.widget.wai.setAttr(this.domNode, "waiRole", "role", "tree");var _this = this;dojo.lang.forEach(this.listeners,function(elem){var t = dojo.lang.isString(elem) ? dojo.widget.byId(elem) : elem;t.listenTree(_this)
+}
+);},postCreate: function(){dojo.event.topic.publish(this.eventNames.afterTreeCreate, { source: this } );},move: function(child, newParent, index){if(!child.parent){dojo.raise(this.widgetType+": child can be moved only while it's attached");}
+var oldParent = child.parent;var oldTree = child.tree;var oldIndex = child.getParentIndex();var newTree = newParent.tree;var newParent = newParent;var newIndex = index;var message = {oldParent: oldParent, oldTree: oldTree, oldIndex: oldIndex,newParent: newParent, newTree: newTree, newIndex: newIndex,child: child
+};dojo.event.topic.publish(oldTree.eventNames.beforeMoveFrom, message);dojo.event.topic.publish(newTree.eventNames.beforeMoveTo, message);this.doMove.apply(this, arguments);dojo.event.topic.publish(oldTree.eventNames.afterMoveFrom, message);dojo.event.topic.publish(newTree.eventNames.afterMoveTo, message);},doMove: function(child, newParent, index){child.doDetach();newParent.doAddChild(child, index);},toString: function(){return "["+this.widgetType+" ID:"+this.widgetId+"]"
+}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeV3.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeWithNode.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeWithNode.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeWithNode.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeWithNode.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,23 @@
+
+dojo.require("dojo.lang.declare");dojo.provide("dojo.widget.TreeWithNode");dojo.declare(
+"dojo.widget.TreeWithNode",null,function(){ },{loadStates: {UNCHECKED: "UNCHECKED",LOADING: "LOADING",LOADED: "LOADED"
+},state: "UNCHECKED",objectId: "",isContainer: true,lockLevel: 0,lock: function() {this.lockLevel++;},unlock: function() {if (!this.lockLevel) {dojo.raise(this.widgetType+" unlock: not locked");}
+this.lockLevel--;},expandLevel: 0,loadLevel: 0,hasLock: function() {return this.lockLevel>0;},isLocked: function() {var node = this;while (true) {if (node.lockLevel) {return true;}
+if (!node.parent || node.isTree) {break;}
+node = node.parent;}
+return false;},flushLock: function() {this.lockLevel = 0;},actionIsDisabled: function(action) {var disabled = false;if (dojo.lang.inArray(this.actionsDisabled, action)) {disabled = true;}
+if (this.isTreeNode) {if (!this.tree.allowAddChildToLeaf && action == this.actions.ADDCHILD && !this.isFolder) {disabled = true;}}
+return disabled;},actionIsDisabledNow: function(action) {return this.actionIsDisabled(action) || this.isLocked();},setChildren: function(childrenArray) {if (this.isTreeNode && !this.isFolder) {this.setFolder();} else if (this.isTreeNode) {this.state = this.loadStates.LOADED;}
+var hadChildren = this.children.length > 0;if (hadChildren && childrenArray){this.destroyChildren()
+}
+if (childrenArray) {this.children = childrenArray;}
+var hasChildren = this.children.length > 0;if (this.isTreeNode && hasChildren != hadChildren) {this.viewSetHasChildren();}
+for(var i=0; i<this.children.length; i++) {var child = this.children[i];if (!(child instanceof dojo.widget.Widget)) {child = this.children[i] = this.tree.createNode(child);var childWidgetCreated = true;} else {var childWidgetCreated = false;}
+if (!child.parent) {child.parent = this;if (this.tree !== child.tree) {child.updateTree(this.tree);}
+child.viewAddLayout();this.containerNode.appendChild(child.domNode);var message = {child: child,index: i,parent: this,childWidgetCreated: childWidgetCreated
+}
+delete dojo.widget.manager.topWidgets[child.widgetId];dojo.event.topic.publish(this.tree.eventNames.afterAddChild, message);}
+if (this.tree.eagerWidgetInstantiation && child.children.length) {child.setChildren();}}
+},doAddChild: function(child, index) {return this.addChild(child, index, true);},addChild: function(child, index, dontPublishEvent) {if (dojo.lang.isUndefined(index)) {index = this.children.length;}
+if (!child.isTreeNode){dojo.raise("You can only add TreeNode widgets to a "+this.widgetType+" widget!");return;}
+this.children.splice(index, 0, child);child.parent = this;child.addedTo(this, index, dontPublishEvent);delete dojo.widget.manager.topWidgets[child.widgetId];},onShow: function() {this.animationInProgress=false;},onHide: function() {this.animationInProgress=false;}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TreeWithNode.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/UsTextbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/UsTextbox.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/UsTextbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/UsTextbox.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,11 @@
+
+dojo.provide("dojo.widget.UsTextbox");dojo.require("dojo.widget.ValidationTextbox");dojo.require("dojo.validate.us");dojo.widget.defineWidget(
+"dojo.widget.UsStateTextbox",dojo.widget.ValidationTextbox,{mixInProperties: function(localProperties){dojo.widget.UsStateTextbox.superclass.mixInProperties.apply(this, arguments);if(localProperties.allowterritories){this.flags.allowTerritories = (localProperties.allowterritories == "true");}
+if(localProperties.allowmilitary){this.flags.allowMilitary = (localProperties.allowmilitary == "true");}},isValid: function(){return dojo.validate.us.isState(this.textbox.value, this.flags);}}
+);dojo.widget.defineWidget(
+"dojo.widget.UsZipTextbox",dojo.widget.ValidationTextbox,{isValid: function(){return dojo.validate.us.isZipCode(this.textbox.value);}}
+);dojo.widget.defineWidget(
+"dojo.widget.UsSocialSecurityNumberTextbox",dojo.widget.ValidationTextbox,{isValid: function(){return dojo.validate.us.isSocialSecurityNumber(this.textbox.value);}}
+);dojo.widget.defineWidget(
+"dojo.widget.UsPhoneNumberTextbox",dojo.widget.ValidationTextbox,{isValid: function(){return dojo.validate.us.isPhoneNumber(this.textbox.value);}}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/UsTextbox.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ValidationTextbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ValidationTextbox.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ValidationTextbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ValidationTextbox.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,10 @@
+
+dojo.provide("dojo.widget.ValidationTextbox");dojo.require("dojo.widget.Textbox");dojo.require("dojo.i18n.common");dojo.widget.defineWidget(
+"dojo.widget.ValidationTextbox",dojo.widget.Textbox,function() {this.flags = {};},{required: false,rangeClass: "range",invalidClass: "invalid",missingClass: "missing",classPrefix: "dojoValidate",size: "",maxlength: "",promptMessage: "",invalidMessage: "",missingMessage: "",rangeMessage: "",listenOnKeyPress: true,htmlfloat: "none",lastCheckedValue: null,templatePath: dojo.uri.moduleUri("dojo", "widget/templates/ValidationTextbox.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/templates/Validate.css"),invalidSpan: null,missingSpan: null,rangeSpan: null,getValue: function() {return this.textbox.value;},setValue: function(value) {this.textbox.value = value;this.update();},isValid: function() {return true;},isInRange: function() {return true;},isEmpty: function() {return ( /^\s*$/.test(this.textbox.value) );},isMissing: function() {return ( this.required && this.isEmpty() );},update: function() {this.lastCheckedValue = this.textbox.value;this.missingSpan.style.display 
 = "none";this.invalidSpan.style.display = "none";this.rangeSpan.style.display = "none";var empty = this.isEmpty();var valid = true;if(this.promptMessage != this.textbox.value){valid = this.isValid();}
+var missing = this.isMissing();if(missing){this.missingSpan.style.display = "";}else if( !empty && !valid ){this.invalidSpan.style.display = "";}else if( !empty && !this.isInRange() ){this.rangeSpan.style.display = "";}
+this.highlight();},updateClass: function(className){var pre = this.classPrefix;dojo.html.removeClass(this.textbox,pre+"Empty");dojo.html.removeClass(this.textbox,pre+"Valid");dojo.html.removeClass(this.textbox,pre+"Invalid");dojo.html.addClass(this.textbox,pre+className);},highlight: function() {if (this.isEmpty()) {this.updateClass("Empty");}else if (this.isValid() && this.isInRange() ){this.updateClass("Valid");}else if(this.textbox.value != this.promptMessage){this.updateClass("Invalid");}else{this.updateClass("Empty");}},onfocus: function(evt) {if ( !this.listenOnKeyPress) {this.updateClass("Empty");}},onblur: function(evt) {this.filter();this.update();},onkeyup: function(evt){if(this.listenOnKeyPress){this.update();}else if (this.textbox.value != this.lastCheckedValue){this.updateClass("Empty");}},postMixInProperties: function(localProperties, frag) {dojo.widget.ValidationTextbox.superclass.postMixInProperties.apply(this, arguments);this.messages = dojo.i18n.getLocaliza
 tion("dojo.widget", "validate", this.lang);dojo.lang.forEach(["invalidMessage", "missingMessage", "rangeMessage"], function(prop) {if(this[prop]){ this.messages[prop] = this[prop]; }}, this);},fillInTemplate: function() {dojo.widget.ValidationTextbox.superclass.fillInTemplate.apply(this, arguments);this.textbox.isValid = function() { this.isValid.call(this); };this.textbox.isMissing = function() { this.isMissing.call(this); };this.textbox.isInRange = function() { this.isInRange.call(this); };dojo.html.setClass(this.invalidSpan,this.invalidClass);this.update();this.filter();if(dojo.render.html.ie){ dojo.html.addClass(this.domNode, "ie"); }
+if(dojo.render.html.moz){ dojo.html.addClass(this.domNode, "moz"); }
+if(dojo.render.html.opera){ dojo.html.addClass(this.domNode, "opera"); }
+if(dojo.render.html.safari){ dojo.html.addClass(this.domNode, "safari"); }}
+}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ValidationTextbox.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,31 @@
+
+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;}
+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();}
+for(var x=0; x<this.children.length; x++){if(isFunc){if(this.children[x] instanceof type){ret.push(this.children[x]);}}else{if(this.children[x].widgetType.toLowerCase() == type){ret.push(this.children[x]);}}
+if(recurse){ret = ret.concat(this.children[x].getChildrenOfType(type, recurse));}}
+return ret;},getDescendants: function(){var result = [];var stack = [this];var elem;while ((elem = stack.pop())){result.push(elem);if (elem.children) {dojo.lang.forEach(elem.children, function(elem) { stack.push(elem); });}}
+return result;},isFirstChild: function(){return this === this.parent.children[0];},isLastChild: function() {return this === this.parent.children[this.parent.children.length-1];},satisfyPropertySets: function(args){return args;},mixInProperties: function(args, frag){if((args["fastMixIn"])||(frag["fastMixIn"])){for(var x in args){this[x] = args[x];}
+return;}
+var undef;var lcArgs = dojo.widget.lcArgsCache[this.widgetType];if ( lcArgs == null ){lcArgs = {};for(var y in this){lcArgs[((new String(y)).toLowerCase())] = y;}
+dojo.widget.lcArgsCache[this.widgetType] = lcArgs;}
+var visited = {};for(var x in args){if(!this[x]){var y = lcArgs[(new String(x)).toLowerCase()];if(y){args[y] = args[x];x = y;}}
+if(visited[x]){ continue; }
+visited[x] = true;if((typeof this[x]) != (typeof undef)){if(typeof args[x] != "string"){this[x] = args[x];}else{if(dojo.lang.isString(this[x])){this[x] = args[x];}else if(dojo.lang.isNumber(this[x])){this[x] = new Number(args[x]);}else if(dojo.lang.isBoolean(this[x])){this[x] = (args[x].toLowerCase()=="false") ? false : true;}else if(dojo.lang.isFunction(this[x])){if(args[x].search(/[^\w\.]+/i) == -1){this[x] = dojo.getObject(args[x], false);}else{var tn = dojo.lang.nameAnonFunc(new Function(args[x]), this);dojo.event.kwConnect({srcObj: this,srcFunc: x,adviceObj: this,adviceFunc: tn
+});}}else if(dojo.lang.isArray(this[x])){this[x] = args[x].split(";");} else if (this[x] instanceof Date) {this[x] = new Date(Number(args[x]));}else if(typeof this[x] == "object"){if (this[x] instanceof dojo.uri.Uri){this[x] = dojo.uri.dojoUri(args[x]);}else{var pairs = args[x].split(";");for(var y=0; y<pairs.length; y++){var si = pairs[y].indexOf(":");if((si != -1)&&(pairs[y].length>si)){this[x][pairs[y].substr(0, si).replace(/^\s+|\s+$/g, "")] = pairs[y].substr(si+1);}}
+}}else{this[x] = args[x];}}
+}else{this.extraArgs[x.toLowerCase()] = args[x];}}
+},postMixInProperties: function(args, frag, parent){},initialize: function(args, frag, parent){return false;},postInitialize: function(args, frag, parent){return false;},postCreate: function(args, frag, parent){return false;},uninitialize: function(){return false;},buildRendering: function(args, frag, parent){dojo.unimplemented("dojo.widget.Widget.buildRendering, on "+this.toString()+", ");return false;},destroyRendering: function(){dojo.unimplemented("dojo.widget.Widget.destroyRendering");return false;},addedTo: function(parent){},addChild: function(child){dojo.unimplemented("dojo.widget.Widget.addChild");return false;},removeChild: function(widget){for(var x=0; x<this.children.length; x++){if(this.children[x] === widget){this.children.splice(x, 1);widget.parent=null;break;}}
+return widget;},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["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');}
+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]);}
+dojo.widget._defineWidget.apply(this, args);}}
+dojo.widget.defineWidget.renderers = "html|svg|vml";dojo.widget._defineWidget = function(widgetClass , renderer , superclasses , init , props ){var module = widgetClass.split(".");var type = module.pop();var regx = "\\.(" + (renderer ? renderer + '|' : '') + dojo.widget.defineWidget.renderers + ")\\.";var r = widgetClass.search(new RegExp(regx));module = (r < 0 ? module.join(".") : widgetClass.substr(0, r));dojo.widget.manager.registerWidgetPackage(module);var pos = module.indexOf(".");var nsName = (pos > -1) ? module.substring(0,pos) : module;props=(props)||{};props.widgetType = type;if((!init)&&(props["classConstructor"])){init = props.classConstructor;delete props.classConstructor;}
+dojo.declare(widgetClass, superclasses, init, props);}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Widget.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Wizard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Wizard.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Wizard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Wizard.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,18 @@
+
+dojo.provide("dojo.widget.Wizard");dojo.require("dojo.widget.*");dojo.require("dojo.widget.LayoutContainer");dojo.require("dojo.widget.ContentPane");dojo.require("dojo.event.*");dojo.require("dojo.html.style");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "common", null, "ROOT");dojo.requireLocalization("dojo.widget", "Wizard", null, "ROOT");dojo.widget.defineWidget(
+"dojo.widget.WizardContainer",dojo.widget.LayoutContainer,{templatePath: dojo.uri.moduleUri("dojo", "widget/templates/Wizard.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/templates/Wizard.css"),selected: null,nextButtonLabel: "",previousButtonLabel: "",cancelButtonLabel: "",doneButtonLabel: "",cancelFunction: "",hideDisabledButtons: false,postMixInProperties: function(){dojo.widget.LayoutContainer.superclass.postMixInProperties.apply(this, arguments);this.commonMessages = dojo.i18n.getLocalization("dojo.widget", "common", this.lang);this.messages = dojo.i18n.getLocalization("dojo.widget", "Wizard", this.lang);},fillInTemplate: function(args, frag){dojo.event.connect(this.nextButton, "onclick", this, "_onNextButtonClick");dojo.event.connect(this.previousButton, "onclick", this, "_onPreviousButtonClick");if (this.cancelFunction){dojo.event.connect(this.cancelButton, "onclick", this.cancelFunction);}else{this.cancelButton.style.display = "none";}
+dojo.event.connect(this.doneButton, "onclick", this, "done");},postCreate: function(){dojo.widget.LayoutContainer.superclass.postCreate.apply(this, arguments);if(this.nextButtonLabel){this.nextButton.value = this.nextButtonLabel;}
+if(this.previousButtonLabel){this.previousButton.value = this.previousButtonLabel;}
+if(this.cancelButtonLabel){this.cancelButton.value = this.cancelButtonLabel;}
+if(this.doneButtonLabel){this.doneButton.value = this.doneButtonLabel;}},_checkButtons: function(){var lastStep = !this.hasNextPanel();this.nextButton.disabled = lastStep;this._setButtonClass(this.nextButton);if(this.selected.doneFunction){this.doneButton.style.display = "";if(lastStep){this.nextButton.style.display = "none";}}else{this.doneButton.style.display = "none";}
+this.previousButton.disabled = ((!this.hasPreviousPanel()) || (!this.selected.canGoBack));this._setButtonClass(this.previousButton);},_setButtonClass: function(button){if(!this.hideDisabledButtons){button.style.display = "";dojo.html.setClass(button, button.disabled ? "WizardButtonDisabled" : "WizardButton");}else{button.style.display = button.disabled ? "none" : "";}},registerChild: function(panel, insertionIndex){dojo.widget.WizardContainer.superclass.registerChild.call(this, panel, insertionIndex);this.wizardPanelContainerNode.appendChild(panel.domNode);panel.hide();if(!this.selected){this.onSelected(panel);}
+this._checkButtons();},onSelected: function( panel){if(this.selected ){if (this.selected._checkPass()) {this.selected.hide();} else {return;}}
+panel.show();this.selected = panel;},getPanels: function() {return this.getChildrenOfType("WizardPane", false);},selectedIndex: function() {if (this.selected) {return dojo.lang.indexOf(this.getPanels(), this.selected);}
+return -1;},_onNextButtonClick: function() {var selectedIndex = this.selectedIndex();if ( selectedIndex > -1 ) {var childPanels = this.getPanels();if (childPanels[selectedIndex + 1]) {this.onSelected(childPanels[selectedIndex + 1]);}}
+this._checkButtons();},_onPreviousButtonClick: function() {var selectedIndex = this.selectedIndex();if ( selectedIndex > -1 ) {var childPanels = this.getPanels();if (childPanels[selectedIndex - 1]) {this.onSelected(childPanels[selectedIndex - 1]);}}
+this._checkButtons();},hasNextPanel: function() {var selectedIndex = this.selectedIndex();return (selectedIndex < (this.getPanels().length - 1));},hasPreviousPanel: function() {var selectedIndex = this.selectedIndex();return (selectedIndex > 0);},done: function() {this.selected.done();}});dojo.widget.defineWidget(
+"dojo.widget.WizardPane",dojo.widget.ContentPane,{canGoBack: true,passFunction: "",doneFunction: "",postMixInProperties: function(args, frag) {if (this.passFunction) {this.passFunction = dj_global[this.passFunction];}
+if (this.doneFunction) {this.doneFunction = dj_global[this.doneFunction];}
+dojo.widget.WizardPane.superclass.postMixInProperties.apply(this, arguments);},_checkPass: function() {if (this.passFunction && dojo.lang.isFunction(this.passFunction)) {var failMessage = this.passFunction();if (failMessage) {alert(failMessage);return false;}}
+return true;},done: function() {if (this.doneFunction && dojo.lang.isFunction(this.doneFunction)) {this.doneFunction();}}
+});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Wizard.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/YahooMap.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/YahooMap.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/YahooMap.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/YahooMap.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,21 @@
+
+dojo.provide("dojo.widget.YahooMap");dojo.require("dojo.event.*");dojo.require("dojo.math");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");(function(){var yappid = djConfig["yAppId"]||djConfig["yahooAppId"]||"dojotoolkit";if(!dojo.hostenv.post_load_){if(yappid == "dojotoolkit"){dojo.debug("please provide a unique Yahoo App ID in djConfig.yahooAppId when using the map widget");}
+var tag = "<scr"+"ipt src='http://api.maps.yahoo.com/ajaxymap?v=3.0&appid="+yappid+"'></scri"+"pt>";if(!dj_global["YMap"]){document.write(tag);}}else{dojo.debug("cannot initialize map system after the page has been loaded! Please either manually include the script block provided by Yahoo in your page or require() the YahooMap widget before onload has fired");}})();dojo.widget.defineWidget(
+"dojo.widget.YahooMap",dojo.widget.HtmlWidget,function(){this.map=null;this.datasrc="";this.data=[];this.width=0;this.height=0;this.controls=["zoomlong","maptype","pan"];},{isContainer: false,templatePath:null,templateCssPath:null,findCenter:function(aPts){var start=new YGeoPoint(37,-90);if(aPts.length==0) return start;var minLat,maxLat, minLon, maxLon, cLat, cLon;minLat=maxLat=aPts[0].Lat;minLon=maxLon=aPts[0].Lon;for(var i=0; i<aPts.length; i++){minLat=Math.min(minLat,aPts[i].Lat);maxLat=Math.max(maxLat,aPts[i].Lat);minLon=Math.min(minLon,aPts[i].Lon);maxLon=Math.max(maxLon,aPts[i].Lon);}
+cLat=dojo.math.round((minLat+maxLat)/2,6);cLon=dojo.math.round((minLon+maxLon)/2,6);return new YGeoPoint(cLat,cLon);},setControls:function(){var methodmap={maptype:"addTypeControl",pan:"addPanControl",zoomlong:"addZoomLong",zoomshort:"addZoomShort"
+}
+var c=this.controls;for(var i=0; i<c.length; i++){var controlMethod=methodmap[c[i].toLowerCase()];if(this.map[controlMethod]){this.map[controlMethod]();}}
+},parse:function(table){this.data=[];var h=table.getElementsByTagName("thead")[0];if(!h){return;}
+var a=[];var cols=h.getElementsByTagName("td");if(cols.length==0){cols=h.getElementsByTagName("th");}
+for(var i=0; i<cols.length; i++){var c=cols[i].innerHTML.toLowerCase();if(c=="long") c="lng";a.push(c);}
+var b=table.getElementsByTagName("tbody")[0];if(!b){return;}
+for(var i=0; i<b.childNodes.length; i++){if(!(b.childNodes[i].nodeName&&b.childNodes[i].nodeName.toLowerCase()=="tr")){continue;}
+var cells=b.childNodes[i].getElementsByTagName("td");var o={};for(var j=0; j<a.length; j++){var col=a[j];if(col=="lat"||col=="lng"){o[col]=parseFloat(cells[j].innerHTML);}else{o[col]=cells[j].innerHTML;}}
+this.data.push(o);}},render:function(){var pts=[];var d=this.data;for(var i=0; i<d.length; i++){var pt=new YGeoPoint(d[i].lat, d[i].lng);pts.push(pt);var icon=d[i].icon||null;if(icon){icon=new YImage(icon);}
+var m=new YMarker(pt,icon);if(d[i].description){m.addAutoExpand("<div>"+d[i].description+"</div>");}
+this.map.addOverlay(m);}
+var c=this.findCenter(pts);var z=this.map.getZoomLevel(pts);this.map.drawZoomAndCenter(c,z);},initialize:function(args, frag){if(!YMap || !YGeoPoint){dojo.raise("dojo.widget.YahooMap: The Yahoo Map script must be included in order to use this widget.");}
+if(this.datasrc){this.parse(dojo.byId(this.datasrc));}
+else if(this.domNode.getElementsByTagName("table")[0]){this.parse(this.domNode.getElementsByTagName("table")[0]);}},postCreate:function(){while(this.domNode.childNodes.length>0){this.domNode.removeChild(this.domNode.childNodes[0]);}
+if(this.width>0&&this.height>0){this.map=new YMap(this.domNode, YAHOO_MAP_REG, new YSize(this.width, this.height));}else{this.map=new YMap(this.domNode);}
+this.setControls();this.render();}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/YahooMap.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/__package__.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/__package__.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,3 @@
+
+dojo.kwCompoundRequire({common: ["dojo.xml.Parse","dojo.widget.Widget","dojo.widget.Parse","dojo.widget.Manager"],browser: ["dojo.widget.DomWidget","dojo.widget.HtmlWidget"],dashboard: ["dojo.widget.DomWidget","dojo.widget.HtmlWidget"],svg:  ["dojo.widget.SvgWidget"],rhino:  ["dojo.widget.SwtWidget"]
+});dojo.provide("dojo.widget.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoContainer.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoContainer.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.widget.demoEngine.DemoContainer");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.demoEngine.DemoPane");dojo.require("dojo.widget.demoEngine.SourcePane");dojo.require("dojo.widget.TabContainer");dojo.widget.defineWidget("my.widget.demoEngine.DemoContainer",dojo.widget.HtmlWidget,{templatePath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoContainer.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoContainer.css"),postCreate: function() {dojo.html.addClass(this.domNode,this.domNodeClass);dojo.html.addClass(this.tabNode, this.tabClass);dojo.html.addClass(this.returnImageNode, this.returnClass);this.returnImageNode.src=this.returnImage;this.tabContainer = dojo.widget.createWidget("TabContainer",{},this.tabNode);this.demoTab = dojo.widget.createWidget("DemoPane",{});this.tabContainer.addChild(this.demoTab);this.sourceTab= dojo.widget.createWidget("SourcePane",{});thi
 s.tabContainer.addChild(this.sourceTab);dojo.html.setOpacity(this.domNode,0);dojo.html.hide(this.domNode);},loadDemo: function(url) {this.demoTab.setHref(url);this.sourceTab.setHref(url);this.showDemo();},setName: function(name) {dojo.html.removeChildren(this.demoNameNode);this.demoNameNode.appendChild(document.createTextNode(name));},setSummary: function(summary) {dojo.html.removeChildren(this.summaryNode);this.summaryNode.appendChild(document.createTextNode(summary));},showSource: function() {dojo.html.removeClass(this.demoButtonNode,this.selectedButtonClass);dojo.html.addClass(this.sourceButtonNode,this.selectedButtonClass);this.tabContainer.selectTab(this.sourceTab);},showDemo: function() {dojo.html.removeClass(this.sourceButtonNode,this.selectedButtonClass);dojo.html.addClass(this.demoButtonNode,this.selectedButtonClass);this.tabContainer.selectTab(this.demoTab);},returnToDemos: function() {dojo.debug("Return To Demos");},show: function() {dojo.html.setOpacity(this.domN
 ode,1);dojo.html.show(this.domNode);this.tabContainer.checkSize();}},"",function() {dojo.debug("DemoPane Init");this.domNodeClass="demoContainer";this.tabContainer="";this.sourceTab="";this.demoTab="";this.headerNode="";this.returnNode="";this.returnImageNode="";this.returnImage="images/dojoDemos.gif";this.returnClass="return";this.summaryNode="";this.demoNameNode="";this.tabControlNode="";this.tabNode="";this.tabClass = "demoContainerTabs";this.sourceButtonNode="";this.demoButtonNode="";this.selectedButtonClass="selected";}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoContainer.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoItem.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoItem.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoItem.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoItem.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.widget.demoEngine.DemoItem");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "DemoEngine", null, "ROOT");dojo.widget.defineWidget("my.widget.demoEngine.DemoItem",dojo.widget.HtmlWidget,{templatePath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoItem.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoItem.css"),postCreate: function() {dojo.html.addClass(this.domNode,this.domNodeClass);dojo.html.addClass(this.summaryBoxNode, this.summaryBoxClass);dojo.html.addClass(this.screenshotTdNode, this.screenshotTdClass);dojo.html.addClass(this.summaryContainerNode, this.summaryContainerClass);dojo.html.addClass(this.summaryNode, this.summaryClass);dojo.html.addClass(this.viewDemoLinkNode, this.viewDemoLinkClass);this.nameNode.appendChild(document.createTextNode(this.name));this.descriptionNode.appendChild(document.createTextNod
 e(this.description));this.thumbnailImageNode.src = this.thumbnail;this.thumbnailImageNode.name=this.name;this.viewDemoImageNode.src = this.viewDemoImage;this.viewDemoImageNode.name=this.name;},onSelectDemo: function() {}},"",function() {this.demo = "";this.domNodeClass="demoItemWrapper";this.summaryBoxNode="";this.summaryBoxClass="demoItemSummaryBox";this.nameNode="";this.thumbnailImageNode="";this.viewDemoImageNode="";this.screenshotTdNode="";this.screenshotTdClass="demoItemScreenshot";this.summaryContainerNode="";this.summaryContainerClass="demoItemSummaryContainer";this.summaryNode="";this.summaryClass="demoItemSummary";this.viewDemoLinkNode="";this.viewDemoLinkClass="demoItemView";this.descriptionNode="";this.name="Some Demo";var bundle = dojo.i18n.getLocalization("dojo.widget", "DemoEngine");this.description=bundle.itemDescription;this.thumbnail="images/test_thumb.gif";this.viewDemoImage="images/viewDemo.png";}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoItem.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoNavigator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoNavigator.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoNavigator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoNavigator.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,11 @@
+
+dojo.provide("dojo.widget.demoEngine.DemoNavigator");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Button");dojo.require("dojo.widget.demoEngine.DemoItem");dojo.require("dojo.io.*");dojo.require("dojo.lfx.*");dojo.require("dojo.lang.common");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "DemoEngine", null, "ROOT");dojo.widget.defineWidget("my.widget.demoEngine.DemoNavigator",dojo.widget.HtmlWidget,{templatePath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoNavigator.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoNavigator.css"),postMixInProperties: function(){dojo.widget.HtmlWidget.superclass.postMixInProperties.apply(this, arguments);this.messages = dojo.i18n.getLocalization("dojo.widget", "DemoEngine", this.lang);},postCreate: function() {dojo.html.addClass(this.domNode,this.domNodeClass);dojo.html.addClass(this.demoListWrapperNode,this.demoListWr
 apperClass);dojo.html.addClass(this.demoListContainerNode,this.demoListContainerClass);if (dojo.render.html.ie) {dojo.debug("render ie");dojo.html.hide(this.demoListWrapperNode);} else {dojo.debug("render non-ie");dojo.lfx.html.fadeHide(this.demoListWrapperNode, 0).play();}
+this.getRegistry(this.demoRegistryUrl);this.demoContainer = dojo.widget.createWidget("DemoContainer",{returnImage: this.returnImage},this.demoNode);dojo.event.connect(this.demoContainer,"returnToDemos", this, "returnToDemos");this.demoContainer.hide();},returnToDemos: function() {this.demoContainer.hide();if (dojo.render.html.ie) {dojo.debug("render ie");dojo.html.show(this.navigationContainer) ;} else {dojo.debug("render non-ie");dojo.lfx.html.fadeShow(this.navigationContainer,250).play();}
+dojo.lang.forEach(this.categoriesChildren, dojo.lang.hitch(this, function(child){child.checkSize();}));dojo.lang.forEach(this.demoListChildren, dojo.lang.hitch(this, function(child){child.checkSize();}));},show: function() {dojo.html.show(this.domNode);dojo.html.setOpacity(this.domNode,1);dojo.html.setOpacity(this.navigationContainer,1);dojo.lang.forEach(this.categoriesChildren, dojo.lang.hitch(this, function(child){child.checkSize();}));dojo.lang.forEach(this.demoListChildren, dojo.lang.hitch(this, function(child){child.checkSize();}));},getRegistry: function(url) {dojo.io.bind({url: url,load: dojo.lang.hitch(this,this.processRegistry),mimetype: "text/json"
+});},processRegistry: function(type,registry,e) {dojo.debug("Processing Registry");this.registry = registry;dojo.lang.forEach(this.registry.navigation, dojo.lang.hitch(this,this.addCategory));},addCategory: function(category) {var newCat = dojo.widget.createWidget("Button",{caption: category.name});if(!dojo.lang.isObject(this.registry.categories)) {this.registry.categories=function(){};}
+this.registry.categories[category.name] = category;this.categoriesChildren.push(newCat);this.categoriesButtonsNode.appendChild(newCat.domNode);newCat.domNode.categoryName = category.name;dojo.event.connect(newCat,"onClick", this, "onSelectCategory");},addDemo: function(demoName) {var demo = this.registry.definitions[demoName];if (dojo.render.html.ie) {dojo.html.show(this.demoListWrapperNode)
+} else {dojo.lfx.html.fadeShow(this.demoListWrapperNode, 250).play();}
+var newDemo = dojo.widget.createWidget("DemoItem",{viewDemoImage: this.viewDemoImage, name: demoName, description: demo.description, thumbnail: demo.thumbnail});this.demoListChildren.push(newDemo);this.demoListContainerNode.appendChild(newDemo.domNode);dojo.event.connect(newDemo,"onSelectDemo",this,"onSelectDemo");},onSelectCategory: function(e) {catName = e.currentTarget.categoryName;dojo.debug("Selected Category: " + catName);dojo.lang.forEach(this.demoListChildren, function(child) {child.destroy();});this.demoListChildren=[];dojo.lang.forEach(this.registry.categories[catName].demos, dojo.lang.hitch(this,function(demoName){this.addDemo(demoName);}));},onSelectDemo: function(e) {dojo.debug("Demo Selected: " + e.target.name);if (dojo.render.html.ie) {dojo.debug("render ie");dojo.html.hide(this.navigationContainer) ;this.demoContainer.show();this.demoContainer.showDemo();} else {dojo.debug("render non-ie");dojo.lfx.html.fadeHide(this.navigationContainer,250,null,dojo.lang.hit
 ch(this, function() {this.demoContainer.show();this.demoContainer.showDemo();})).play();}
+if(this.registry.definitions[e.target.name].url.indexOf("http://")>-1){window.open(this.registry.definitions[e.target.name].url, e.target.name);} else {this.demoContainer.loadDemo(this.registry.definitions[e.target.name].url);this.demoContainer.setName(e.target.name);this.demoContainer.setSummary(this.registry.definitions[e.target.name].description);}}
+},"",function() {this.demoRegistryUrl="demoRegistry.json";this.registry=function(){};this.categoriesNode="";this.categoriesButtonsNode="";this.navigationContainer="";this.domNodeClass="demoNavigator";this.demoNode="";this.demoContainer="";this.demoListWrapperNode="";this.demoListWrapperClass="demoNavigatorListWrapper";this.demoListContainerClass="demoNavigatorListContainer";this.returnImage="images/dojoDemos.gif";this.viewDemoImage="images/viewDemo.png";this.demoListChildren = [];this.categoriesChildren = [];}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoNavigator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoPane.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoPane.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoPane.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoPane.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.widget.demoEngine.DemoPane");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.widget.defineWidget("my.widget.demoEngine.DemoPane",dojo.widget.HtmlWidget,{templatePath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoPane.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/DemoPane.css"),postCreate: function() {dojo.html.addClass(this.domNode,this.domNodeClass);dojo.debug("PostCreate");this._launchDemo();},_launchDemo: function() {dojo.debug("Launching Demo");dojo.debug(this.demoNode);this.demoNode.src=this.href;},setHref: function(url) {this.href = url;this._launchDemo();}},"",function() {dojo.debug("DemoPane Init");this.domNodeClass="demoPane";this.demoNode = "";this.href = "";}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/DemoPane.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/SourcePane.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/SourcePane.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/SourcePane.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/SourcePane.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.widget.demoEngine.SourcePane");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.io.*");dojo.widget.defineWidget("my.widget.demoEngine.SourcePane",dojo.widget.HtmlWidget,{templatePath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/SourcePane.html"),templateCssPath: dojo.uri.moduleUri("dojo", "widget/demoEngine/templates/SourcePane.css"),postCreate: function() {dojo.html.addClass(this.domNode,this.domNodeClass);dojo.debug("PostCreate");},getSource: function() {if (this.href) {dojo.io.bind({url: this.href,load: dojo.lang.hitch(this, "fillInSource"),mimetype: "text/plain"
+});}},fillInSource: function(type, source, e) {this.sourceNode.value=source;},setHref: function(url) {this.href = url;this.getSource();}},"",function() {dojo.debug("SourcePane Init");this.domNodeClass="sourcePane";this.sourceNode = "";this.href = "";}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/SourcePane.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/__package__.js?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/__package__.js Sun Jan 21 10:25:59 2007
@@ -0,0 +1,5 @@
+
+dojo.kwCompoundRequire({browser: [
+"dojo.widget.demoEngine.DemoItem","dojo.widget.demoEngine.DemoNavigator","dojo.widget.demoEngine.DemoPane","dojo.widget.demoEngine.SourcePane","dojo.widget.demoEngine.DemoContainer"
+]
+});dojo.provide("dojo.widget.demoEngine.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/templates/DemoContainer.css
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/templates/DemoContainer.css?view=auto&rev=498423
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/templates/DemoContainer.css (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/templates/DemoContainer.css Sun Jan 21 10:25:59 2007
@@ -0,0 +1,8 @@
+.demoContainer{width: 100%;height: 100%;padding: 0px;margin: 0px;}
+.demoContainer .return {cursor: pointer;}
+.demoContainer span {margin-right: 10px;cursor: pointer;}
+.demoContainer .selected {border-bottom: 5px solid #95bfff;}
+.demoContainer table {background: #f5f5f5;width: 100%;height: 100%;}
+.demoContainerTabs {width: 100%;height: 400px;}
+.demoContainerTabs .dojoTabLabels-top {display: none;}
+.demoContainerTabs .dojoTabPaneWrapper {border: 0px;}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/demoEngine/templates/DemoContainer.css
------------------------------------------------------------------------------
    svn:eol-style = native