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 2006/12/09 23:54:36 UTC

svn commit: r485080 [25/32] - in /tapestry/tapestry4/trunk: ./ tapestry-framework/src/java/org/apache/tapestry/form/ tapestry-framework/src/java/org/apache/tapestry/multipart/ tapestry-framework/src/java/org/apache/tapestry/services/ tapestry-framework...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Spinner.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Spinner.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Spinner.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Spinner.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,87 @@
+
+dojo.provide("dojo.widget.Spinner");dojo.require("dojo.io.*");dojo.require("dojo.lfx.*");dojo.require("dojo.html.*");dojo.require("dojo.html.layout");dojo.require("dojo.string");dojo.require("dojo.widget.*");dojo.require("dojo.widget.IntegerTextbox");dojo.require("dojo.widget.RealNumberTextbox");dojo.require("dojo.widget.DateTextbox");dojo.require("dojo.experimental");dojo.declare(
+"dojo.widget.Spinner",null,{_typamaticTimer: null,_typamaticFunction: null,_currentTimeout: this.defaultTimeout,_eventCount: 0,defaultTimeout: 500,timeoutChangeRate: 0.90,templatePath: dojo.uri.dojoUri("src/widget/templates/Spinner.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/Spinner.css"),incrementSrc: dojo.uri.dojoUri("src/widget/templates/images/spinnerIncrement.gif"),decrementSrc: dojo.uri.dojoUri("src/widget/templates/images/spinnerDecrement.gif"),_handleKeyEvents: function( evt){if(!evt.key){ return; }
+if(!evt.ctrlKey && !evt.altKey){switch(evt.key){case evt.KEY_DOWN_ARROW:
+dojo.event.browser.stopEvent(evt);this._downArrowPressed(evt);return;case evt.KEY_UP_ARROW:
+dojo.event.browser.stopEvent(evt);this._upArrowPressed(evt);return;}}
+this._eventCount++;},_onSpinnerKeyUp: function( evt){this._arrowReleased(evt);this.onkeyup(evt);},_resize: function(){var inputSize = dojo.html.getBorderBox(this.textbox);this.buttonSize = { width: inputSize.height / 2, height: inputSize.height / 2 };if(this.upArrowNode){dojo.html.setMarginBox(this.upArrowNode, this.buttonSize);dojo.html.setMarginBox(this.downArrowNode, this.buttonSize);}},_pressButton: function( node){node.style.borderWidth = "1px 0px 0px 1px";node.style.borderStyle = "inset";},_releaseButton: function( node){node.style.borderWidth = "0px 1px 1px 0px";node.style.borderStyle = "outset";},_arrowPressed: function( evt,  direction){var nodePressed = (direction == -1) ? this.downArrowNode : this.upArrowNode;var nodeReleased = (direction == +1) ? this.downArrowNode : this.upArrowNode;if(typeof evt != "number"){if(this._typamaticTimer != null){if(this._typamaticNode == nodePressed){return;}
+dojo.lang.clearTimeout(this._typamaticTimer);}
+this._releaseButton(nodeReleased);this._eventCount++;this._typamaticTimer = null;this._currentTimeout = this.defaultTimeout;}else if (evt != this._eventCount){this._releaseButton(nodePressed);return;}
+this._pressButton(nodePressed);this._setCursorX(this.adjustValue(direction,this._getCursorX()));this._typamaticNode = nodePressed;this._typamaticTimer = dojo.lang.setTimeout(this, "_arrowPressed", this._currentTimeout, this._eventCount, direction);this._currentTimeout = Math.round(this._currentTimeout * this.timeoutChangeRate);},_downArrowPressed: function( evt){return this._arrowPressed(evt,-1);},_downArrowDoubleClicked: function( evt){var rc = this._downArrowPressed(evt);dojo.lang.setTimeout(this, "_arrowReleased", 50, null);return rc;},_upArrowPressed: function( evt){return this._arrowPressed(evt,+1);},_upArrowDoubleClicked: function( evt){var rc = this._upArrowPressed(evt);dojo.lang.setTimeout(this, "_arrowReleased", 50, null);return rc;},_arrowReleased: function( evt){this.textbox.focus();if(evt != null && typeof evt == "object" && evt.keyCode && evt.keyCode != null){var keyCode = evt.keyCode;var k = dojo.event.browser.keys;switch(keyCode){case k.KEY_DOWN_ARROW:
+case k.KEY_UP_ARROW:
+dojo.event.browser.stopEvent(evt);break;}}
+this._releaseButton(this.upArrowNode);this._releaseButton(this.downArrowNode);this._eventCount++;if(this._typamaticTimer != null){dojo.lang.clearTimeout(this._typamaticTimer);}
+this._typamaticTimer = null;this._currentTimeout = this.defaultTimeout;},_mouseWheeled: function( evt){var scrollAmount = 0;if(typeof evt.wheelDelta == 'number'){scrollAmount = evt.wheelDelta;}else if (typeof evt.detail == 'number'){scrollAmount = -evt.detail;}
+if(scrollAmount > 0){this._upArrowPressed(evt);this._arrowReleased(evt);}else if (scrollAmount < 0){this._downArrowPressed(evt);this._arrowReleased(evt);}},_discardEvent: function( evt){dojo.event.browser.stopEvent(evt);},_getCursorX: function(){var x = -1;try{this.textbox.focus();if (typeof this.textbox.selectionEnd == "number"){x = this.textbox.selectionEnd;}else if (document.selection && document.selection.createRange){var range = document.selection.createRange().duplicate();if(range.parentElement() == this.textbox){range.moveStart('textedit', -1);x = range.text.length;}}}catch(e){  }
+return x;},_setCursorX: function( x){try{this.textbox.focus();if(!x){ x = 0; }
+if(typeof this.textbox.selectionEnd == "number"){this.textbox.selectionEnd = x;}else if(this.textbox.createTextRange){var range = this.textbox.createTextRange();range.collapse(true);range.moveEnd('character', x);range.moveStart('character', x);range.select();}}catch(e){  }},_spinnerPostMixInProperties: function( args,  frag){var inputNode = this.getFragNodeRef(frag);var inputSize = dojo.html.getBorderBox(inputNode);this.buttonSize = { width: inputSize.height / 2 - 1, height: inputSize.height / 2 - 1};},_spinnerPostCreate: function( args,  frag){if(this.textbox.addEventListener){this.textbox.addEventListener('DOMMouseScroll', dojo.lang.hitch(this, "_mouseWheeled"), false);}else{dojo.event.connect(this.textbox, "onmousewheel", this, "_mouseWheeled");}}}
+);dojo.widget.defineWidget(
+"dojo.widget.IntegerSpinner",[dojo.widget.IntegerTextbox, dojo.widget.Spinner],{delta: "1",postMixInProperties: function( args,  frag){dojo.widget.IntegerSpinner.superclass.postMixInProperties.apply(this, arguments);this._spinnerPostMixInProperties(args, frag);},postCreate: function( args,  frag){dojo.widget.IntegerSpinner.superclass.postCreate.apply(this, arguments);this._spinnerPostCreate(args, frag);},adjustValue: function( direction,  x){var val = this.getValue().replace(/[^\-+\d]/g, "");if(val.length == 0){ return; }
+var num = Math.min(Math.max((parseInt(val)+(parseInt(this.delta) * direction)), (this.flags.min?this.flags.min:-Infinity)), (this.flags.max?this.flags.max:+Infinity));val = num.toString();if(num >= 0){val = ((this.flags.signed == true)?'+':' ')+val;}
+if(this.flags.separator.length > 0){for (var i=val.length-3; i > 1; i-=3){val = val.substr(0,i)+this.flags.separator+val.substr(i);}}
+if(val.substr(0,1) == ' '){ val = val.substr(1); }
+this.setValue(val);return val.length;}});dojo.widget.defineWidget(
+"dojo.widget.RealNumberSpinner",[dojo.widget.RealNumberTextbox, dojo.widget.Spinner],function(){ dojo.experimental("dojo.widget.RealNumberSpinner"); },{delta: "1e1",postMixInProperties: function( args,  frag){dojo.widget.RealNumberSpinner.superclass.postMixInProperties.apply(this, arguments);this._spinnerPostMixInProperties(args, frag);},postCreate: function( args,  frag){dojo.widget.RealNumberSpinner.superclass.postCreate.apply(this, arguments);this._spinnerPostCreate(args, frag);},adjustValue: function( direction,  x){var val = this.getValue().replace(/[^\-+\.eE\d]/g, "");if(!val.length){ return; }
+var num = parseFloat(val);if(isNaN(num)){ return; }
+var delta = this.delta.split(/[eE]/);if(!delta.length){delta = [1, 1];}else{delta[0] = parseFloat(delta[0].replace(/[^\-+\.\d]/g, ""));if(isNaN(delta[0])){ delta[0] = 1; }
+if(delta.length > 1){delta[1] = parseInt(delta[1]);}
+if(isNaN(delta[1])){ delta[1] = 1; }}
+val = this.getValue().split(/[eE]/);if(!val.length){ return; }
+var numBase = parseFloat(val[0].replace(/[^\-+\.\d]/g, ""));if(val.length == 1){var numExp = 0;}else{var numExp = parseInt(val[1].replace(/[^\-+\d]/g, ""));}
+if(x <= val[0].length){x = 0;numBase += delta[0] * direction;}else{x = Number.MAX_VALUE;numExp += delta[1] * direction;if(this.flags.eSigned == false && numExp < 0){numExp = 0;}}
+num = Math.min(Math.max((numBase * Math.pow(10,numExp)), (this.flags.min?this.flags.min:-Infinity)), (this.flags.max?this.flags.max:+Infinity));if((this.flags.exponent == true || (this.flags.exponent != false && x != 0)) && num.toExponential){if (isNaN(this.flags.places) || this.flags.places == Infinity){val = num.toExponential();}else{val = num.toExponential(this.flags.places);}}else if(num.toFixed && num.toPrecision){if(isNaN(this.flags.places) || this.flags.places == Infinity){val = num.toPrecision((1/3).toString().length-1);}else{val = num.toFixed(this.flags.places);}}else{val = num.toString();}
+if(num >= 0){if(this.flags.signed == true){val = '+' + val;}}
+val = val.split(/[eE]/);if(this.flags.separator.length > 0){if(num >= 0 && val[0].substr(0,1) != '+'){val[0] = ' ' + val[0];}
+var i = val[0].lastIndexOf('.');if(i >= 0){i -= 3;}else{i = val[0].length-3;}
+for (; i > 1; i-=3){val[0] = val[0].substr(0,i)+this.flags.separator+val[0].substr(i);}
+if(val[0].substr(0,1) == ' '){ val[0] = val[0].substr(1); }}
+if(val.length > 1){if((this.flags.eSigned == true)&&(val[1].substr(0,1) != '+')){val[1] = '+' + val[1];}else if((!this.flags.eSigned)&&(val[1].substr(0,1) == '+')){val[1] = val[1].substr(1);}else if((!this.flags.eSigned)&&(val[1].substr(0,1) == '-')&&(num.toFixed && num.toPrecision)){if(isNaN(this.flags.places)){val[0] = num.toPrecision((1/3).toString().length-1);}else{val[0] = num.toFixed(this.flags.places).toString();}
+val[1] = "0";}
+val[0] += 'e' + val[1];}
+this.setValue(val[0]);if(x > val[0].length){ x = val[0].length; }
+return x;}});dojo.widget.defineWidget(
+"dojo.widget.TimeSpinner",[dojo.widget.TimeTextbox, dojo.widget.Spinner],function(){ dojo.experimental("dojo.widget.TimeSpinner"); },{postMixInProperties: function( args,  frag){dojo.widget.TimeSpinner.superclass.postMixInProperties.apply(this, arguments);this._spinnerPostMixInProperties(args, frag);},postCreate: function( args,  frag){dojo.widget.TimeSpinner.superclass.postCreate.apply(this, arguments);this._spinnerPostCreate(args, frag);},adjustValue: function( direction,  x){var val = this.getValue();var format = (this.flags.format && this.flags.format.search(/[Hhmst]/) >= 0) ? this.flags.format : "hh:mm:ss t";if(direction == 0 || !val.length || !this.isValid()){ return; }
+if (!this.flags.amSymbol){this.flags.amSymbol = "AM";}
+if (!this.flags.pmSymbol){this.flags.pmSymbol = "PM";}
+var re = dojo.regexp.time(this.flags);var qualifiers = format.replace(/H/g,"h").replace(/[^hmst]/g,"").replace(/([hmst])\1/g,"$1");var hourPos = qualifiers.indexOf('h') + 1;var minPos = qualifiers.indexOf('m') + 1;var secPos = qualifiers.indexOf('s') + 1;var ampmPos = qualifiers.indexOf('t') + 1;var cursorFormat = format;var ampm = "";if (ampmPos > 0){ampm = val.replace(new RegExp(re),"$"+ampmPos);cursorFormat = cursorFormat.replace(/t+/, ampm.replace(/./g,"t"));}
+var hour = 0;var deltaHour = 1;if (hourPos > 0){hour = val.replace(new RegExp(re),"$"+hourPos);if (dojo.lang.isString(this.delta)){deltaHour = this.delta.replace(new RegExp(re),"$"+hourPos);}
+if (isNaN(deltaHour)){deltaHour = 1;} else {deltaHour = parseInt(deltaHour);}
+if (hour.length == 2){cursorFormat = cursorFormat.replace(/([Hh])+/, "$1$1");} else {cursorFormat = cursorFormat.replace(/([Hh])+/, "$1");}
+if (isNaN(hour)){hour = 0;} else {hour = parseInt(hour.replace(/^0(\d)/,"$1"));}}
+var min = 0;var deltaMin = 1;if (minPos > 0){min = val.replace(new RegExp(re),"$"+minPos);if (dojo.lang.isString(this.delta)){deltaMin = this.delta.replace(new RegExp(re),"$"+minPos);}
+if (isNaN(deltaMin)){deltaMin = 1;} else {deltaMin = parseInt(deltaMin);}
+cursorFormat = cursorFormat.replace(/m+/, min.replace(/./g,"m"));if (isNaN(min)){min = 0;} else {min = parseInt(min.replace(/^0(\d)/,"$1"));}}
+var sec = 0;var deltaSec = 1;if (secPos > 0){sec = val.replace(new RegExp(re),"$"+secPos);if (dojo.lang.isString(this.delta)){deltaSec = this.delta.replace(new RegExp(re),"$"+secPos);}
+if (isNaN(deltaSec)){deltaSec = 1;} else {deltaSec = parseInt(deltaSec);}
+cursorFormat = cursorFormat.replace(/s+/, sec.replace(/./g,"s"));if (isNaN(sec)){sec = 0;} else {sec = parseInt(sec.replace(/^0(\d)/,"$1"));}}
+if (isNaN(x) || x >= cursorFormat.length){x = cursorFormat.length-1;}
+var cursorToken = cursorFormat.charAt(x);switch(cursorToken){case 't':
+if (ampm == this.flags.amSymbol){ampm = this.flags.pmSymbol;}
+else if (ampm == this.flags.pmSymbol){ampm = this.flags.amSymbol;}
+break;default:
+if (hour >= 1 && hour < 12 && ampm == this.flags.pmSymbol){hour += 12;}
+if (hour == 12 && ampm == this.flags.amSymbol){hour = 0;}
+switch(cursorToken){case 's':
+sec += deltaSec * direction;while (sec < 0){min--;sec += 60;}
+while (sec >= 60){min++;sec -= 60;}
+case 'm':
+if (cursorToken == 'm'){min += deltaMin * direction;}
+while (min < 0){hour--;min += 60;}
+while (min >= 60){hour++;min -= 60;}
+case 'h':
+case 'H':
+if (cursorToken == 'h' || cursorToken == 'H'){hour += deltaHour * direction;}
+while (hour < 0){hour += 24;}
+while (hour >= 24){hour -= 24;}
+break;default:
+return;}
+if (hour >= 12){ampm = this.flags.pmSymbol;if (format.indexOf('h') >= 0 && hour >= 13){hour -= 12;}} else {ampm = this.flags.amSymbol;if (format.indexOf('h') >= 0 && hour == 0){hour = 12;}}}
+cursorFormat = format;if (hour >= 0 && hour < 10 && format.search(/[hH]{2}/) >= 0){hour = "0" + hour.toString();}
+if (hour >= 10 && cursorFormat.search(/[hH]{2}/) < 0 ){cursorFormat = cursorFormat.replace(/(h|H)/, "$1$1");}
+if (min >= 0 && min < 10 && cursorFormat.search(/mm/) >= 0){min = "0" + min.toString();}
+if (min >= 10 && cursorFormat.search(/mm/) < 0 ){cursorFormat = cursorFormat.replace(/m/, "$1$1");}
+if (sec >= 0 && sec < 10 && cursorFormat.search(/ss/) >= 0){sec = "0" + sec.toString();}
+if (sec >= 10 && cursorFormat.search(/ss/) < 0 ){cursorFormat = cursorFormat.replace(/s/, "$1$1");}
+x = cursorFormat.indexOf(cursorToken);if (x == -1){x = format.length;}
+format = format.replace(/[hH]+/, hour);format = format.replace(/m+/, min);format = format.replace(/s+/, sec);format = format.replace(/t/, ampm);this.setValue(format);if(x > format.length){ x = format.length; }
+return x;}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SplitContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SplitContainer.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SplitContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SplitContainer.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,29 @@
+
+dojo.provide("dojo.widget.SplitContainer");dojo.require("dojo.widget.*");dojo.require("dojo.widget.ContentPane");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.html.style");dojo.require("dojo.html.layout");dojo.require("dojo.html.selection");dojo.require("dojo.io.cookie");dojo.widget.defineWidget(
+"dojo.widget.SplitContainer",dojo.widget.HtmlWidget,function(){this.sizers = [];},{isContainer: true,templateCssPath: dojo.uri.dojoUri("src/widget/templates/SplitContainer.css"),activeSizing: false,sizerWidth: 15,orientation: 'horizontal',persist: true,postMixInProperties: function(){dojo.widget.SplitContainer.superclass.postMixInProperties.apply(this, arguments);this.isHorizontal = (this.orientation == 'horizontal');},fillInTemplate: function(){dojo.widget.SplitContainer.superclass.fillInTemplate.apply(this, arguments);dojo.html.addClass(this.domNode, "dojoSplitContainer");if (dojo.render.html.moz) {this.domNode.style.overflow = '-moz-scrollbars-none';}
+var content = dojo.html.getContentBox(this.domNode);this.paneWidth = content.width;this.paneHeight = content.height;},onResized: function(e){var content = dojo.html.getContentBox(this.domNode);this.paneWidth = content.width;this.paneHeight = content.height;this._layoutPanels();},postCreate: function(args, fragment, parentComp){dojo.widget.SplitContainer.superclass.postCreate.apply(this, arguments);for(var i=0; i<this.children.length; i++){with(this.children[i].domNode.style){position = "absolute";}
+dojo.html.addClass(this.children[i].domNode,"dojoSplitPane");if(i == this.children.length-1){break;}
+this._addSizer();}
+if (typeof this.sizerWidth == "object") {try {this.sizerWidth = parseInt(this.sizerWidth.toString());} catch(e) { this.sizerWidth = 15; }}
+this.virtualSizer = document.createElement('div');this.virtualSizer.style.position = 'absolute';this.virtualSizer.style.display = 'none';this.virtualSizer.style.zIndex = 10;this.virtualSizer.className = this.isHorizontal ? 'dojoSplitContainerVirtualSizerH' : 'dojoSplitContainerVirtualSizerV';this.domNode.appendChild(this.virtualSizer);dojo.html.disableSelection(this.virtualSizer);if(this.persist){this._restoreState();}
+this.resizeSoon();},_injectChild: function(child) {with(child.domNode.style){position = "absolute";}
+dojo.html.addClass(child.domNode,"dojoSplitPane");},_addSizer: function() {var i = this.sizers.length;this.sizers[i] = document.createElement('div');this.sizers[i].style.position = 'absolute';this.sizers[i].className = this.isHorizontal ? 'dojoSplitContainerSizerH' : 'dojoSplitContainerSizerV';var self = this;var handler = (function(){ var sizer_i = i; return function(e){ self.beginSizing(e, sizer_i); }})();dojo.event.connect(this.sizers[i], "onmousedown", handler);this.domNode.appendChild(this.sizers[i]);dojo.html.disableSelection(this.sizers[i]);},removeChild: function(widget){if (this.sizers.length > 0) {for(var x=0; x<this.children.length; x++){if(this.children[x] === widget){var i = this.sizers.length - 1;this.domNode.removeChild(this.sizers[i]);this.sizers.length = i;break;}}}
+dojo.widget.SplitContainer.superclass.removeChild.call(this, widget, arguments);this.onResized();},addChild: function(widget){dojo.widget.SplitContainer.superclass.addChild.apply(this, arguments);this._injectChild(widget);if (this.children.length > 1) {this._addSizer();}
+this._layoutPanels();},_layoutPanels: function(){if (this.children.length == 0){ return; }
+var space = this.isHorizontal ? this.paneWidth : this.paneHeight;if (this.children.length > 1){space -= this.sizerWidth * (this.children.length - 1);}
+var out_of = 0;for(var i=0; i<this.children.length; i++){out_of += this.children[i].sizeShare;}
+var pix_per_unit = space / out_of;var total_size = 0;for(var i=0; i<this.children.length-1; i++){var size = Math.round(pix_per_unit * this.children[i].sizeShare);this.children[i].sizeActual = size;total_size += size;}
+this.children[this.children.length-1].sizeActual = space - total_size;this._checkSizes();var pos = 0;var size = this.children[0].sizeActual;this._movePanel(this.children[0], pos, size);this.children[0].position = pos;pos += size;for(var i=1; i<this.children.length; i++){this._moveSlider(this.sizers[i-1], pos, this.sizerWidth);this.sizers[i-1].position = pos;pos += this.sizerWidth;size = this.children[i].sizeActual;this._movePanel(this.children[i], pos, size);this.children[i].position = pos;pos += size;}},_movePanel: function( panel, pos, size){if (this.isHorizontal){panel.domNode.style.left = pos + 'px';panel.domNode.style.top = 0;panel.resizeTo(size, this.paneHeight);}else{panel.domNode.style.left = 0;panel.domNode.style.top = pos + 'px';panel.resizeTo(this.paneWidth, size);}},_moveSlider: function( slider, pos, size){if (this.isHorizontal){slider.style.left = pos + 'px';slider.style.top = 0;dojo.html.setMarginBox(slider, { width: size, height: this.paneHeight });}else{slid
 er.style.left = 0;slider.style.top = pos + 'px';dojo.html.setMarginBox(slider, { width: this.paneWidth, height: size });}},_growPane: function(growth, pane){if (growth > 0){if (pane.sizeActual > pane.sizeMin){if ((pane.sizeActual - pane.sizeMin) > growth){pane.sizeActual = pane.sizeActual - growth;growth = 0;}else{growth -= pane.sizeActual - pane.sizeMin;pane.sizeActual = pane.sizeMin;}}}
+return growth;},_checkSizes: function(){var total_min_size = 0;var total_size = 0;for(var i=0; i<this.children.length; i++){total_size += this.children[i].sizeActual;total_min_size += this.children[i].sizeMin;}
+if (total_min_size <= total_size){var growth = 0;for(var i=0; i<this.children.length; i++){if (this.children[i].sizeActual < this.children[i].sizeMin){growth += this.children[i].sizeMin - this.children[i].sizeActual;this.children[i].sizeActual = this.children[i].sizeMin;}}
+if (growth > 0){if (this.isDraggingLeft){for(var i=this.children.length-1; i>=0; i--){growth = this._growPane(growth, this.children[i]);}}else{for(var i=0; i<this.children.length; i++){growth = this._growPane(growth, this.children[i]);}}}}else{for(var i=0; i<this.children.length; i++){this.children[i].sizeActual = Math.round(total_size * (this.children[i].sizeMin / total_min_size));}}},beginSizing: function(e, i){this.paneBefore = this.children[i];this.paneAfter = this.children[i+1];this.isSizing = true;this.sizingSplitter = this.sizers[i];this.originPos = dojo.html.getAbsolutePosition(this.children[0].domNode, true, dojo.html.boxSizing.MARGIN_BOX);if (this.isHorizontal){var client = (e.layerX ? e.layerX : e.offsetX);var screen = e.pageX;this.originPos = this.originPos.x;}else{var client = (e.layerY ? e.layerY : e.offsetY);var screen = e.pageY;this.originPos = this.originPos.y;}
+this.startPoint = this.lastPoint = screen;this.screenToClientOffset = screen - client;this.dragOffset = this.lastPoint - this.paneBefore.sizeActual - this.originPos - this.paneBefore.position;if (!this.activeSizing){this._showSizingLine();}
+dojo.event.connect(document.documentElement, "onmousemove", this, "changeSizing");dojo.event.connect(document.documentElement, "onmouseup", this, "endSizing");dojo.event.browser.stopEvent(e);},changeSizing: function(e){this.lastPoint = this.isHorizontal ? e.pageX : e.pageY;if (this.activeSizing){this.movePoint();this._updateSize();}else{this.movePoint();this._moveSizingLine();}
+dojo.event.browser.stopEvent(e);},endSizing: function(e){if (!this.activeSizing){this._hideSizingLine();}
+this._updateSize();this.isSizing = false;dojo.event.disconnect(document.documentElement, "onmousemove", this, "changeSizing");dojo.event.disconnect(document.documentElement, "onmouseup", this, "endSizing");if(this.persist){this._saveState(this);}},movePoint: function(){var p = this.lastPoint - this.screenToClientOffset;var a = p - this.dragOffset;a = this.legaliseSplitPoint(a);p = a + this.dragOffset;this.lastPoint = p + this.screenToClientOffset;},legaliseSplitPoint: function(a){a += this.sizingSplitter.position;this.isDraggingLeft = (a > 0) ? true : false;if (!this.activeSizing){if (a < this.paneBefore.position + this.paneBefore.sizeMin){a = this.paneBefore.position + this.paneBefore.sizeMin;}
+if (a > this.paneAfter.position + (this.paneAfter.sizeActual - (this.sizerWidth + this.paneAfter.sizeMin))){a = this.paneAfter.position + (this.paneAfter.sizeActual - (this.sizerWidth + this.paneAfter.sizeMin));}}
+a -= this.sizingSplitter.position;this._checkSizes();return a;},_updateSize: function(){var pos = this.lastPoint - this.dragOffset - this.originPos;var start_region = this.paneBefore.position;var end_region   = this.paneAfter.position + this.paneAfter.sizeActual;this.paneBefore.sizeActual = pos - start_region;this.paneAfter.position    = pos + this.sizerWidth;this.paneAfter.sizeActual  = end_region - this.paneAfter.position;for(var i=0; i<this.children.length; i++){this.children[i].sizeShare = this.children[i].sizeActual;}
+this._layoutPanels();},_showSizingLine: function(){this._moveSizingLine();if (this.isHorizontal){dojo.html.setMarginBox(this.virtualSizer, { width: this.sizerWidth, height: this.paneHeight });}else{dojo.html.setMarginBox(this.virtualSizer, { width: this.paneWidth, height: this.sizerWidth });}
+this.virtualSizer.style.display = 'block';},_hideSizingLine: function(){this.virtualSizer.style.display = 'none';},_moveSizingLine: function(){var pos = this.lastPoint - this.startPoint + this.sizingSplitter.position;if (this.isHorizontal){this.virtualSizer.style.left = pos + 'px';}else{var pos = (this.lastPoint - this.startPoint) + this.sizingSplitter.position;this.virtualSizer.style.top = pos + 'px';}},_getCookieName: function(i) {return this.widgetId + "_" + i;},_restoreState: function () {for(var i=0; i<this.children.length; i++) {var cookieName = this._getCookieName(i);var cookieValue = dojo.io.cookie.getCookie(cookieName);if (cookieValue != null) {var pos = parseInt(cookieValue);if (typeof pos == "number") {this.children[i].sizeShare=pos;}}}},_saveState: function (){for(var i=0; i<this.children.length; i++) {var cookieName = this._getCookieName(i);dojo.io.cookie.setCookie(cookieName, this.children[i].sizeShare, null, null, null, null);}}});dojo.lang.extend(dojo.widget.
 Widget, {sizeMin: 10,sizeShare: 10});dojo.widget.defineWidget(
+"dojo.widget.SplitContainerPanel",dojo.widget.ContentPane,{}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgButton.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgButton.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgButton.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgButton.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,24 @@
+
+dojo.provide("dojo.widget.SvgButton");dojo.require("dojo.experimental");dojo.experimental("dojo.widget.SvgButton");dojo.widget.SvgButton = function(){dojo.widget.DomButton.call(this);dojo.widget.SvgWidget.call(this);this.onFoo = function(){ alert("bar"); }
+this.label = "huzzah!";this.setLabel = function(x, y, textSize, label, shape){var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape);var textString = "";switch(shape) {case "ellipse":
+textString = "<text x='"+ coords[6] + "' y='"+ coords[7] + "'>"+ label + "</text>";break;case "rectangle":
+textString = "";break;case "circle":
+textString = "";break;}
+return textString;}
+this.fillInTemplate = function(x, y, textSize, label, shape){this.textSize = textSize || 12;this.label = label;var textWidth = this.label.length*this.textSize ;}}
+dojo.inherits(dojo.widget.SvgButton, dojo.widget.DomButton);dojo.widget.SvgButton.prototype.shapeString = function(x, y, textSize, label, shape) {switch(shape) {case "ellipse":
+var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape)
+return "<ellipse cx='"+ coords[4]+"' cy='"+ coords[5]+"' rx='"+ coords[2]+"' ry='"+ coords[3]+"'/>";break;case "rect":
+return "";break;case "circle":
+return "";break;}}
+dojo.widget.SvgButton.prototype.coordinates = function(x, y, textSize, label, shape) {switch(shape) {case "ellipse":
+var buttonWidth = label.length*textSize;var buttonHeight = textSize*2.5
+var rx = buttonWidth/2;var ry = buttonHeight/2;var cx = rx + x;var cy = ry + y;var textX = cx - rx*textSize/25;var textY = cy*1.1;return [buttonWidth, buttonHeight, rx, ry, cx, cy, textX, textY];break;case "rectangle":
+return "";break;case "circle":
+return "";break;}}
+dojo.widget.SvgButton.prototype.labelString = function(x, y, textSize, label, shape){var textString = "";var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape);switch(shape) {case "ellipse":
+textString = "<text x='"+ coords[6] + "' y='"+ coords[7] + "'>"+ label + "</text>";break;case "rectangle":
+textString = "";break;case "circle":
+textString = "";break;}
+return textString;}
+dojo.widget.SvgButton.prototype.templateString = function(x, y, textSize, label, shape) {return "<g class='dojoButton' dojoAttachEvent='onClick; onMouseMove: onFoo;' dojoAttachPoint='labelNode'>"+ dojo.widgets.SVGButton.prototype.shapeString(x, y, textSize, label, shape) + dojo.widget.SVGButton.prototype.labelString(x, y, textSize, label, shape) + "</g>";}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgWidget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgWidget.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgWidget.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SvgWidget.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,12 @@
+
+dojo.require("dojo.widget.DomWidget");dojo.provide("dojo.widget.SvgWidget");dojo.provide("dojo.widget.SVGWidget");dojo.require("dojo.dom");dojo.require("dojo.experimental");dojo.experimental("dojo.widget.SvgWidget");dojo.widget.declare(
+"dojo.widget.SvgWidget",dojo.widget.DomWidget,{createNodesFromText: function(txt, wrap){return dojo.svg.createNodesFromText(txt, wrap);}});dojo.widget.SVGWidget = dojo.widget.SvgWidget;try{(function(){var tf = function(){var rw = new function(){dojo.widget.SvgWidget.call(this);this.buildRendering = function(){ return; }
+this.destroyRendering = function(){ return; }
+this.postInitialize = function(){ return; }
+this.widgetType = "SVGRootWidget";this.domNode = document.documentElement;}
+var wm = dojo.widget.manager;wm.root = rw;wm.add(rw);wm.getWidgetFromNode = function(node){var filter = function(x){if(x.domNode == node){return true;}}
+var widgets = [];while((node)&&(widgets.length < 1)){widgets = this.getWidgetsByFilter(filter);node = node.parentNode;}
+if(widgets.length > 0){return widgets[0];}else{return null;}}
+wm.getWidgetFromEvent = function(domEvt){return this.getWidgetFromNode(domEvt.target);}
+wm.getWidgetFromPrimitive = wm.getWidgetFromNode;}
+dojo.event.connect(dojo.hostenv, "loaded", tf);})();}catch(e){ alert(e); }

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SwtWidget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SwtWidget.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SwtWidget.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SwtWidget.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.widget.SwtWidget");dojo.require("dojo.experimental");dojo.experimental("dojo.widget.SwtWidget");dojo.require("dojo.event.*");dojo.require("dojo.widget.Widget");dojo.require("dojo.uri.*");dojo.require("dojo.lang.func");dojo.require("dojo.lang.extras");try{importPackage(Packages.org.eclipse.swt.widgets);dojo.declare("dojo.widget.SwtWidget", dojo.widget.Widget,function() {if((arguments.length>0)&&(typeof arguments[0] == "object")){this.create(arguments[0]);}},{display: null,shell: null,show: function(){ },hide: function(){ },addChild: function(){ },registerChild: function(){ },addWidgetAsDirectChild: function(){ },removeChild: function(){ },destroyRendering: function(){ },postInitialize: function(){ }});dojo.widget.SwtWidget.prototype.display = new Display();dojo.widget.SwtWidget.prototype.shell = new Shell(dojo.widget.SwtWidget.prototype.display);dojo.widget.manager.startShell = function(){var sh = dojo.widget.SwtWidget.prototype.shell;var d = dojo.widget.Sw
 tWidget.prototype.display;sh.open();while(!sh.isDisposed()){dojo.widget.manager.doNext();if(!d.readAndDispatch()){d.sleep();}}
+d.dispose();};}catch(e){dojo.debug("dojo.widget.SwtWidget not loaded. SWT classes not available");}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TabContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TabContainer.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TabContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TabContainer.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,23 @@
+
+dojo.provide("dojo.widget.TabContainer");dojo.require("dojo.lang.func");dojo.require("dojo.widget.*");dojo.require("dojo.widget.PageContainer");dojo.require("dojo.event.*");dojo.require("dojo.html.selection");dojo.require("dojo.widget.html.layout");dojo.widget.defineWidget("dojo.widget.TabContainer", dojo.widget.PageContainer, {labelPosition: "top",closeButton: "none",templateString: null,templatePath: dojo.uri.dojoUri("src/widget/templates/TabContainer.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/TabContainer.css"),fillInTemplate: function() {this.tablist = dojo.widget.createWidget("TabController",{id: this.widgetId + "_tablist",labelPosition: this.labelPosition,doLayout: this.doLayout,containerId: this.widgetId}, this.tablistNode);dojo.widget.TabContainer.superclass.fillInTemplate.apply(this, arguments);},postCreate: function(args, frag) {dojo.widget.TabContainer.superclass.postCreate.apply(this, arguments);this.onResized();},_setupChild: function(tab){if
 (this.closeButton=="tab" || this.closeButton=="pane"){tab.closable=true;}
+dojo.html.addClass(tab.domNode, "dojoTabPane");dojo.widget.TabContainer.superclass._setupChild.apply(this, arguments);},onResized: function(){if(!this.doLayout){ return; }
+var labelAlign=this.labelPosition.replace(/-h/,"");var children = [
+{domNode: this.tablist.domNode, layoutAlign: labelAlign},{domNode: this.containerNode, layoutAlign: "client"}
+];dojo.widget.html.layout(this.domNode, children);if(this.selectedChildWidget){var containerSize = dojo.html.getContentBox(this.containerNode);this.selectedChildWidget.resizeTo(containerSize.width, containerSize.height);}},onKey: function(e){if(e.keyCode == e.KEY_UP_ARROW && e.ctrlKey){var button = this.correspondingTabButton || this.selectedTabWidget.tabButton;button.focus();dojo.event.browser.stopEvent(e);}else if(e.keyCode == e.KEY_DELETE && e.altKey){if (this.selectedChildWidget.closable){this.closeChild(this.selectedChildWidget);dojo.event.browser.stopEvent(e);}}},destroy: function(){this.tablist.destroy();dojo.widget.TabContainer.superclass.destroy.apply(this, arguments);}});dojo.widget.defineWidget(
+"dojo.widget.TabController",dojo.widget.PageController,{templateString: "<div wairole='tablist' dojoAttachEvent='onKey'></div>",labelPosition: "top",doLayout: true,"class": "",buttonWidget: "TabButton",postMixInProperties: function() {if(!this["class"]){this["class"] = "dojoTabLabels-" + this.labelPosition + (this.doLayout ? "" : " dojoTabNoLayout");}
+dojo.widget.TabController.superclass.postMixInProperties.apply(this, arguments);}}
+);dojo.widget.defineWidget("dojo.widget.TabButton", dojo.widget.PageButton,{templateString: "<div class='dojoTab' dojoAttachEvent='onClick'>"
++"<div dojoAttachPoint='innerDiv'>"
++"<span dojoAttachPoint='titleNode' tabIndex='-1' waiRole='tab'>${this.label}</span>"
++"<span dojoAttachPoint='closeButtonNode' class='close closeImage' style='${this.closeButtonStyle}'"
++"    dojoAttachEvent='onMouseOver:onCloseButtonMouseOver; onMouseOut:onCloseButtonMouseOut; onClick:onCloseButtonClick'></span>"
++"</div>"
++"</div>",postMixInProperties: function(){this.closeButtonStyle = this.closeButton ? "" : "display: none";dojo.widget.TabButton.superclass.postMixInProperties.apply(this, arguments);},fillInTemplate: function(){dojo.html.disableSelection(this.titleNode);dojo.widget.TabButton.superclass.fillInTemplate.apply(this, arguments);},onCloseButtonClick: function( evt){evt.stopPropagation();dojo.widget.TabButton.superclass.onCloseButtonClick.apply(this, arguments);}});dojo.widget.defineWidget(
+"dojo.widget.a11y.TabButton",dojo.widget.TabButton,{imgPath: dojo.uri.dojoUri("src/widget/templates/images/tab_close.gif"),templateString: "<div class='dojoTab' dojoAttachEvent='onClick;onKey'>"
++"<div dojoAttachPoint='innerDiv'>"
++"<span dojoAttachPoint='titleNode' tabIndex='-1' waiRole='tab'>${this.label}</span>"
++"<img class='close' src='${this.imgPath}' alt='[x]' style='${this.closeButtonStyle}'"
++"    dojoAttachEvent='onClick:onCloseButtonClick'>"
++"</div>"
++"</div>"}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TaskBar.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TaskBar.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TaskBar.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TaskBar.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,6 @@
+
+dojo.provide("dojo.widget.TaskBar");dojo.require("dojo.widget.*");dojo.require("dojo.widget.FloatingPane");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.event.*");dojo.require("dojo.html.selection");dojo.widget.defineWidget(
+"dojo.widget.TaskBarItem",dojo.widget.HtmlWidget,{iconSrc: '',caption: 'Untitled',templatePath: dojo.uri.dojoUri("src/widget/templates/TaskBarItemTemplate.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/TaskBar.css"),fillInTemplate: function() {if (this.iconSrc) {var img = document.createElement("img");img.src = this.iconSrc;this.domNode.appendChild(img);}
+this.domNode.appendChild(document.createTextNode(this.caption));dojo.html.disableSelection(this.domNode);},postCreate: function() {this.window=dojo.widget.getWidgetById(this.windowId);this.window.explodeSrc = this.domNode;dojo.event.connect(this.window, "destroy", this, "destroy")},onClick: function() {this.window.toggleDisplay();}});dojo.widget.defineWidget(
+"dojo.widget.TaskBar",dojo.widget.FloatingPane,function(){this._addChildStack = [];},{resizable: false,titleBarDisplay: false,addChild: function( child) {if(!this.containerNode){this._addChildStack.push(child);}else if(this._addChildStack.length > 0){var oarr = this._addChildStack;this._addChildStack = [];dojo.lang.forEach(oarr, this.addChild, this);}
+var tbi = dojo.widget.createWidget("TaskBarItem",{	windowId: child.widgetId,caption: child.title,iconSrc: child.iconSrc});dojo.widget.TaskBar.superclass.addChild.call(this,tbi);}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Textbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Textbox.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Textbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Textbox.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,8 @@
+
+dojo.provide("dojo.widget.Textbox");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Manager");dojo.require("dojo.widget.Parse");dojo.require("dojo.xml.Parse");dojo.require("dojo.lang.array");dojo.require("dojo.lang.common");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "validate", null, "zh-cn,ROOT,ja,fr");dojo.widget.defineWidget(
+"dojo.widget.Textbox",dojo.widget.HtmlWidget,{className: "",name: "",value: "",type: "",trim: false,uppercase: false,lowercase: false,ucFirst: false,digit: false,htmlfloat: "none",templatePath: dojo.uri.dojoUri("src/widget/templates/Textbox.html"),textbox: null,fillInTemplate: function() {this.textbox.value = this.value;},filter: function() {if (this.trim) {this.textbox.value = this.textbox.value.replace(/(^\s*|\s*$)/g, "");}
+if (this.uppercase) {this.textbox.value = this.textbox.value.toUpperCase();}
+if (this.lowercase) {this.textbox.value = this.textbox.value.toLowerCase();}
+if (this.ucFirst) {this.textbox.value = this.textbox.value.replace(/\b\w+\b/g,function(word) { return word.substring(0,1).toUpperCase() + word.substring(1).toLowerCase(); });}
+if (this.digit) {this.textbox.value = this.textbox.value.replace(/\D/g, "");}},onfocus: function() {},onblur: function() { this.filter(); },mixInProperties: function(localProperties, frag) {dojo.widget.Textbox.superclass.mixInProperties.apply(this, arguments);if ( localProperties["class"] ) {this.className = localProperties["class"];}}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TimePicker.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TimePicker.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,21 @@
+
+dojo.provide("dojo.widget.TimePicker");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.event.*");dojo.require("dojo.date.serialize");dojo.require("dojo.date.format");dojo.require("dojo.dom");dojo.require("dojo.html.style");dojo.requireLocalization("dojo.i18n.calendar", "gregorian", null, "en,es,fr,de,sv,nl,ja,fi,zh-cn,ROOT,zh,zh-hk,hu,zh-tw,pt,pt-br,ko,it");dojo.requireLocalization("dojo.widget", "TimePicker", null, "ROOT");dojo.widget.defineWidget(
+"dojo.widget.TimePicker",dojo.widget.HtmlWidget,function(){this.time = "";this.useDefaultTime = false;this.useDefaultMinutes = false;this.roundUpMinutes = true;this.storedTime = "";this.currentTime = {};this.classNames = {selectedTime: "selectedItem"};this.any = "any";this.selectedTime = {hour: "",minute: "",amPm: "",anyTime: false};this.hourIndexMap = ["", 2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 11, 0];this.minuteIndexMap = [0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 11];},{isContainer: false,templatePath: dojo.uri.dojoUri("src/widget/templates/TimePicker.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/TimePicker.css"),postMixInProperties: function(localProperties, frag) {dojo.widget.TimePicker.superclass.postMixInProperties.apply(this, arguments);this.calendar = dojo.i18n.getLocalization("dojo.i18n.calendar", "gregorian", this.lang);this.widgetStrings = dojo.i18n.getLocalization("dojo.widget", "TimePicker", this.lang);},fillInTemplate: function(args, frag){var source = this.g
 etFragNodeRef(frag);dojo.html.copyStyle(this.domNode, source);if(args.value){if(args.value instanceof Date){this.storedTime = dojo.date.toRfc3339(args.value);}else{this.storedTime = args.value;}}
+this.initData();this.initUI();},initData: function() {if(this.storedTime.indexOf("T")!=-1 && this.storedTime.split("T")[1] && this.storedTime!=" " && this.storedTime.split("T")[1]!="any"){this.time = dojo.widget.TimePicker.util.fromRfcDateTime(this.storedTime, this.useDefaultMinutes, this.selectedTime.anyTime, !this.roundUpMinutes);}else if(this.useDefaultTime){this.time = dojo.widget.TimePicker.util.fromRfcDateTime("", this.useDefaultMinutes, this.selectedTime.anyTime, !this.roundUpMinutes);}else{this.selectedTime.anyTime = true;this.time = dojo.widget.TimePicker.util.fromRfcDateTime("", 0, 1, !this.roundUpMinutes);}},initUI: function() {if(!this.selectedTime.anyTime && this.time) {var amPmHour = dojo.widget.TimePicker.util.toAmPmHour(this.time.getHours());var hour = amPmHour[0];var isAm = amPmHour[1];var minute = this.time.getMinutes();var minuteIndex = Math.floor(minute / 5);this.onClearSelectedHour();this.setSelectedHour(this.hourIndexMap[hour]);this.onClearSelectedMinut
 e();this.setSelectedMinute(this.minuteIndexMap[minuteIndex]);if(!this.roundUpMinutes){this.selectedTime["minute"] = minute < 10 ? "0" + minute.toString() : minute.toString();}
+this.onSetSelectedAmPm(isAm);} else {this.onSetSelectedAnyTime();}},setTime: function(date) {if(date) {this.selectedTime.anyTime = false;this.setDateTime(dojo.date.toRfc3339(date));} else {this.selectedTime.anyTime = true;}
+this.initData();this.initUI();},setDateTime: function(rfcDate) {this.storedTime = rfcDate;},onClearSelectedHour: function(evt) {this.clearSelectedHour();},onClearSelectedMinute: function(evt) {this.clearSelectedMinute();},onClearSelectedAmPm: function(evt) {this.clearSelectedAmPm();},onClearSelectedAnyTime: function(evt) {this.clearSelectedAnyTime();if(this.selectedTime.anyTime) {this.selectedTime.anyTime = false;this.time = dojo.widget.TimePicker.util.fromRfcDateTime("", this.useDefaultMinutes, 0, !this.roundUpMinutes);this.initUI();}},clearSelectedHour: function() {var hourNodes = this.hourContainerNode.getElementsByTagName("td");for (var i=0; i<hourNodes.length; i++) {dojo.html.setClass(hourNodes.item(i), "");}},clearSelectedMinute: function() {var minuteNodes = this.minuteContainerNode.getElementsByTagName("td");for (var i=0; i<minuteNodes.length; i++) {dojo.html.setClass(minuteNodes.item(i), "");}},clearSelectedAmPm: function() {var amPmNodes = this.amPmContainerNode.ge
 tElementsByTagName("td");for (var i=0; i<amPmNodes.length; i++) {dojo.html.setClass(amPmNodes.item(i), "");}},clearSelectedAnyTime: function() {dojo.html.setClass(this.anyTimeContainerNode, "anyTimeContainer");},onSetSelectedHour: function(evt) {this.onClearSelectedAnyTime();this.onClearSelectedHour();this.setSelectedHour(evt);this.onSetTime();},setSelectedHour: function(evt) {if(evt && evt.target) {if(evt.target.nodeType == dojo.dom.ELEMENT_NODE) {var eventTarget = evt.target;} else {var eventTarget = evt.target.parentNode;}
+dojo.event.browser.stopEvent(evt);dojo.html.setClass(eventTarget, this.classNames.selectedTime);this.selectedTime["hour"] = eventTarget.innerHTML;} else if (!isNaN(evt)) {var hourNodes = this.hourContainerNode.getElementsByTagName("td");if(hourNodes.item(evt)) {dojo.html.setClass(hourNodes.item(evt), this.classNames.selectedTime);this.selectedTime["hour"] = hourNodes.item(evt).innerHTML;}}
+this.selectedTime.anyTime = false;},onSetSelectedMinute: function(evt) {this.onClearSelectedAnyTime();this.onClearSelectedMinute();this.setSelectedMinute(evt);this.selectedTime.anyTime = false;this.onSetTime();},setSelectedMinute: function(evt) {if(evt && evt.target) {if(evt.target.nodeType == dojo.dom.ELEMENT_NODE) {var eventTarget = evt.target;} else {var eventTarget = evt.target.parentNode;}
+dojo.event.browser.stopEvent(evt);dojo.html.setClass(eventTarget, this.classNames.selectedTime);this.selectedTime["minute"] = eventTarget.innerHTML;} else if (!isNaN(evt)) {var minuteNodes = this.minuteContainerNode.getElementsByTagName("td");if(minuteNodes.item(evt)) {dojo.html.setClass(minuteNodes.item(evt), this.classNames.selectedTime);this.selectedTime["minute"] = minuteNodes.item(evt).innerHTML;}}},onSetSelectedAmPm: function(evt) {this.onClearSelectedAnyTime();this.onClearSelectedAmPm();this.setSelectedAmPm(evt);this.selectedTime.anyTime = false;this.onSetTime();},setSelectedAmPm: function(evt) {var eventTarget = evt.target;if(evt && eventTarget) {if(eventTarget.nodeType != dojo.dom.ELEMENT_NODE) {eventTarget = eventTarget.parentNode;}
+dojo.event.browser.stopEvent(evt);this.selectedTime.amPm = eventTarget.id;dojo.html.setClass(eventTarget, this.classNames.selectedTime);} else {evt = evt ? 0 : 1;var amPmNodes = this.amPmContainerNode.getElementsByTagName("td");if(amPmNodes.item(evt)) {this.selectedTime.amPm = amPmNodes.item(evt).id;dojo.html.setClass(amPmNodes.item(evt), this.classNames.selectedTime);}}},onSetSelectedAnyTime: function(evt) {this.onClearSelectedHour();this.onClearSelectedMinute();this.onClearSelectedAmPm();this.setSelectedAnyTime();this.onSetTime();},setSelectedAnyTime: function(evt) {this.selectedTime.anyTime = true;dojo.html.setClass(this.anyTimeContainerNode, this.classNames.selectedTime + " " + "anyTimeContainer");},onClick: function(evt) {dojo.event.browser.stopEvent(evt);},onSetTime: function() {if(this.selectedTime.anyTime) {this.time = new Date();var tempDateTime = dojo.widget.TimePicker.util.toRfcDateTime(this.time);this.setDateTime(tempDateTime.split("T")[0]);} else {var hour = 12;
 var minute = 0;var isAm = false;if(this.selectedTime["hour"]) {hour = parseInt(this.selectedTime["hour"], 10);}
+if(this.selectedTime["minute"]) {minute = parseInt(this.selectedTime["minute"], 10);}
+if(this.selectedTime["amPm"]) {isAm = (this.selectedTime["amPm"].toLowerCase() == "am");}
+this.time = new Date();this.time.setHours(dojo.widget.TimePicker.util.fromAmPmHour(hour, isAm));this.time.setMinutes(minute);this.setDateTime(dojo.widget.TimePicker.util.toRfcDateTime(this.time));}
+this.onValueChanged(this.time);},onValueChanged: function(date) {}});dojo.widget.TimePicker.util = new function() {this.toRfcDateTime = function(jsDate) {if(!jsDate) {jsDate = new Date();}
+jsDate.setSeconds(0);return dojo.date.strftime(jsDate, "%Y-%m-%dT%H:%M:00%z");}
+this.fromRfcDateTime = function(rfcDate, useDefaultMinutes, isAnyTime, dontRoundUpMinutes) {var tempDate = new Date();if(!rfcDate || rfcDate.indexOf("T")==-1) {if(useDefaultMinutes) {if(dontRoundUpMinutes){tempDate.setMinutes(tempDate.getMinutes());}else{tempDate.setMinutes(Math.floor(tempDate.getMinutes()/5)*5);}} else {tempDate.setMinutes(0);}} else {var tempTime = rfcDate.split("T")[1].split(":");var tempDate = new Date();tempDate.setHours(tempTime[0]);tempDate.setMinutes(tempTime[1]);}
+return tempDate;}
+this.toAmPmHour = function(hour) {var amPmHour = hour;var isAm = true;if (amPmHour == 0) {amPmHour = 12;} else if (amPmHour>12) {amPmHour = amPmHour - 12;isAm = false;} else if (amPmHour == 12) {isAm = false;}
+return [amPmHour, isAm];}
+this.fromAmPmHour = function(amPmHour, isAm) {var hour = parseInt(amPmHour, 10);if(isAm && hour == 12) {hour = 0;} else if (!isAm && hour<12) {hour = hour + 12;}
+return hour;}}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TitlePane.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TitlePane.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TitlePane.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/TitlePane.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.TitlePane");dojo.require("dojo.widget.*");dojo.require("dojo.widget.ContentPane");dojo.require("dojo.html.style");dojo.require("dojo.lfx.*");dojo.widget.defineWidget(
+"dojo.widget.TitlePane",dojo.widget.ContentPane,{labelNodeClass: "",containerNodeClass: "",label: "",open: true,templatePath: dojo.uri.dojoUri("src/widget/templates/TitlePane.html"),postCreate: function() {if (this.label) {this.labelNode.appendChild(document.createTextNode(this.label));}
+if (this.labelNodeClass) {dojo.html.addClass(this.labelNode, this.labelNodeClass);}
+if (this.containerNodeClass) {dojo.html.addClass(this.containerNode, this.containerNodeClass);}
+if (!this.open) {dojo.html.hide(this.containerNode);}
+dojo.widget.TitlePane.superclass.postCreate.apply(this, arguments);},onLabelClick: function() {if (this.open) {dojo.lfx.wipeOut(this.containerNode, 250).play();this.open=false;} else {dojo.lfx.wipeIn(this.containerNode, 250).play();this.open=true;}},setLabel: function( label) {this.labelNode.innerHTML=label;}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toaster.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toaster.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toaster.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toaster.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,29 @@
+
+dojo.provide("dojo.widget.Toaster");dojo.require("dojo.widget.*");dojo.require("dojo.lfx.*");dojo.require("dojo.html.iframe");dojo.widget.defineWidget(
+"dojo.widget.Toaster",dojo.widget.HtmlWidget,{templateString: '<div dojoAttachPoint="clipNode"><div dojoAttachPoint="containerNode" dojoAttachEvent="onClick:onSelect"><div dojoAttachPoint="contentNode"></div></div></div>',templateCssPath: dojo.uri.dojoUri("src/widget/templates/Toaster.css"),messageTopic: "",messageTypes: {MESSAGE: "MESSAGE",WARNING: "WARNING",ERROR: "ERROR",FATAL: "FATAL"},defaultType: "MESSAGE",clipCssClass: "dojoToasterClip",containerCssClass: "dojoToasterContainer",contentCssClass: "dojoToasterContent",messageCssClass: "dojoToasterMessage",warningCssClass: "dojoToasterWarning",errorCssClass: "dojoToasterError",fatalCssClass: "dojoToasterFatal",positionDirection: "br-up",positionDirectionTypes: ["br-up", "br-left", "bl-up", "bl-right", "tr-down", "tr-left", "tl-down", "tl-right"],initializer: function(){this.duration = 2000;this.showDelay = '';this.separator = "<hr>";},postCreate: function(){if(this.showDelay!=''){dojo.deprecated("dojo.widget.Toaster", "us
 e 'duration' instead of 'showDelay'", "0.6");this.duration = this.showDelay;}
+this.hide();dojo.html.setClass(this.clipNode, this.clipCssClass);dojo.html.addClass(this.containerNode, this.containerCssClass);dojo.html.setClass(this.contentNode, this.contentCssClass);if(this.messageTopic){dojo.event.topic.subscribe(this.messageTopic, this, "_handleMessage");}
+if(!this.positionDirection || !dojo.lang.inArray(this.positionDirectionTypes, this.positionDirection)){this.positionDirection = this.positionDirectionTypes.BRU;}},_handleMessage: function(msg){if(dojo.lang.isString(msg)){this.setContent(msg);}else{this.setContent(msg["message"], msg["type"], msg["duration"]);}},setContent: function(msg, messageType, duration){var duration = duration||this.duration;if(this.slideAnim && this.slideAnim.status() == "playing"){dojo.lang.setTimeout(50, dojo.lang.hitch(this, function(){this.setContent(msg, messageType);}));return;}else if(this.slideAnim){this.slideAnim.stop();if(this.fadeAnim && this.fadeAnim.status() == "playing"){dojo.lang.setTimeout(50, dojo.lang.hitch(this, function(){this.setContent(msg, messageType);}));return;}}
+if(!msg){dojo.debug(this.widgetId + ".setContent() incoming content was null, ignoring.");return;}
+if(!this.positionDirection || !dojo.lang.inArray(this.positionDirectionTypes, this.positionDirection)){dojo.raise(this.widgetId + ".positionDirection is an invalid value: " + this.positionDirection);}
+dojo.html.removeClass(this.containerNode, this.messageCssClass);dojo.html.removeClass(this.containerNode, this.warningCssClass);dojo.html.removeClass(this.containerNode, this.errorCssClass);dojo.html.removeClass(this.containerNode, this.fatalCssClass);dojo.html.clearOpacity(this.containerNode);if(msg instanceof String || typeof msg == "string"){var tmpMsg = msg;}else if(dojo.html.isNode(msg)){var tmpMsg = dojo.html.getContentAsString(msg);}else{dojo.raise("Toaster.setContent(): msg is of unknown type:" + msg);}
+var curMsg = this.contentNode.innerHTML
+if(tmpMsg&&this.isVisible){this.contentNode.innerHTML = curMsg + "<br>" + this.separator + "<br>" + tmpMsg;}else{this.contentNode.innerHTML = tmpMsg}
+switch(messageType){case this.messageTypes.WARNING:
+dojo.html.addClass(this.containerNode, this.warningCssClass);break;case this.messageTypes.ERROR:
+dojo.html.addClass(this.containerNode, this.errorCssClass);break
+case this.messageTypes.FATAL:
+dojo.html.addClass(this.containerNode, this.fatalCssClass);break;case this.messageTypes.MESSAGE:
+default:
+dojo.html.addClass(this.containerNode, this.messageCssClass);break;}
+this.show();var nodeSize = dojo.html.getMarginBox(this.containerNode);if(this.isVisible){this._placeClip();}else{if(this.positionDirection.indexOf("-up") >= 0){this.containerNode.style.left=0+"px";this.containerNode.style.top=nodeSize.height + 10 + "px";}else if(this.positionDirection.indexOf("-left") >= 0){this.containerNode.style.left=nodeSize.width + 10 +"px";this.containerNode.style.top=0+"px";}else if(this.positionDirection.indexOf("-right") >= 0){this.containerNode.style.left = 0 - nodeSize.width - 10 + "px";this.containerNode.style.top = 0+"px";}else if(this.positionDirection.indexOf("-down") >= 0){this.containerNode.style.left = 0+"px";this.containerNode.style.top = 0 - nodeSize.height - 10 + "px";}else{dojo.raise(this.widgetId + ".positionDirection is an invalid value: " + this.positionDirection);}
+this.slideAnim = dojo.lfx.html.slideTo(
+this.containerNode,{ top: 0, left: 0 },450,null,dojo.lang.hitch(this, function(nodes, anim){this.fadeAnim = dojo.lfx.html.fadeOut(
+this.containerNode,1000,null,dojo.lang.hitch(this, function(evt){this.isVisible = false;this.hide();}));if(duration>0){dojo.lang.setTimeout(dojo.lang.hitch(this, function(evt){if(this.bgIframe){this.bgIframe.hide();}
+this.fadeAnim.play();}), duration);}else{dojo.event.connect(
+this,'onSelect',dojo.lang.hitch(this, function(evt){this.fadeAnim.play();}));}
+this.isVisible = true;})).play();}},_placeClip: function(){var scroll = dojo.html.getScroll();var view = dojo.html.getViewport();var nodeSize = dojo.html.getMarginBox(this.containerNode);this.clipNode.style.height = nodeSize.height+"px";this.clipNode.style.width = nodeSize.width+"px";if(this.positionDirection.match(/^t/)){this.clipNode.style.top = scroll.top+"px";}else if(this.positionDirection.match(/^b/)){this.clipNode.style.top = (view.height - nodeSize.height - 2 + scroll.top)+"px";}
+if(this.positionDirection.match(/^[tb]r-/)){this.clipNode.style.left = (view.width - nodeSize.width - 1 - scroll.left)+"px";}else if(this.positionDirection.match(/^[tb]l-/)){this.clipNode.style.left = 0 + "px";}
+this.clipNode.style.clip = "rect(0px, " + nodeSize.width + "px, " + nodeSize.height + "px, 0px)";if(dojo.render.html.ie){if(!this.bgIframe){this.bgIframe = new dojo.html.BackgroundIframe(this.clipNode);this.bgIframe.setZIndex(this.clipNode);}
+this.bgIframe.onResized();this.bgIframe.show();}},onSelect: function(e) {},show: function(){dojo.widget.Toaster.superclass.show.call(this);this._placeClip();if(!this._scrollConnected){this._scrollConnected = true;dojo.event.connect(window, "onscroll", this, "_placeClip");}},hide: function(){dojo.widget.Toaster.superclass.hide.call(this);if(this._scrollConnected){this._scrollConnected = false;dojo.event.disconnect(window, "onscroll", this, "_placeClip");}
+dojo.html.setOpacity(this.containerNode, 1.0);}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toggler.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toggler.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toggler.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toggler.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.widget.Toggler");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.widget.defineWidget(
+"dojo.widget.Toggler",dojo.widget.HtmlWidget,{targetId: '',fillInTemplate: function() {dojo.event.connect(this.domNode, "onclick", this, "onClick");},onClick: function() {var pane = dojo.widget.byId(this.targetId);if(!pane){ return; }
+pane.explodeSrc = this.domNode;pane.toggleShowing();}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toolbar.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toolbar.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toolbar.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Toolbar.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,89 @@
+
+dojo.provide("dojo.widget.Toolbar");dojo.require("dojo.widget.*");dojo.require("dojo.html.style");dojo.widget.defineWidget(
+"dojo.widget.ToolbarContainer",dojo.widget.HtmlWidget,{isContainer: true,templateString: '<div class="toolbarContainer" dojoAttachPoint="containerNode"></div>',templateCssPath: dojo.uri.dojoUri("src/widget/templates/Toolbar.css"),getItem: function(name) {if(name instanceof dojo.widget.ToolbarItem) { return name; }
+for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {var item = child.getItem(name);if(item) { return item; }}}
+return null;},getItems: function() {var items = [];for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {items = items.concat(child.getItems());}}
+return items;},enable: function() {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {child.enable.apply(child, arguments);}}},disable: function() {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {child.disable.apply(child, arguments);}}},select: function(name) {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {child.select(arguments);}}},deselect: function(name) {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {child.deselect(arguments);}}},getItemsState: function() {var values = {};for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {dojo.lang.mixin(values, child.getItemsState());}}
+return values;},getItemsActiveState: function() {var values = {};for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {dojo.lang.mixin(values, child.getItemsActiveState());}}
+return values;},getItemsSelectedState: function() {var values = {};for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.Toolbar) {dojo.lang.mixin(values, child.getItemsSelectedState());}}
+return values;}});dojo.widget.defineWidget(
+"dojo.widget.Toolbar",dojo.widget.HtmlWidget,{isContainer: true,templateString: '<div class="toolbar" dojoAttachPoint="containerNode" unselectable="on" dojoOnMouseover="_onmouseover" dojoOnMouseout="_onmouseout" dojoOnClick="_onclick" dojoOnMousedown="_onmousedown" dojoOnMouseup="_onmouseup"></div>',_getItem: function(node) {var start = new Date();var widget = null;while(node && node != this.domNode) {if(dojo.html.hasClass(node, "toolbarItem")) {var widgets = dojo.widget.manager.getWidgetsByFilter(function(w) { return w.domNode == node; });if(widgets.length == 1) {widget = widgets[0];break;} else if(widgets.length > 1) {dojo.raise("Toolbar._getItem: More than one widget matches the node");}}
+node = node.parentNode;}
+return widget;},_onmouseover: function(e) {var widget = this._getItem(e.target);if(widget && widget._onmouseover) { widget._onmouseover(e); }},_onmouseout: function(e) {var widget = this._getItem(e.target);if(widget && widget._onmouseout) { widget._onmouseout(e); }},_onclick: function(e) {var widget = this._getItem(e.target);if(widget && widget._onclick){widget._onclick(e);}},_onmousedown: function(e) {var widget = this._getItem(e.target);if(widget && widget._onmousedown) { widget._onmousedown(e); }},_onmouseup: function(e) {var widget = this._getItem(e.target);if(widget && widget._onmouseup) { widget._onmouseup(e); }},addChild: function(item, pos, props) {var widget = dojo.widget.ToolbarItem.make(item, null, props);var ret = dojo.widget.Toolbar.superclass.addChild.call(this, widget, null, pos, null);return ret;},push: function() {for(var i = 0; i < arguments.length; i++) {this.addChild(arguments[i]);}},getItem: function(name) {if(name instanceof dojo.widget.ToolbarItem) { r
 eturn name; }
+for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem
+&& child._name == name) { return child; }}
+return null;},getItems: function() {var items = [];for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {items.push(child);}}
+return items;},getItemsState: function() {var values = {};for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {values[child._name] = {selected: child._selected,enabled: !child.disabled};}}
+return values;},getItemsActiveState: function() {var values = this.getItemsState();for(var item in values) {values[item] = values[item].enabled;}
+return values;},getItemsSelectedState: function() {var values = this.getItemsState();for(var item in values) {values[item] = values[item].selected;}
+return values;},enable: function() {var items = arguments.length ? arguments : this.children;for(var i = 0; i < items.length; i++) {var child = this.getItem(items[i]);if(child instanceof dojo.widget.ToolbarItem) {child.enable(false, true);}}},disable: function() {var items = arguments.length ? arguments : this.children;for(var i = 0; i < items.length; i++) {var child = this.getItem(items[i]);if(child instanceof dojo.widget.ToolbarItem) {child.disable();}}},select: function() {for(var i = 0; i < arguments.length; i++) {var name = arguments[i];var item = this.getItem(name);if(item) { item.select(); }}},deselect: function() {for(var i = 0; i < arguments.length; i++) {var name = arguments[i];var item = this.getItem(name);if(item) { item.disable(); }}},setValue: function() {for(var i = 0; i < arguments.length; i += 2) {var name = arguments[i], value = arguments[i+1];var item = this.getItem(name);if(item) {if(item instanceof dojo.widget.ToolbarItem) {item.setValue(value);}}}}});do
 jo.widget.defineWidget(
+"dojo.widget.ToolbarItem",dojo.widget.HtmlWidget,{templateString: '<span unselectable="on" class="toolbarItem"></span>',_name: null,getName: function() { return this._name; },setName: function(value) { return (this._name = value); },getValue: function() { return this.getName(); },setValue: function(value) { return this.setName(value); },_selected: false,isSelected: function() { return this._selected; },setSelected: function(is, force, preventEvent) {if(!this._toggleItem && !force) { return; }
+is = Boolean(is);if(force || !this.disabled && this._selected != is) {this._selected = is;this.update();if(!preventEvent) {this._fireEvent(is ? "onSelect" : "onDeselect");this._fireEvent("onChangeSelect");}}},select: function(force, preventEvent) {return this.setSelected(true, force, preventEvent);},deselect: function(force, preventEvent) {return this.setSelected(false, force, preventEvent);},_toggleItem: false,isToggleItem: function() { return this._toggleItem; },setToggleItem: function(value) { this._toggleItem = Boolean(value); },toggleSelected: function(force) {return this.setSelected(!this._selected, force);},isEnabled: function() { return !this.disabled; },setEnabled: function(is, force, preventEvent) {is = Boolean(is);if(force || this.disabled == is) {this.disabled = !is;this.update();if(!preventEvent) {this._fireEvent(this.disabled ? "onDisable" : "onEnable");this._fireEvent("onChangeEnabled");}}
+return !this.disabled;},enable: function(force, preventEvent) {return this.setEnabled(true, force, preventEvent);},disable: function(force, preventEvent) {return this.setEnabled(false, force, preventEvent);},toggleEnabled: function(force, preventEvent) {return this.setEnabled(this.disabled, force, preventEvent);},_icon: null,getIcon: function() { return this._icon; },setIcon: function(value) {var icon = dojo.widget.Icon.make(value);if(this._icon) {this._icon.setIcon(icon);} else {this._icon = icon;}
+var iconNode = this._icon.getNode();if(iconNode.parentNode != this.domNode) {if(this.domNode.hasChildNodes()) {this.domNode.insertBefore(iconNode, this.domNode.firstChild);} else {this.domNode.appendChild(iconNode);}}
+return this._icon;},_label: "",getLabel: function() { return this._label; },setLabel: function(value) {var ret = (this._label = value);if(!this.labelNode) {this.labelNode = document.createElement("span");this.domNode.appendChild(this.labelNode);}
+this.labelNode.innerHTML = "";this.labelNode.appendChild(document.createTextNode(this._label));this.update();return ret;},update: function() {if(this.disabled) {this._selected = false;dojo.html.addClass(this.domNode, "disabled");dojo.html.removeClass(this.domNode, "down");dojo.html.removeClass(this.domNode, "hover");} else {dojo.html.removeClass(this.domNode, "disabled");if(this._selected) {dojo.html.addClass(this.domNode, "selected");} else {dojo.html.removeClass(this.domNode, "selected");}}
+this._updateIcon();},_updateIcon: function() {if(this._icon) {if(this.disabled) {this._icon.disable();} else {if(this._cssHover) {this._icon.hover();} else if(this._selected) {this._icon.select();} else {this._icon.enable();}}}},_fireEvent: function(evt) {if(typeof this[evt] == "function") {var args = [this];for(var i = 1; i < arguments.length; i++) {args.push(arguments[i]);}
+this[evt].apply(this, args);}},_onmouseover: function(e) {if(this.disabled) { return; }
+dojo.html.addClass(this.domNode, "hover");this._fireEvent("onMouseOver");},_onmouseout: function(e) {dojo.html.removeClass(this.domNode, "hover");dojo.html.removeClass(this.domNode, "down");if(!this._selected) {dojo.html.removeClass(this.domNode, "selected");}
+this._fireEvent("onMouseOut");},_onclick: function(e) {if(!this.disabled && !this._toggleItem) {this._fireEvent("onClick");}},_onmousedown: function(e) {if(e.preventDefault) { e.preventDefault(); }
+if(this.disabled) { return; }
+dojo.html.addClass(this.domNode, "down");if(this._toggleItem) {if(this.parent.preventDeselect && this._selected) {return;}
+this.toggleSelected();}
+this._fireEvent("onMouseDown");},_onmouseup: function(e) {dojo.html.removeClass(this.domNode, "down");this._fireEvent("onMouseUp");},onClick: function() { },onMouseOver: function() { },onMouseOut: function() { },onMouseDown: function() { },onMouseUp: function() { },fillInTemplate: function(args, frag) {if(args.name) { this._name = args.name; }
+if(args.selected) { this.select(); }
+if(args.disabled) { this.disable(); }
+if(args.label) { this.setLabel(args.label); }
+if(args.icon) { this.setIcon(args.icon); }
+if(args.toggleitem||args.toggleItem) { this.setToggleItem(true); }}});dojo.widget.ToolbarItem.make = function(wh, whIsType, props) {var item = null;if(wh instanceof Array) {item = dojo.widget.createWidget("ToolbarButtonGroup", props);item.setName(wh[0]);for(var i = 1; i < wh.length; i++) {item.addChild(wh[i]);}} else if(wh instanceof dojo.widget.ToolbarItem) {item = wh;} else if(wh instanceof dojo.uri.Uri) {item = dojo.widget.createWidget("ToolbarButton",dojo.lang.mixin(props||{}, {icon: new dojo.widget.Icon(wh.toString())}));} else if(whIsType) {item = dojo.widget.createWidget(wh, props);} else if(typeof wh == "string" || wh instanceof String) {switch(wh.charAt(0)) {case "|":
+case "-":
+case "/":
+item = dojo.widget.createWidget("ToolbarSeparator", props);break;case " ":
+if(wh.length == 1) {item = dojo.widget.createWidget("ToolbarSpace", props);} else {item = dojo.widget.createWidget("ToolbarFlexibleSpace", props);}
+break;default:
+if(/\.(gif|jpg|jpeg|png)$/i.test(wh)) {item = dojo.widget.createWidget("ToolbarButton",dojo.lang.mixin(props||{}, {icon: new dojo.widget.Icon(wh.toString())}));} else {item = dojo.widget.createWidget("ToolbarButton",dojo.lang.mixin(props||{}, {label: wh.toString()}));}}} else if(wh && wh.tagName && /^img$/i.test(wh.tagName)) {item = dojo.widget.createWidget("ToolbarButton",dojo.lang.mixin(props||{}, {icon: wh}));} else {item = dojo.widget.createWidget("ToolbarButton",dojo.lang.mixin(props||{}, {label: wh.toString()}));}
+return item;}
+dojo.widget.defineWidget(
+"dojo.widget.ToolbarButtonGroup",dojo.widget.ToolbarItem,{isContainer: true,templateString: '<span unselectable="on" class="toolbarButtonGroup" dojoAttachPoint="containerNode"></span>',defaultButton: "",postCreate: function() {for (var i = 0; i < this.children.length; i++) {this._injectChild(this.children[i]);}},addChild: function(item, pos, props) {var widget = dojo.widget.ToolbarItem.make(item, null, dojo.lang.mixin(props||{}, {toggleItem:true}));var ret = dojo.widget.ToolbarButtonGroup.superclass.addChild.call(this, widget, null, pos, null);this._injectChild(widget);return ret;},_injectChild: function(widget) {dojo.event.connect(widget, "onSelect", this, "onChildSelected");dojo.event.connect(widget, "onDeselect", this, "onChildDeSelected");if(widget._name == this.defaultButton
+|| (typeof this.defaultButton == "number"
+&& this.children.length-1 == this.defaultButton)) {widget.select(false, true);}},getItem: function(name) {if(name instanceof dojo.widget.ToolbarItem) { return name; }
+for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem
+&& child._name == name) { return child; }}
+return null;},getItems: function() {var items = [];for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {items.push(child);}}
+return items;},onChildSelected: function(e) {this.select(e._name);},onChildDeSelected: function(e) {this._fireEvent("onChangeSelect", this._value);},enable: function(force, preventEvent) {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {child.enable(force, preventEvent);if(child._name == this._value) {child.select(force, preventEvent);}}}},disable: function(force, preventEvent) {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {child.disable(force, preventEvent);}}},_value: "",getValue: function() { return this._value; },select: function(name, force, preventEvent) {for(var i = 0; i < this.children.length; i++) {var child = this.children[i];if(child instanceof dojo.widget.ToolbarItem) {if(child._name == name) {child.select(force, preventEvent);this._value = name;} else {child.deselect(true, true);}}}
+if(!preventEvent) {this._fireEvent("onSelect", this._value);this._fireEvent("onChangeSelect", this._value);}},setValue: this.select,preventDeselect: false});dojo.widget.defineWidget(
+"dojo.widget.ToolbarButton",dojo.widget.ToolbarItem,{fillInTemplate: function(args, frag) {dojo.widget.ToolbarButton.superclass.fillInTemplate.call(this, args, frag);dojo.html.addClass(this.domNode, "toolbarButton");if(this._icon) {this.setIcon(this._icon);}
+if(this._label) {this.setLabel(this._label);}
+if(!this._name) {if(this._label) {this.setName(this._label);} else if(this._icon) {var src = this._icon.getSrc("enabled").match(/[\/^]([^\.\/]+)\.(gif|jpg|jpeg|png)$/i);if(src) { this.setName(src[1]); }} else {this._name = this._widgetId;}}}});dojo.widget.defineWidget(
+"dojo.widget.ToolbarDialog",dojo.widget.ToolbarButton,{fillInTemplate: function (args, frag) {dojo.widget.ToolbarDialog.superclass.fillInTemplate.call(this, args, frag);dojo.event.connect(this, "onSelect", this, "showDialog");dojo.event.connect(this, "onDeselect", this, "hideDialog");},showDialog: function (e) {dojo.lang.setTimeout(dojo.event.connect, 1, document, "onmousedown", this, "deselect");},hideDialog: function (e) {dojo.event.disconnect(document, "onmousedown", this, "deselect");}});dojo.widget.defineWidget(
+"dojo.widget.ToolbarMenu",dojo.widget.ToolbarDialog,{}
+);dojo.widget.ToolbarMenuItem = function() {}
+dojo.widget.defineWidget(
+"dojo.widget.ToolbarSeparator",dojo.widget.ToolbarItem,{templateString: '<span unselectable="on" class="toolbarItem toolbarSeparator"></span>',defaultIconPath: new dojo.uri.dojoUri("src/widget/templates/buttons/sep.gif"),fillInTemplate: function(args, frag, skip) {dojo.widget.ToolbarSeparator.superclass.fillInTemplate.call(this, args, frag);this._name = this.widgetId;if(!skip) {if(!this._icon) {this.setIcon(this.defaultIconPath);}
+this.domNode.appendChild(this._icon.getNode());}},_onmouseover: null,_onmouseout: null,_onclick: null,_onmousedown: null,_onmouseup: null});dojo.widget.defineWidget(
+"dojo.widget.ToolbarSpace",dojo.widget.ToolbarSeparator,{fillInTemplate: function(args, frag, skip) {dojo.widget.ToolbarSpace.superclass.fillInTemplate.call(this, args, frag, true);if(!skip) {dojo.html.addClass(this.domNode, "toolbarSpace");}}});dojo.widget.defineWidget(
+"dojo.widget.ToolbarSelect",dojo.widget.ToolbarItem,{templateString: '<span class="toolbarItem toolbarSelect" unselectable="on"><select dojoAttachPoint="selectBox" dojoOnChange="changed"></select></span>',fillInTemplate: function(args, frag) {dojo.widget.ToolbarSelect.superclass.fillInTemplate.call(this, args, frag, true);var keys = args.values;var i = 0;for(var val in keys) {var opt = document.createElement("option");opt.setAttribute("value", keys[val]);opt.innerHTML = val;this.selectBox.appendChild(opt);}},changed: function(e) {this._fireEvent("onSetValue", this.selectBox.value);},setEnabled: function(is, force, preventEvent) {var ret = dojo.widget.ToolbarSelect.superclass.setEnabled.call(this, is, force, preventEvent);this.selectBox.disabled = this.disabled;return ret;},_onmouseover: null,_onmouseout: null,_onclick: null,_onmousedown: null,_onmouseup: null});dojo.widget.Icon = function(enabled, disabled, hovered, selected){if(!arguments.length){throw new Error("Icon must 
 have at least an enabled state");}
+var states = ["enabled", "disabled", "hovered", "selected"];var currentState = "enabled";var domNode = document.createElement("img");this.getState = function(){ return currentState; }
+this.setState = function(value){if(dojo.lang.inArray(states, value)){if(this[value]){currentState = value;var img = this[currentState];if ((dojo.render.html.ie55 || dojo.render.html.ie60) && img.src && img.src.match(/[.]png$/i) ) {domNode.width = img.width||img.offsetWidth;domNode.height = img.height||img.offsetHeight;domNode.setAttribute("src", dojo.uri.dojoUri("src/widget/templates/images/blank.gif").uri);domNode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img.src+"',sizingMethod='image')";} else {domNode.setAttribute("src", img.src);}}}else{throw new Error("Invalid state set on Icon (state: " + value + ")");}}
+this.setSrc = function(state, value){if(/^img$/i.test(value.tagName)){this[state] = value;}else if(typeof value == "string" || value instanceof String
+|| value instanceof dojo.uri.Uri){this[state] = new Image();this[state].src = value.toString();}
+return this[state];}
+this.setIcon = function(icon){for(var i = 0; i < states.length; i++){if(icon[states[i]]){this.setSrc(states[i], icon[states[i]]);}}
+this.update();}
+this.enable = function(){ this.setState("enabled"); }
+this.disable = function(){ this.setState("disabled"); }
+this.hover = function(){ this.setState("hovered"); }
+this.select = function(){ this.setState("selected"); }
+this.getSize = function(){return {width: domNode.width||domNode.offsetWidth,height: domNode.height||domNode.offsetHeight};}
+this.setSize = function(w, h){domNode.width = w;domNode.height = h;return { width: w, height: h };}
+this.getNode = function(){return domNode;}
+this.getSrc = function(state){if(state){ return this[state].src; }
+return domNode.src||"";}
+this.update = function(){this.setState(currentState);}
+for(var i = 0; i < states.length; i++){var arg = arguments[i];var state = states[i];this[state] = null;if(!arg){ continue; }
+this.setSrc(state, arg);}
+this.enable();}
+dojo.widget.Icon.make = function(a,b,c,d){for(var i = 0; i < arguments.length; i++){if(arguments[i] instanceof dojo.widget.Icon){return arguments[i];}}
+return new dojo.widget.Icon(a,b,c,d);}
+dojo.widget.defineWidget(
+"dojo.widget.ToolbarColorDialog",dojo.widget.ToolbarDialog,{palette: "7x10",fillInTemplate: function (args, frag) {dojo.widget.ToolbarColorDialog.superclass.fillInTemplate.call(this, args, frag);this.dialog = dojo.widget.createWidget("ColorPalette", {palette: this.palette});this.dialog.domNode.style.position = "absolute";dojo.event.connect(this.dialog, "onColorSelect", this, "_setValue");},_setValue: function(color) {this._value = color;this._fireEvent("onSetValue", color);},showDialog: function (e) {dojo.widget.ToolbarColorDialog.superclass.showDialog.call(this, e);var abs = dojo.html.getAbsolutePosition(this.domNode, true);var y = abs.y + dojo.html.getBorderBox(this.domNode).height;this.dialog.showAt(abs.x, y);},hideDialog: function (e) {dojo.widget.ToolbarColorDialog.superclass.hideDialog.call(this, e);this.dialog.hide();}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Tooltip.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Tooltip.js?view=auto&rev=485080
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Tooltip.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Tooltip.js Sat Dec  9 14:54:02 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.widget.Tooltip");dojo.require("dojo.widget.ContentPane");dojo.require("dojo.widget.PopupContainer");dojo.require("dojo.uri.Uri");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.html.style");dojo.require("dojo.html.util");dojo.widget.defineWidget(
+"dojo.widget.Tooltip",[dojo.widget.ContentPane, dojo.widget.PopupContainerBase],{caption: "",showDelay: 500,hideDelay: 100,connectId: "",templateCssPath: dojo.uri.dojoUri("src/widget/templates/TooltipTemplate.css"),fillInTemplate: function(args, frag){if(this.caption != ""){this.domNode.appendChild(document.createTextNode(this.caption));}
+this._connectNode = dojo.byId(this.connectId);dojo.widget.Tooltip.superclass.fillInTemplate.call(this, args, frag);this.addOnLoad(this, "_loadedContent");dojo.html.addClass(this.domNode, "dojoTooltip");var source = this.getFragNodeRef(frag);dojo.html.copyStyle(this.domNode, source);this.applyPopupBasicStyle();},postCreate: function(args, frag){dojo.event.connect(this._connectNode, "onmouseover", this, "_onMouseOver");dojo.widget.Tooltip.superclass.postCreate.call(this, args, frag);},_onMouseOver: function(e){this._mouse = {x: e.pageX, y: e.pageY};if(!this._tracking){dojo.event.connect(document.documentElement, "onmousemove", this, "_onMouseMove");this._tracking=true;}
+this._onHover(e);},_onMouseMove: function(e) {this._mouse = {x: e.pageX, y: e.pageY};if(dojo.html.overElement(this._connectNode, e) || dojo.html.overElement(this.domNode, e)){this._onHover(e);} else {this._onUnHover(e);}},_onHover: function(e) {if(this._hover){ return; }
+this._hover=true;if(this._hideTimer) {clearTimeout(this._hideTimer);delete this._hideTimer;}
+if(!this.isShowingNow && !this._showTimer){this._showTimer = setTimeout(dojo.lang.hitch(this, "open"), this.showDelay);}},_onUnHover: function(e){if(!this._hover){ return; }
+this._hover=false;if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}
+if(this.isShowingNow && !this._hideTimer){this._hideTimer = setTimeout(dojo.lang.hitch(this, "close"), this.hideDelay);}
+if(!this.isShowingNow){dojo.event.disconnect(document.documentElement, "onmousemove", this, "_onMouseMove");this._tracking=false;}},open: function() {if (this.isShowingNow) { return; }
+dojo.widget.PopupContainerBase.prototype.open.call(this, this._mouse.x, this._mouse.y, null, [this._mouse.x, this._mouse.y], "TL,TR,BL,BR", [10,15]);},close: function() {if (this.isShowingNow) {if ( this._showTimer ) {clearTimeout(this._showTimer);delete this._showTimer;}
+if ( this._hideTimer ) {clearTimeout(this._hideTimer);delete this._hideTimer;}
+dojo.event.disconnect(document.documentElement, "onmousemove", this, "_onMouseMove");this._tracking=false;dojo.widget.PopupContainerBase.prototype.close.call(this);}},_position: function(){this.move(this._mouse.x, this._mouse.y, [10,15], "TL,TR,BL,BR");},_loadedContent: function(){if(this.isShowingNow){this._position();}},checkSize: function(){},uninitialize: function(){this.close();dojo.event.disconnect(this._connectNode, "onmouseover", this, "_onMouseOver");}}
+);
\ No newline at end of file

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