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/10/29 02:53:03 UTC

svn commit: r468816 [25/32] - in /tapestry/tapestry4/trunk/tapestry-framework: ./ src/java/org/apache/tapestry/dojo/form/ src/js/dojo/ src/js/dojo/nls/ src/js/dojo/src/ src/js/dojo/src/animation/ src/js/dojo/src/cal/ src/js/dojo/src/charting/ src/js/do...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SortableTable.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SortableTable.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SortableTable.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/SortableTable.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,49 @@
+
+dojo.provide("dojo.widget.SortableTable");dojo.deprecated("SortableTable will be removed in favor of FilteringTable.", "0.5");dojo.require("dojo.lang.common");dojo.require("dojo.date.format");dojo.require("dojo.html.*");dojo.require("dojo.html.selection");dojo.require("dojo.html.util");dojo.require("dojo.html.style");dojo.require("dojo.event.*");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.widget.defineWidget(
+"dojo.widget.SortableTable",dojo.widget.HtmlWidget,function(){this.data=[];this.selected=[];this.columns=[];},{enableMultipleSelect: false,maximumNumberOfSelections: 0,enableAlternateRows: false,minRows: 0,defaultDateFormat: "%D",sortIndex: 0,sortDirection: 0,valueField: "Id",headClass: "",tbodyClass: "",headerClass: "",headerSortUpClass: "selected",headerSortDownClass: "selected",rowClass: "",rowAlternateClass: "alt",rowSelectedClass: "selected",columnSelected: "sorted-column",isContainer: false,templatePath:null,templateCssPath:null,getTypeFromString:function( s){var parts=s.split("."),i=0,obj=dj_global;do{obj=obj[parts[i++]];}while(i<parts.length&&obj);return(obj!=dj_global)?obj:null;},compare:function( o1,  o2){for(var p in o1){if(!(p in o2)) return false;if(o1[p].valueOf()!=o2[p].valueOf()) return false;}
+return true;},isSelected:function( o){for(var i=0;i<this.selected.length;i++){if(this.compare(this.selected[i],o)){return true;}}
+return false;},removeFromSelected:function( o){var idx=-1;for(var i=0;i<this.selected.length;i++){if(this.compare(this.selected[i],o)){idx=i;break;}}
+if(idx>=0){this.selected.splice(idx,1);}},getSelection:function(){return this.selected;},getValue:function(){var a=[];for(var i=0;i<this.selected.length;i++){if (this.selected[i][this.valueField]){a.push(this.selected[i][this.valueField]);}}
+return a.join();},reset:function(){this.columns=[];this.data=[];this.resetSelections(this.domNode.getElementsByTagName("tbody")[0]);},resetSelections:function( body){this.selected=[];var idx=0;var rows=body.getElementsByTagName("tr");for(var i=0; i<rows.length; i++){if(rows[i].parentNode==body){rows[i].removeAttribute("selected");if(this.enableAlternateRows&&idx%2==1){rows[i].className=this.rowAlternateClass;}else{rows[i].className="";}
+idx++;}}},getObjectFromRow:function( row){var cells=row.getElementsByTagName("td");var o={};for(var i=0; i<this.columns.length;i++){if(this.columns[i].sortType=="__markup__"){o[this.columns[i].getField()]=cells[i].innerHTML;}else{var text=dojo.html.renderedTextContent(cells[i]);var val=text;if (this.columns[i].getType() != String){var val=new (this.columns[i].getType())(text);}
+o[this.columns[i].getField()]=val;}}
+if(dojo.html.hasAttribute(row,"value")){o[this.valueField]=dojo.html.getAttribute(row,"value");}
+return o;},setSelectionByRow:function( row){var o=this.getObjectFromRow(row);var b=false;for(var i=0;i<this.selected.length;i++){if(this.compare(this.selected[i], o)){b=true;break;}}
+if(!b){this.selected.push(o);}},parseColumns:function( node){this.reset();var row=node.getElementsByTagName("tr")[0];var cells=row.getElementsByTagName("td");if (cells.length==0) cells=row.getElementsByTagName("th");for(var i=0; i<cells.length; i++){var o={field:null,format:null,noSort:false,sortType:"String",dataType:String,sortFunction:null,label:null,align:"left",valign:"middle",getField:function(){ return this.field||this.label; },getType:function(){ return this.dataType; }};if(dojo.html.hasAttribute(cells[i], "align")){o.align=dojo.html.getAttribute(cells[i],"align");}
+if(dojo.html.hasAttribute(cells[i], "valign")){o.valign=dojo.html.getAttribute(cells[i],"valign");}
+if(dojo.html.hasAttribute(cells[i], "nosort")){o.noSort=dojo.html.getAttribute(cells[i],"nosort")=="true";}
+if(dojo.html.hasAttribute(cells[i], "sortusing")){var trans=dojo.html.getAttribute(cells[i],"sortusing");var f=this.getTypeFromString(trans);if (f!=null && f!=window && typeof(f)=="function")
+o.sortFunction=f;}
+if(dojo.html.hasAttribute(cells[i], "field")){o.field=dojo.html.getAttribute(cells[i],"field");}
+if(dojo.html.hasAttribute(cells[i], "format")){o.format=dojo.html.getAttribute(cells[i],"format");}
+if(dojo.html.hasAttribute(cells[i], "dataType")){var sortType=dojo.html.getAttribute(cells[i],"dataType");if(sortType.toLowerCase()=="html"||sortType.toLowerCase()=="markup"){o.sortType="__markup__";o.noSort=true;}else{var type=this.getTypeFromString(sortType);if(type){o.sortType=sortType;o.dataType=type;}}}
+o.label=dojo.html.renderedTextContent(cells[i]);this.columns.push(o);if(dojo.html.hasAttribute(cells[i], "sort")){this.sortIndex=i;var dir=dojo.html.getAttribute(cells[i], "sort");if(!isNaN(parseInt(dir))){dir=parseInt(dir);this.sortDirection=(dir!=0)?1:0;}else{this.sortDirection=(dir.toLowerCase()=="desc")?1:0;}}}},parseData:function( data){this.data=[];this.selected=[];for(var i=0; i<data.length; i++){var o={};for(var j=0; j<this.columns.length; j++){var field=this.columns[j].getField();if(this.columns[j].sortType=="__markup__"){o[field]=String(data[i][field]);}else{var type=this.columns[j].getType();var val=data[i][field];var t=this.columns[j].sortType.toLowerCase();if(type == String) {o[field]=val;} else {if(val!=null){o[field]=new type(val);}else{o[field]=new type();}}}}
+if(data[i][this.valueField]&&!o[this.valueField]){o[this.valueField]=data[i][this.valueField];}
+this.data.push(o);}},parseDataFromTable:function( tbody){this.data=[];this.selected=[];var rows=tbody.getElementsByTagName("tr");for(var i=0; i<rows.length; i++){if(dojo.html.getAttribute(rows[i],"ignoreIfParsed")=="true"){continue;}
+var o={};var cells=rows[i].getElementsByTagName("td");for(var j=0; j<this.columns.length; j++){var field=this.columns[j].getField();if(this.columns[j].sortType=="__markup__"){o[field]=cells[j].innerHTML;}else{var type=this.columns[j].getType();var val=dojo.html.renderedTextContent(cells[j]);if(type == String){o[field]=val;} else {if (val!=null){o[field]=new type(val);} else {o[field]=new type();}}}}
+if(dojo.html.hasAttribute(rows[i],"value")&&!o[this.valueField]){o[this.valueField]=dojo.html.getAttribute(rows[i],"value");}
+this.data.push(o);if(dojo.html.getAttribute(rows[i],"selected")=="true"){this.selected.push(o);}}},showSelections:function(){var body=this.domNode.getElementsByTagName("tbody")[0];var rows=body.getElementsByTagName("tr");var idx=0;for(var i=0; i<rows.length; i++){if(rows[i].parentNode==body){if(dojo.html.getAttribute(rows[i],"selected")=="true"){rows[i].className=this.rowSelectedClass;} else {if(this.enableAlternateRows&&idx%2==1){rows[i].className=this.rowAlternateClass;}else{rows[i].className="";}}
+idx++;}}},render:function(bDontPreserve){var data=[];var body=this.domNode.getElementsByTagName("tbody")[0];if(!bDontPreserve){this.parseDataFromTable(body);}
+for(var i=0; i<this.data.length; i++){data.push(this.data[i]);}
+var col=this.columns[this.sortIndex];if(!col.noSort){var field=col.getField();if(col.sortFunction){var sort=col.sortFunction;}else{var sort=function(a,b){if (a[field]>b[field]) return 1;if (a[field]<b[field]) return -1;return 0;}}
+data.sort(sort);if(this.sortDirection!=0) data.reverse();}
+while(body.childNodes.length>0) body.removeChild(body.childNodes[0]);for(var i=0; i<data.length;i++){var row=document.createElement("tr");dojo.html.disableSelection(row);if (data[i][this.valueField]){row.setAttribute("value",data[i][this.valueField]);}
+if(this.isSelected(data[i])){row.className=this.rowSelectedClass;row.setAttribute("selected","true");} else {if(this.enableAlternateRows&&i%2==1){row.className=this.rowAlternateClass;}}
+for(var j=0;j<this.columns.length;j++){var cell=document.createElement("td");cell.setAttribute("align", this.columns[j].align);cell.setAttribute("valign", this.columns[j].valign);dojo.html.disableSelection(cell);if(this.sortIndex==j){cell.className=this.columnSelected;}
+if(this.columns[j].sortType=="__markup__"){cell.innerHTML=data[i][this.columns[j].getField()];for(var k=0; k<cell.childNodes.length; k++){var node=cell.childNodes[k];if(node&&node.nodeType==dojo.html.ELEMENT_NODE){dojo.html.disableSelection(node);}}}else{if(this.columns[j].getType()==Date){var format=this.defaultDateFormat;if(this.columns[j].format) format=this.columns[j].format;cell.appendChild(document.createTextNode(dojo.date.strftime(data[i][this.columns[j].getField()], format)));}else{cell.appendChild(document.createTextNode(data[i][this.columns[j].getField()]));}}
+row.appendChild(cell);}
+body.appendChild(row);dojo.event.connect(row, "onclick", this, "onUISelect");}
+var minRows=parseInt(this.minRows);if (!isNaN(minRows) && minRows>0 && data.length<minRows){var mod=0;if(data.length%2==0) mod=1;var nRows=minRows-data.length;for(var i=0; i<nRows; i++){var row=document.createElement("tr");row.setAttribute("ignoreIfParsed","true");if(this.enableAlternateRows&&i%2==mod){row.className=this.rowAlternateClass;}
+for(var j=0;j<this.columns.length;j++){var cell=document.createElement("td");cell.appendChild(document.createTextNode("\u00A0"));row.appendChild(cell);}
+body.appendChild(row);}}},onSelect:function( e){},onUISelect:function( e){var row=dojo.html.getParentByType(e.target,"tr");var body=dojo.html.getParentByType(row,"tbody");if(this.enableMultipleSelect){if(e.metaKey||e.ctrlKey){if(this.isSelected(this.getObjectFromRow(row))){this.removeFromSelected(this.getObjectFromRow(row));row.removeAttribute("selected");}else{this.setSelectionByRow(row);row.setAttribute("selected","true");}}else if(e.shiftKey){var startRow;var rows=body.getElementsByTagName("tr");for(var i=0;i<rows.length;i++){if(rows[i].parentNode==body){if(rows[i]==row) break;if(dojo.html.getAttribute(rows[i],"selected")=="true"){startRow=rows[i];}}}
+if(!startRow){startRow=row;for(;i<rows.length;i++){if(dojo.html.getAttribute(rows[i],"selected")=="true"){row=rows[i];break;}}}
+this.resetSelections(body);if(startRow==row){row.setAttribute("selected","true");this.setSelectionByRow(row);}else{var doSelect=false;for(var i=0; i<rows.length; i++){if(rows[i].parentNode==body){rows[i].removeAttribute("selected");if(rows[i]==startRow){doSelect=true;}
+if(doSelect){this.setSelectionByRow(rows[i]);rows[i].setAttribute("selected","true");}
+if(rows[i]==row){doSelect=false;}}}}}else{this.resetSelections(body);row.setAttribute("selected","true");this.setSelectionByRow(row);}}else{this.resetSelections(body);row.setAttribute("selected","true");this.setSelectionByRow(row);}
+this.showSelections();this.onSelect(e);e.stopPropagation();e.preventDefault();},onHeaderClick:function( e){var oldIndex=this.sortIndex;var oldDirection=this.sortDirection;var source=e.target;var row=dojo.html.getParentByType(source,"tr");var cellTag="td";if(row.getElementsByTagName(cellTag).length==0) cellTag="th";var headers=row.getElementsByTagName(cellTag);var header=dojo.html.getParentByType(source,cellTag);for(var i=0; i<headers.length; i++){if(headers[i]==header){if(i!=oldIndex){this.sortIndex=i;this.sortDirection=0;headers[i].className=this.headerSortDownClass}else{this.sortDirection=(oldDirection==0)?1:0;if(this.sortDirection==0){headers[i].className=this.headerSortDownClass;}else{headers[i].className=this.headerSortUpClass;}}}else{headers[i].className=this.headerClass;}}
+this.render();},postCreate:function(){var thead=this.domNode.getElementsByTagName("thead")[0];if(this.headClass.length>0){thead.className=this.headClass;}
+dojo.html.disableSelection(this.domNode);this.parseColumns(thead);var header="td";if(thead.getElementsByTagName(header).length==0) header="th";var headers=thead.getElementsByTagName(header);for(var i=0; i<headers.length; i++){if(!this.columns[i].noSort){dojo.event.connect(headers[i], "onclick", this, "onHeaderClick");}
+if(this.sortIndex==i){if(this.sortDirection==0){headers[i].className=this.headerSortDownClass;}else{headers[i].className=this.headerSortUpClass;}}}
+var tbody=this.domNode.getElementsByTagName("tbody")[0];if (this.tbodyClass.length>0) {tbody.className=this.tbodyClass;}
+this.parseDataFromTable(tbody);this.render(true);}}
+);
\ No newline at end of file

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

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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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,virtualSizer: null,isHorizontal: null,paneBefore: null,paneAfter: null,isSizing: false,dragOffset: 0,startPoint: 0,lastPoint: 0,sizingSplitter: null,screenToClientOffset: 0,isDraggingLeft: 0,templateCssPath: dojo.uri.dojoUri("src/widget/templates/SplitContainer.css"),originPos: 0,activeSizing: false,sizerWidth: 15,orientation: 'horizontal',persist: true,debugName: '',fillInTemplate: function(){dojo.html.insertCssFile(this.templateCssPath, null, true);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;this.isHorizontal = (this.orientation == 'horizontal');},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){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, overrideContainerNode, pos, ref, insertIndex){dojo.widget.SplitContainer.superclass.addChild.call(this, widget, overrideContainerNode, pos, ref, insertIndex);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].domNode, pos, size);this.children[0].position = pos;this.children[0].checkSize();pos += size;for(var i=1; i<this.children.length; i++){this.movePanel(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].domNode, pos, size);this.children[i].position = pos;this.children[i].checkSize();pos += size;}},movePanel: function(panel, pos, size){if (this.isHorizontal){panel.style.left = pos + 'px';panel.style.top = 0;dojo.html.setMarginBox(panel, { width: size, height: this.paneHeight });}else{panel.style.left = 0;panel.style.top = pos + 'px';dojo.html.setMarginBox(panel, { width: this.paneWidth, height: size });}},growPane: function(growth, pane){if (growth > 0){if (pane.sizeActual > pane.sizeMin){if ((pane.si
 zeActual - 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) ? 1 : 0;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.Widg
 et, {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=468816
==============================================================================
--- 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 Oct 28 18:52:42 2006
@@ -0,0 +1,24 @@
+
+dojo.provide("dojo.widget.SvgButton");dojo.require("dojo.widget.Button");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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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.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=468816
==============================================================================
--- 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 Oct 28 18:52:42 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("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.SwtWidget.prototype.display;sh.open();while(!sh.isDisposed()){dojo.widget.manag
 er.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=468816
==============================================================================
--- 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 Oct 28 18:52:42 2006
@@ -0,0 +1,25 @@
+
+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"),selectedTab: "",postMixInProperties: function() {if(this.selectedTab){dojo.deprecated("selectedTab deprecated, use selectedChild instead, will be removed in", "0.5");this.selectedChild=this.selectedTab;}
+if(this.closeButton!="none"){dojo.deprecated("closeButton deprecated, use closable='true' on each child instead, will be removed in", "0.5");}
+dojo.widget.TabContainer.superclass.postMixInProperties.apply(this, arguments);},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);}},selectTab: function(tab, callingWidget){dojo.deprecated("use selectChild() rather than selectTab(), selectTab() will be removed in", "0.5");this.selectChild(tab, callingWidget);},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);}});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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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',widgetId: "",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: "none",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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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");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,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=468816
==============================================================================
--- 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 Oct 28 18:52:42 2006
@@ -0,0 +1,18 @@
+
+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");dojo.requireLocalization("dojo.widget", "TimePicker");dojo.widget.defineWidget(
+"dojo.widget.TimePicker",dojo.widget.HtmlWidget,function(){this.time = "";this.useDefaultTime = false;this.useDefaultMinutes = false;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"),fillInTemplate: function(args, frag){var source = this.getFragNodeRef(frag);dojo.html.copyStyle(this.domNode, source);this.initData();this.initUI();},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 = d
 ojo.i18n.getLocalization("dojo.widget", "TimePicker", this.lang);},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);} else if (this.useDefaultTime) {this.time = dojo.widget.TimePicker.util.fromRfcDateTime("", this.useDefaultMinutes, this.selectedTime.anyTime);} else {this.selectedTime.anyTime = true;this.time = dojo.widget.TimePicker.util.fromRfcDateTime("", 0, 1);}},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 = parseInt(minute/5);this.onSetSelectedHour(this.hourIndexMap[hour]);this.onSetSelectedMinute(this.minuteIndexMap[minuteIndex]);this.onSetSelectedAm
 Pm(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);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.getElementsByTagName("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));}}});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) {var tempDate = new Date();if(!rfcDate || rfcDate.indexOf("T")==-1) {if(useDefaultMinutes) {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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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,{labelNode: "",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=468816
==============================================================================
--- 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 Oct 28 18:52:42 2006
@@ -0,0 +1,24 @@
+
+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"),clipNode: null,messageTopic: "",contentNode: null,_scrollConnected: false,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"],showDelay: 2000,slideAnim: null,fadeAnim: null,bgIframe: null,postCreate: function(){this.hide();dojo.html.setClass(this.c
 lipNode, 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["delay"]);}},setContent: function(msg, messageType, delay){var delay = delay||this.showDelay;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.stop();}
+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"){this.contentNode.innerHTML = msg;}else if(dojo.html.isNode(msg)){this.contentNode.innerHTML = dojo.html.getContentAsString(msg);}else{dojo.raise("Toaster.setContent(): msg is of unknown type:" + msg);}
+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.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){dojo.lang.setTimeout(dojo.lang.hitch(this, function(evt){if(this.bgIframe){this.bgIframe.hide();}
+this.fadeAnim = dojo.lfx.html.fadeOut(
+this.containerNode,1000,null,dojo.lang.hitch(this, function(evt){this.hide();})).play();}), delay);})).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.containerNode);this.bgIframe.setZIndex(this.containerNode);}
+this.bgIframe.onResized();this.bgIframe.show();}},onSelect: function(e) { },onScroll: function(){this.placeClip();},show: function(){dojo.widget.Toaster.superclass.show.call(this);this.placeClip();if(!this._scrollConnected){this._scrollConnected = true;dojo.event.connect(window, "onscroll", this, "onScroll");}},hide: function(){dojo.widget.Toaster.superclass.hide.call(this);if(this._scrollConnected){this._scrollConnected = false;dojo.event.disconnect(window, "onscroll", this, "onScroll");}
+dojo.html.setOpacity(this.containerNode, 1.0);}},"html"
+);
\ 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=468816
==============================================================================
--- 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 Oct 28 18:52:42 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