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 [21/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/DomWidget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,78 @@
+
+dojo.provide("dojo.widget.DomWidget");dojo.require("dojo.event.*");dojo.require("dojo.io.*");dojo.require("dojo.widget.Widget");dojo.require("dojo.dom");dojo.require("dojo.html.style");dojo.require("dojo.xml.Parse");dojo.require("dojo.uri.*");dojo.require("dojo.lang.func");dojo.require("dojo.lang.extras");dojo.widget._cssFiles = {};dojo.widget._cssStrings = {};dojo.widget._templateCache = {};dojo.widget.defaultStrings = {dojoRoot: dojo.hostenv.getBaseScriptUri(),baseScriptUri: dojo.hostenv.getBaseScriptUri()};dojo.widget.fillFromTemplateCache = function(					obj,templatePath,templateString,avoidCache){var tpath = templatePath || obj.templatePath;var tmplts = dojo.widget._templateCache;if(!obj["widgetType"]) {do {var dummyName = "__dummyTemplate__" + dojo.widget._templateCache.dummyCount++;} while(tmplts[dummyName]);obj.widgetType = dummyName;}
+var wt = obj.widgetType;var ts = tmplts[wt];if(!ts){tmplts[wt] = { "string": null, "node": null };if(avoidCache){ts = {};}else{ts = tmplts[wt];}}
+if((!obj.templateString)&&(!avoidCache)){obj.templateString = templateString || ts["string"];}
+if((!obj.templateNode)&&(!avoidCache)){obj.templateNode = ts["node"];}
+if((!obj.templateNode)&&(!obj.templateString)&&(tpath)){var tstring = dojo.hostenv.getText(tpath);if(tstring){tstring = tstring.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, "");var matches = tstring.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(matches){tstring = matches[1];}}else{tstring = "";}
+obj.templateString = tstring;if(!avoidCache){tmplts[wt]["string"] = tstring;}}
+if((!ts["string"])&&(!avoidCache)){ts.string = obj.templateString;}}
+dojo.widget._templateCache.dummyCount = 0;dojo.widget.attachProperties = ["dojoAttachPoint", "id"];dojo.widget.eventAttachProperty = "dojoAttachEvent";dojo.widget.onBuildProperty = "dojoOnBuild";dojo.widget.waiNames  = ["waiRole", "waiState"];dojo.widget.wai = {waiRole: {name: "waiRole","namespace": "http://www.w3.org/TR/xhtml2",alias: "x2",prefix: "wairole:"},waiState: {name: "waiState","namespace": "http://www.w3.org/2005/07/aaa",alias: "aaa",prefix: ""},setAttr: function(node,  ns,  attr, value){if(dojo.render.html.ie){node.setAttribute(this[ns].alias+":"+ attr, this[ns].prefix+value);}else{node.setAttributeNS(this[ns]["namespace"], attr, this[ns].prefix+value);}},getAttr: function( node,  ns,  attr){if(dojo.render.html.ie){return node.getAttribute(this[ns].alias+":"+attr);}else{return node.getAttributeNS(this[ns]["namespace"], attr);}},removeAttr: function( node,  ns,  attr){var success = true;if(dojo.render.html.ie){success = node.removeAttribute(this[ns].alias+":"+attr
 );}else{node.removeAttributeNS(this[ns]["namespace"], attr);}
+return success;}};dojo.widget.attachTemplateNodes = function(			rootNode,targetObj,events ){var elementNodeType = dojo.dom.ELEMENT_NODE;function trim(str){return str.replace(/^\s+|\s+$/g, "");}
+if(!rootNode){rootNode = targetObj.domNode;}
+if(rootNode.nodeType != elementNodeType){return;}
+var nodes = rootNode.all || rootNode.getElementsByTagName("*");var _this = targetObj;for(var x=-1; x<nodes.length; x++){var baseNode = (x == -1) ? rootNode : nodes[x];var attachPoint = [];if(!targetObj.widgetsInTemplate || !baseNode.getAttribute('dojoType')){for(var y=0; y<this.attachProperties.length; y++){var tmpAttachPoint = baseNode.getAttribute(this.attachProperties[y]);if(tmpAttachPoint){attachPoint = tmpAttachPoint.split(";");for(var z=0; z<attachPoint.length; z++){if(dojo.lang.isArray(targetObj[attachPoint[z]])){targetObj[attachPoint[z]].push(baseNode);}else{targetObj[attachPoint[z]]=baseNode;}}
+break;}}
+var attachEvent = baseNode.getAttribute(this.eventAttachProperty);if(attachEvent){var evts = attachEvent.split(";");for(var y=0; y<evts.length; y++){if((!evts[y])||(!evts[y].length)){ continue; }
+var thisFunc = null;var tevt = trim(evts[y]);if(evts[y].indexOf(":") >= 0){var funcNameArr = tevt.split(":");tevt = trim(funcNameArr[0]);thisFunc = trim(funcNameArr[1]);}
+if(!thisFunc){thisFunc = tevt;}
+var tf = function(){var ntf = new String(thisFunc);return function(evt){if(_this[ntf]){_this[ntf](dojo.event.browser.fixEvent(evt, this));}};}();dojo.event.browser.addListener(baseNode, tevt, tf, false, true);}}
+for(var y=0; y<events.length; y++){var evtVal = baseNode.getAttribute(events[y]);if((evtVal)&&(evtVal.length)){var thisFunc = null;var domEvt = events[y].substr(4);thisFunc = trim(evtVal);var funcs = [thisFunc];if(thisFunc.indexOf(";")>=0){funcs = dojo.lang.map(thisFunc.split(";"), trim);}
+for(var z=0; z<funcs.length; z++){if(!funcs[z].length){ continue; }
+var tf = function(){var ntf = new String(funcs[z]);return function(evt){if(_this[ntf]){_this[ntf](dojo.event.browser.fixEvent(evt, this));}}}();dojo.event.browser.addListener(baseNode, domEvt, tf, false, true);}}}}
+var tmpltPoint = baseNode.getAttribute(this.templateProperty);if(tmpltPoint){targetObj[tmpltPoint]=baseNode;}
+dojo.lang.forEach(dojo.widget.waiNames, function(name){var wai = dojo.widget.wai[name];var val = baseNode.getAttribute(wai.name);if(val){if(val.indexOf('-') == -1){dojo.widget.wai.setAttr(baseNode, wai.name, "role", val);}else{var statePair = val.split('-');dojo.widget.wai.setAttr(baseNode, wai.name, statePair[0], statePair[1]);}}}, this);var onBuild = baseNode.getAttribute(this.onBuildProperty);if(onBuild){eval("var node = baseNode; var widget = targetObj; "+onBuild);}}}
+dojo.widget.getDojoEventsFromStr = function(str){var re = /(dojoOn([a-z]+)(\s?))=/gi;var evts = str ? str.match(re)||[] : [];var ret = [];var lem = {};for(var x=0; x<evts.length; x++){if(evts[x].length < 1){ continue; }
+var cm = evts[x].replace(/\s/, "");cm = (cm.slice(0, cm.length-1));if(!lem[cm]){lem[cm] = true;ret.push(cm);}}
+return ret;}
+dojo.declare("dojo.widget.DomWidget",dojo.widget.Widget,function(){if((arguments.length>0)&&(typeof arguments[0] == "object")){this.create(arguments[0]);}},{templateNode: null,templateString: null,templateCssString: null,preventClobber: false,domNode: null,containerNode: null,widgetsInTemplate: false,addChild: function(					widget,overrideContainerNode,pos,ref,insertIndex){if(!this.isContainer){dojo.debug("dojo.widget.DomWidget.addChild() attempted on non-container widget");return null;}else{if(insertIndex == undefined){insertIndex = this.children.length;}
+this.addWidgetAsDirectChild(widget, overrideContainerNode, pos, ref, insertIndex);this.registerChild(widget, insertIndex);}
+return widget;},addWidgetAsDirectChild: function(					widget,overrideContainerNode,pos,ref,insertIndex){if((!this.containerNode)&&(!overrideContainerNode)){this.containerNode = this.domNode;}
+var cn = (overrideContainerNode) ? overrideContainerNode : this.containerNode;if(!pos){ pos = "after"; }
+if(!ref){if(!cn){ cn = dojo.body(); }
+ref = cn.lastChild;}
+if(!insertIndex) { insertIndex = 0; }
+widget.domNode.setAttribute("dojoinsertionindex", insertIndex);if(!ref){cn.appendChild(widget.domNode);}else{if (pos == 'insertAtIndex'){dojo.dom.insertAtIndex(widget.domNode, ref.parentNode, insertIndex);}else{if((pos == "after")&&(ref === cn.lastChild)){cn.appendChild(widget.domNode);}else{dojo.dom.insertAtPosition(widget.domNode, cn, pos);}}}},registerChild: function(widget, insertionIndex){widget.dojoInsertionIndex = insertionIndex;var idx = -1;for(var i=0; i<this.children.length; i++){if (this.children[i].dojoInsertionIndex <= insertionIndex){idx = i;}}
+this.children.splice(idx+1, 0, widget);widget.parent = this;widget.addedTo(this, idx+1);delete dojo.widget.manager.topWidgets[widget.widgetId];},removeChild: function(widget){dojo.dom.removeNode(widget.domNode);return dojo.widget.DomWidget.superclass.removeChild.call(this, widget);},getFragNodeRef: function(frag){if(!frag){return null;}
+if(!frag[this.getNamespacedType()]){dojo.raise("Error: no frag for widget type " + this.getNamespacedType()
++ ", id " + this.widgetId
++ " (maybe a widget has set it's type incorrectly)");}
+return frag[this.getNamespacedType()]["nodeRef"];},postInitialize: function(args, frag, parentComp){var sourceNodeRef = this.getFragNodeRef(frag);if (parentComp && (parentComp.snarfChildDomOutput || !sourceNodeRef)){parentComp.addWidgetAsDirectChild(this, "", "insertAtIndex", "",  args["dojoinsertionindex"], sourceNodeRef);} else if (sourceNodeRef){if(this.domNode && (this.domNode !== sourceNodeRef)){var oldNode = sourceNodeRef.parentNode.replaceChild(this.domNode, sourceNodeRef);}}
+if ( parentComp ) {parentComp.registerChild(this, args.dojoinsertionindex);} else {dojo.widget.manager.topWidgets[this.widgetId]=this;}
+if(this.widgetsInTemplate){var parser = new dojo.xml.Parse();var subContainerNode;var subnodes = this.domNode.getElementsByTagName("*");for(var i=0;i<subnodes.length;i++){if(subnodes[i].getAttribute('dojoAttachPoint') == 'subContainerWidget'){subContainerNode = subnodes[i];}
+if(subnodes[i].getAttribute('dojoType')){subnodes[i].setAttribute('_isSubWidget', true);}}
+if (this.isContainer && !this.containerNode){if(subContainerNode){var src = this.getFragNodeRef(frag);if (src){dojo.dom.moveChildren(src, subContainerNode);frag['dojoDontFollow'] = true;}}else{dojo.debug("No subContainerWidget node can be found in template file for widget "+this);}}
+var templatefrag = parser.parseElement(this.domNode, null, true);dojo.widget.getParser().createSubComponents(templatefrag, this);var subwidgets = [];var stack = [this];var w;while((w = stack.pop())){for(var i = 0; i < w.children.length; i++){var cwidget = w.children[i];if(cwidget._processedSubWidgets || !cwidget.extraArgs['_issubwidget']){ continue; }
+subwidgets.push(cwidget);if(cwidget.isContainer){stack.push(cwidget);}}}
+for(var i = 0; i < subwidgets.length; i++){var widget = subwidgets[i];if(widget._processedSubWidgets){dojo.debug("This should not happen: widget._processedSubWidgets is already true!");return;}
+widget._processedSubWidgets = true;if(widget.extraArgs['dojoattachevent']){var evts = widget.extraArgs['dojoattachevent'].split(";");for(var j=0; j<evts.length; j++){var thisFunc = null;var tevt = dojo.string.trim(evts[j]);if(tevt.indexOf(":") >= 0){var funcNameArr = tevt.split(":");tevt = dojo.string.trim(funcNameArr[0]);thisFunc = dojo.string.trim(funcNameArr[1]);}
+if(!thisFunc){thisFunc = tevt;}
+if(dojo.lang.isFunction(widget[tevt])){dojo.event.kwConnect({srcObj: widget,srcFunc: tevt,targetObj: this,targetFunc: thisFunc});}else{alert(tevt+" is not a function in widget "+widget);}}}
+if(widget.extraArgs['dojoattachpoint']){this[widget.extraArgs['dojoattachpoint']] = widget;}}}
+if(this.isContainer && !frag["dojoDontFollow"]){dojo.widget.getParser().createSubComponents(frag, this);}},buildRendering: function(args, frag){var ts = dojo.widget._templateCache[this.widgetType];if(args["templatecsspath"]){args["templateCssPath"] = args["templatecsspath"];}
+var cpath = args["templateCssPath"] || this.templateCssPath;if(cpath && !dojo.widget._cssFiles[cpath.toString()]){if((!this.templateCssString)&&(cpath)){this.templateCssString = dojo.hostenv.getText(cpath);this.templateCssPath = null;}
+dojo.widget._cssFiles[cpath.toString()] = true;}
+if((this["templateCssString"])&&(!this.templateCssString["loaded"])){dojo.html.insertCssText(this.templateCssString, null, cpath);if(!this.templateCssString){ this.templateCssString = ""; }
+this.templateCssString.loaded = true;}
+if(
+(!this.preventClobber)&&(
+(this.templatePath)||
+(this.templateNode)||
+(
+(this["templateString"])&&(this.templateString.length)
+)||
+(
+(typeof ts != "undefined")&&( (ts["string"])||(ts["node"]) )
+)
+)
+){this.buildFromTemplate(args, frag);}else{this.domNode = this.getFragNodeRef(frag);}
+this.fillInTemplate(args, frag);},buildFromTemplate: function(args, frag){var avoidCache = false;if(args["templatepath"]){avoidCache = true;args["templatePath"] = args["templatepath"];}
+dojo.widget.fillFromTemplateCache(	this,args["templatePath"],null,avoidCache);var ts = dojo.widget._templateCache[this.widgetType];if((ts)&&(!avoidCache)){if(!this.templateString.length){this.templateString = ts["string"];}
+if(!this.templateNode){this.templateNode = ts["node"];}}
+var matches = false;var node = null;var tstr = this.templateString;if((!this.templateNode)&&(this.templateString)){matches = this.templateString.match(/\$\{([^\}]+)\}/g);if(matches) {var hash = this.strings || {};for(var key in dojo.widget.defaultStrings) {if(dojo.lang.isUndefined(hash[key])) {hash[key] = dojo.widget.defaultStrings[key];}}
+for(var i = 0; i < matches.length; i++) {var key = matches[i];key = key.substring(2, key.length-1);var kval = (key.substring(0, 5) == "this.") ? dojo.lang.getObjPathValue(key.substring(5), this) : hash[key];var value;if((kval)||(dojo.lang.isString(kval))){value = new String((dojo.lang.isFunction(kval)) ? kval.call(this, key, this.templateString) : kval);while (value.indexOf("\"") > -1) {value=value.replace("\"","&quot;");}
+tstr = tstr.replace(matches[i], value);}}}else{this.templateNode = this.createNodesFromText(this.templateString, true)[0];if(!avoidCache){ts.node = this.templateNode;}}}
+if((!this.templateNode)&&(!matches)){dojo.debug("DomWidget.buildFromTemplate: could not create template");return false;}else if(!matches){node = this.templateNode.cloneNode(true);if(!node){ return false; }}else{node = this.createNodesFromText(tstr, true)[0];}
+this.domNode = node;this.attachTemplateNodes();if (this.isContainer && this.containerNode){var src = this.getFragNodeRef(frag);if (src){dojo.dom.moveChildren(src, this.containerNode);}}},attachTemplateNodes: function(baseNode, targetObj){if(!baseNode){ baseNode = this.domNode; }
+if(!targetObj){ targetObj = this; }
+return dojo.widget.attachTemplateNodes(baseNode, targetObj,dojo.widget.getDojoEventsFromStr(this.templateString));},fillInTemplate: function(){},destroyRendering: function(){try{delete this.domNode;}catch(e){  }},createNodesFromText: function(){dojo.unimplemented("dojo.widget.DomWidget.createNodesFromText");}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.DropdownContainer");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.PopupContainer");dojo.require("dojo.event.*");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.html.iframe");dojo.require("dojo.html.util");dojo.widget.defineWidget(
+"dojo.widget.DropdownContainer",dojo.widget.HtmlWidget,{inputWidth: "7em",id: "",inputId: "",inputName: "",iconURL: dojo.uri.dojoUri("src/widget/templates/images/combo_box_arrow.png"),iconAlt: "",containerToggle: "plain",containerToggleDuration: 150,templateString: '<span style="white-space:nowrap"><input type="hidden" name="" value="" dojoAttachPoint="valueNode" /><input name="" type="text" value="" style="vertical-align:middle;" dojoAttachPoint="inputNode" autocomplete="off" /> <img src="${this.iconURL}" alt="${this.iconAlt}" dojoAttachEvent="onclick:onIconClick" dojoAttachPoint="buttonNode" style="vertical-align:middle; cursor:pointer; cursor:hand" /></span>',templateCssPath: "",isContainer: true,attachTemplateNodes: function(){dojo.widget.DropdownContainer.superclass.attachTemplateNodes.apply(this, arguments);this.popup = dojo.widget.createWidget("PopupContainer", {toggle: this.containerToggle, toggleDuration: this.containerToggleDuration});this.containerNode = this.popu
 p.domNode;},fillInTemplate: function(){this.domNode.appendChild(this.popup.domNode);if(this.id) { this.domNode.id = this.id; }
+if(this.inputId){ this.inputNode.id = this.inputId; }
+if(this.inputName){ this.inputNode.name = this.inputName; }
+this.inputNode.style.width = this.inputWidth;dojo.event.connect(this.inputNode, "onchange", this, "onInputChange");},onIconClick: function( evt){if(!this.popup.isShowingNow){this.popup.open(this.inputNode, this, this.buttonNode);}else{this.popup.close();}},hideContainer: function(){if(this.popup.isShowingNow){this.popup.close();}},onInputChange: function(){}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.widget.DropdownDatePicker");dojo.require("dojo.widget.*");dojo.require("dojo.widget.DropdownContainer");dojo.require("dojo.widget.DatePicker");dojo.require("dojo.event.*");dojo.require("dojo.html.*");dojo.require("dojo.date.format");dojo.require("dojo.date.serialize");dojo.require("dojo.string.common");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "DropdownDatePicker");dojo.widget.defineWidget(
+"dojo.widget.DropdownDatePicker",dojo.widget.DropdownContainer,{iconURL: dojo.uri.dojoUri("src/widget/templates/images/dateIcon.gif"),zIndex: "10",formatLength: "short",displayFormat: "",dateFormat: "",saveFormat: "",value: "",name: "",displayWeeks: 6,adjustWeeks: false,startDate: "1492-10-12",endDate: "2941-10-12",weekStartsOn: "",staticDisplay: false,postMixInProperties: function(localProperties, frag){dojo.widget.DropdownDatePicker.superclass.postMixInProperties.apply(this, arguments);var messages = dojo.i18n.getLocalization("dojo.widget", "DropdownDatePicker", this.lang);this.iconAlt = messages.selectDate;if(typeof(this.value)=='string'&&this.value.toLowerCase()=='today'){this.value = new Date();}
+if(this.value && isNaN(this.value)){var orig = this.value;this.value = dojo.date.fromRfc3339(this.value);if(!this.value){this.value = new Date(orig); dojo.deprecated("dojo.widget.DropdownDatePicker", "date attributes must be passed in Rfc3339 format", "0.5");}}
+if(this.value && !isNaN(this.value)){this.value = new Date(this.value);}},fillInTemplate: function(args, frag){dojo.widget.DropdownDatePicker.superclass.fillInTemplate.call(this, args, frag);var dpArgs = {widgetContainerId: this.widgetId, lang: this.lang, value: this.value,startDate: this.startDate, endDate: this.endDate, displayWeeks: this.displayWeeks,weekStartsOn: this.weekStartsOn, adjustWeeks: this.adjustWeeks, staticDisplay: this.staticDisplay};this.datePicker = dojo.widget.createWidget("DatePicker", dpArgs, this.containerNode, "child");dojo.event.connect(this.datePicker, "onValueChanged", this, "_updateText");if(this.value){this._updateText();}
+this.containerNode.style.zIndex = this.zIndex;this.containerNode.explodeClassName = "calendarBodyContainer";this.valueNode.name=this.name;},getValue: function(){return this.valueNode.value;},getDate: function(){return this.datePicker.value;},setValue: function(rfcDate){this.setDate(rfcDate);},setDate: function(dateObj){this.datePicker.setDate(dateObj);this._syncValueNode();},_updateText: function(){if(this.dateFormat){dojo.deprecated("dojo.widget.DropdownDatePicker","Must use displayFormat attribute instead of dateFormat.  See dojo.date.format for specification.", "0.5");this.inputNode.value = dojo.date.strftime(this.datePicker.value, this.dateFormat, this.lang);}else{this.inputNode.value = dojo.date.format(this.datePicker.value,{formatLength:this.formatLength, datePattern:this.displayFormat, selector:'dateOnly', locale:this.lang});}
+if(this.value < this.datePicker.startDate||this.value>this.datePicker.endDate){this.inputNode.value = "";}
+this._syncValueNode();this.onValueChanged(this.getDate());this.hideContainer();},onValueChanged: function(dateObj){},onInputChange: function(){if(this.dateFormat){dojo.deprecated("dojo.widget.DropdownDatePicker","Cannot parse user input.  Must use displayFormat attribute instead of dateFormat.  See dojo.date.format for specification.", "0.5");}else{var input = dojo.string.trim(this.inputNode.value);if(input){var inputDate = dojo.date.parse(input,{formatLength:this.formatLength, datePattern:this.displayFormat, selector:'dateOnly', locale:this.lang});if(inputDate){this.setDate(inputDate);}} else {this.valueNode.value = input;}}
+if(input){ this._updateText(); }},_syncValueNode: function(){var date = this.datePicker.value;var value;switch(this.saveFormat.toLowerCase()){case "rfc": case "iso": case "":
+value = dojo.date.toRfc3339(date, 'dateOnly');break;case "posix": case "unix":
+value = Number(date);break;default:
+value = dojo.date.format(date, {datePattern:this.saveFormat, selector:'dateOnly', locale:this.lang});}
+this.valueNode.value = value;},enable: function() {this.inputNode.disabled = false;this.datePicker.enable();dojo.widget.DropdownDatePicker.superclass.enable.apply(this, arguments);},disable: function() {this.inputNode.disabled = true;this.datePicker.disable();dojo.widget.DropdownDatePicker.superclass.disable.apply(this, arguments);},destroy: function(finalize){this.datePicker.destroy(finalize);dojo.widget.DropdownDatePicker.superclass.destroy.apply(this, arguments);}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownTimePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownTimePicker.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownTimePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownTimePicker.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.widget.DropdownTimePicker");dojo.require("dojo.widget.*");dojo.require("dojo.widget.DropdownContainer");dojo.require("dojo.widget.TimePicker");dojo.require("dojo.event.*");dojo.require("dojo.html.*");dojo.require("dojo.date.format");dojo.require("dojo.date.serialize");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "DropdownTimePicker");dojo.widget.defineWidget(
+"dojo.widget.DropdownTimePicker",dojo.widget.DropdownContainer,{iconURL: dojo.uri.dojoUri("src/widget/templates/images/timeIcon.gif"),zIndex: "10",displayFormat: "",timeFormat: "",formatLength: "short",value: "",postMixInProperties: function() {dojo.widget.DropdownTimePicker.superclass.postMixInProperties.apply(this, arguments);var messages = dojo.i18n.getLocalization("dojo.widget", "DropdownTimePicker", this.lang);this.iconAlt = messages.selectTime;},fillInTemplate: function(){dojo.widget.DropdownTimePicker.superclass.fillInTemplate.apply(this, arguments);var timeProps = { widgetContainerId: this.widgetId, lang: this.lang };this.timePicker = dojo.widget.createWidget("TimePicker", timeProps, this.containerNode, "child");dojo.event.connect(this.timePicker, "onSetTime", this, "onSetTime");dojo.event.connect(this.inputNode,  "onchange",  this, "onInputChange");this.containerNode.style.zIndex = this.zIndex;this.containerNode.explodeClassName = "timeBorder";if(this.value){this.ti
 mePicker.selectedTime.anyTime = false;this.timePicker.setDateTime("2005-01-01T" + this.value);this.timePicker.initData();this.timePicker.initUI();this.onSetTime();}},onSetTime: function(){if(this.timePicker.selectedTime.anyTime){this.inputNode.value = "";}else if(this.timeFormat){dojo.deprecated("dojo.widget.DropdownTimePicker","Must use displayFormat attribute instead of timeFormat.  See dojo.date.format for specification.", "0.5");this.inputNode.value = dojo.date.strftime(this.timePicker.time, this.timeFormat, this.lang);}else{this.inputNode.value = dojo.date.format(this.timePicker.time,{formatLength:this.formatLength, timePattern:this.displayFormat, selector:'timeOnly', locale:this.lang});}
+this.hideContainer();},onInputChange: function(){this.timePicker.time = "2005-01-01T" + this.inputNode.value;this.timePicker.setDateTime(this.timePicker.time);this.timePicker.initData();this.timePicker.initUI();},enable: function() {this.inputNode.disabled = false;this.timePicker.enable();dojo.widget.DropdownTimePicker.superclass.enable.apply(this, arguments);},disable: function() {this.inputNode.disabled = true;this.timePicker.disable();dojo.widget.DropdownTimePicker.superclass.disable.apply(this, arguments);}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,46 @@
+
+dojo.provide("dojo.widget.Editor");dojo.deprecated("dojo.widget.Editor", "is replaced by dojo.widget.Editor2", "0.5");dojo.require("dojo.io.*");dojo.require("dojo.widget.*");dojo.require("dojo.widget.Toolbar");dojo.require("dojo.widget.RichText");dojo.require("dojo.widget.ColorPalette");dojo.require("dojo.string.extras");dojo.widget.tags.addParseTreeHandler("dojo:Editor");dojo.widget.Editor = function() {dojo.widget.HtmlWidget.call(this);this.contentFilters = [];this._toolbars = [];}
+dojo.inherits(dojo.widget.Editor, dojo.widget.HtmlWidget);dojo.widget.Editor.itemGroups = {textGroup: ["bold", "italic", "underline", "strikethrough"],blockGroup: ["formatBlock", "fontName", "fontSize"],justifyGroup: ["justifyleft", "justifycenter", "justifyright"],commandGroup: ["save", "cancel"],colorGroup: ["forecolor", "hilitecolor"],listGroup: ["insertorderedlist", "insertunorderedlist"],indentGroup: ["outdent", "indent"],linkGroup: ["createlink", "insertimage", "inserthorizontalrule"]};dojo.widget.Editor.formatBlockValues = {"Normal": "p","Main heading": "h2","Sub heading": "h3","Sub sub heading": "h4","Preformatted": "pre"};dojo.widget.Editor.fontNameValues = {"Arial": "Arial, Helvetica, sans-serif","Verdana": "Verdana, sans-serif","Times New Roman": "Times New Roman, serif","Courier": "Courier New, monospace"};dojo.widget.Editor.fontSizeValues = {"1 (8 pt)" : "1","2 (10 pt)": "2","3 (12 pt)": "3","4 (14 pt)": "4","5 (18 pt)": "5","6 (24 pt)": "6","7 (36 pt)": "7"};do
 jo.widget.Editor.defaultItems = [
+"commandGroup", "|", "blockGroup", "|", "textGroup", "|", "colorGroup", "|", "justifyGroup", "|", "listGroup", "indentGroup", "|", "linkGroup"
+];dojo.widget.Editor.supportedCommands = ["save", "cancel", "|", "-", "/", " "];dojo.lang.extend(dojo.widget.Editor, {widgetType: "Editor",saveUrl: "",saveMethod: "post",saveArgName: "editorContent",closeOnSave: false,items: dojo.widget.Editor.defaultItems,formatBlockItems: dojo.lang.shallowCopy(dojo.widget.Editor.formatBlockValues),fontNameItems: dojo.lang.shallowCopy(dojo.widget.Editor.fontNameValues),fontSizeItems: dojo.lang.shallowCopy(dojo.widget.Editor.fontSizeValues),getItemProperties: function(name) {var props = {};switch(name.toLowerCase()) {case "bold":
+case "italic":
+case "underline":
+case "strikethrough":
+props.toggleItem = true;break;case "justifygroup":
+props.defaultButton = "justifyleft";props.preventDeselect = true;props.buttonGroup = true;break;case "listgroup":
+props.buttonGroup = true;break;case "save":
+case "cancel":
+props.label = dojo.string.capitalize(name);break;case "forecolor":
+case "hilitecolor":
+props.name = name;props.toggleItem = true;props.icon = this.getCommandImage(name);break;case "formatblock":
+props.name = "formatBlock";props.values = this.formatBlockItems;break;case "fontname":
+props.name = "fontName";props.values = this.fontNameItems;case "fontsize":
+props.name = "fontSize";props.values = this.fontSizeItems;}
+return props;},validateItems: true,focusOnLoad: true,minHeight: "1em",_richText: null,_richTextType: "RichText",_toolbarContainer: null,_toolbarContainerType: "ToolbarContainer",_toolbars: [],_toolbarType: "Toolbar",_toolbarItemType: "ToolbarItem",buildRendering: function(args, frag) {var node = frag["dojo:"+this.widgetType.toLowerCase()]["nodeRef"];var trt = dojo.widget.createWidget(this._richTextType, {focusOnLoad: this.focusOnLoad,minHeight: this.minHeight}, node)
+var _this = this;setTimeout(function(){_this.setRichText(trt);_this.initToolbar();_this.fillInTemplate(args, frag);}, 0);},setRichText: function(richText) {if(this._richText && this._richText == richText) {dojo.debug("Already set the richText to this richText!");return;}
+if(this._richText && !this._richText.isClosed) {dojo.debug("You are switching richTexts yet you haven't closed the current one. Losing reference!");}
+this._richText = richText;dojo.event.connect(this._richText, "close", this, "onClose");dojo.event.connect(this._richText, "onLoad", this, "onLoad");dojo.event.connect(this._richText, "onDisplayChanged", this, "updateToolbar");if(this._toolbarContainer) {this._toolbarContainer.enable();this.updateToolbar(true);}},initToolbar: function() {if(this._toolbarContainer) { return; }
+this._toolbarContainer = dojo.widget.createWidget(this._toolbarContainerType);var tb = this.addToolbar();var last = true;for(var i = 0; i < this.items.length; i++) {if(this.items[i] == "\n") {tb = this.addToolbar();} else {if((this.items[i] == "|")&&(!last)){last = true;}else{last = this.addItem(this.items[i], tb);}}}
+this.insertToolbar(this._toolbarContainer.domNode, this._richText.domNode);},insertToolbar: function(tbNode, richTextNode) {dojo.html.insertBefore(tbNode, richTextNode);},addToolbar: function(toolbar) {this.initToolbar();if(!(toolbar instanceof dojo.widget.Toolbar)) {toolbar = dojo.widget.createWidget(this._toolbarType);}
+this._toolbarContainer.addChild(toolbar);this._toolbars.push(toolbar);return toolbar;},addItem: function(item, tb, dontValidate) {if(!tb) { tb = this._toolbars[0]; }
+var cmd = ((item)&&(!dojo.lang.isUndefined(item["getValue"]))) ?  cmd = item["getValue"](): item;var groups = dojo.widget.Editor.itemGroups;if(item instanceof dojo.widget.ToolbarItem) {tb.addChild(item);} else if(groups[cmd]) {var group = groups[cmd];var worked = true;if(cmd == "justifyGroup" || cmd == "listGroup") {var btnGroup = [cmd];for(var i = 0 ; i < group.length; i++) {if(dontValidate || this.isSupportedCommand(group[i])) {btnGroup.push(this.getCommandImage(group[i]));}else{worked = false;}}
+if(btnGroup.length){var btn = tb.addChild(btnGroup, null, this.getItemProperties(cmd));dojo.event.connect(btn, "onClick", this, "_action");dojo.event.connect(btn, "onChangeSelect", this, "_action");}
+return worked;} else {for(var i = 0; i < group.length; i++) {if(!this.addItem(group[i], tb)){worked = false;}}
+return worked;}} else {if((!dontValidate)&&(!this.isSupportedCommand(cmd))){return false;}
+if(dontValidate || this.isSupportedCommand(cmd)) {cmd = cmd.toLowerCase();if(cmd == "formatblock") {var select = dojo.widget.createWidget("ToolbarSelect", {name: "formatBlock",values: this.formatBlockItems});tb.addChild(select);var _this = this;dojo.event.connect(select, "onSetValue", function(item, value) {_this.onAction("formatBlock", value);});} else if(cmd == "fontname") {var select = dojo.widget.createWidget("ToolbarSelect", {name: "fontName",values: this.fontNameItems});tb.addChild(select);dojo.event.connect(select, "onSetValue", dojo.lang.hitch(this, function(item, value) {this.onAction("fontName", value);}));} else if(cmd == "fontsize") {var select = dojo.widget.createWidget("ToolbarSelect", {name: "fontSize",values: this.fontSizeItems});tb.addChild(select);dojo.event.connect(select, "onSetValue", dojo.lang.hitch(this, function(item, value) {this.onAction("fontSize", value);}));} else if(dojo.lang.inArray(cmd, ["forecolor", "hilitecolor"])) {var btn = tb.addChild(doj
 o.widget.createWidget("ToolbarColorDialog", this.getItemProperties(cmd)));dojo.event.connect(btn, "onSetValue", this, "_setValue");} else {var btn = tb.addChild(this.getCommandImage(cmd), null, this.getItemProperties(cmd));if(cmd == "save"){dojo.event.connect(btn, "onClick", this, "_save");}else if(cmd == "cancel"){dojo.event.connect(btn, "onClick", this, "_close");} else {dojo.event.connect(btn, "onClick", this, "_action");dojo.event.connect(btn, "onChangeSelect", this, "_action");}}}}
+return true;},enableToolbar: function() {if(this._toolbarContainer) {this._toolbarContainer.domNode.style.display = "";this._toolbarContainer.enable();}},disableToolbar: function(hide){if(hide){if(this._toolbarContainer){this._toolbarContainer.domNode.style.display = "none";}}else{if(this._toolbarContainer){this._toolbarContainer.disable();}}},_updateToolbarLastRan: null,_updateToolbarTimer: null,_updateToolbarFrequency: 500,updateToolbar: function(force) {if(!this._toolbarContainer) { return; }
+var diff = new Date() - this._updateToolbarLastRan;if(!force && this._updateToolbarLastRan && (diff < this._updateToolbarFrequency)) {clearTimeout(this._updateToolbarTimer);var _this = this;this._updateToolbarTimer = setTimeout(function() {_this.updateToolbar();}, this._updateToolbarFrequency/2);return;} else {this._updateToolbarLastRan = new Date();}
+var items = this._toolbarContainer.getItems();for(var i = 0; i < items.length; i++) {var item = items[i];if(item instanceof dojo.widget.ToolbarSeparator) { continue; }
+var cmd = item._name;if (cmd == "save" || cmd == "cancel") { continue; }
+else if(cmd == "justifyGroup") {try {if(!this._richText.queryCommandEnabled("justifyleft")) {item.disable(false, true);} else {item.enable(false, true);var jitems = item.getItems();for(var j = 0; j < jitems.length; j++) {var name = jitems[j]._name;var value = this._richText.queryCommandValue(name);if(typeof value == "boolean" && value) {value = name;break;} else if(typeof value == "string") {value = "justify"+value;} else {value = null;}}
+if(!value) { value = "justifyleft"; }
+item.setValue(value, false, true);}} catch(err) {}} else if(cmd == "listGroup") {var litems = item.getItems();for(var j = 0; j < litems.length; j++) {this.updateItem(litems[j]);}} else {this.updateItem(item);}}},updateItem: function(item) {try {var cmd = item._name;var enabled = this._richText.queryCommandEnabled(cmd);item.setEnabled(enabled, false, true);var active = this._richText.queryCommandState(cmd);if(active && cmd == "underline") {active = !this._richText.queryCommandEnabled("unlink");}
+item.setSelected(active, false, true);return true;} catch(err) {return false;}},supportedCommands: dojo.widget.Editor.supportedCommands.concat(),isSupportedCommand: function(cmd) {var yes = dojo.lang.inArray(cmd, this.supportedCommands);if(!yes) {try {var richText = this._richText || dojo.widget.HtmlRichText.prototype;yes = richText.queryCommandAvailable(cmd);} catch(E) {}}
+return yes;},getCommandImage: function(cmd) {if(cmd == "|") {return cmd;} else {return dojo.uri.dojoUri("src/widget/templates/buttons/" + cmd + ".gif");}},_action: function(e) {this._fire("onAction", e.getValue());},_setValue: function(a, b) {this._fire("onAction", a.getValue(), b);},_save: function(e){if(!this._richText.isClosed){if(this.saveUrl.length){var content = {};content[this.saveArgName] = this.getHtml();dojo.io.bind({method: this.saveMethod,url: this.saveUrl,content: content});}else{dojo.debug("please set a saveUrl for the editor");}
+if(this.closeOnSave){this._richText.close(e.getName().toLowerCase() == "save");}}},_close: function(e) {if(!this._richText.isClosed) {this._richText.close(e.getName().toLowerCase() == "save");}},onAction: function(cmd, value) {switch(cmd) {case "createlink":
+if(!(value = prompt("Please enter the URL of the link:", "http://"))) {return;}
+break;case "insertimage":
+if(!(value = prompt("Please enter the URL of the image:", "http://"))) {return;}
+break;}
+this._richText.execCommand(cmd, value);},fillInTemplate: function(args, frag) {},_fire: function(eventName) {if(dojo.lang.isFunction(this[eventName])) {var args = [];if(arguments.length == 1) {args.push(this);} else {for(var i = 1; i < arguments.length; i++) {args.push(arguments[i]);}}
+this[eventName].apply(this, args);}},getHtml: function(){this._richText.contentFilters = this._richText.contentFilters.concat(this.contentFilters);return this._richText.getEditorContent();},getEditorContent: function(){return this.getHtml();},onClose: function(save, hide){this.disableToolbar(hide);if(save) {this._fire("onSave");} else {this._fire("onCancel");}},onLoad: function(){},onSave: function(){},onCancel: function(){}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,53 @@
+
+dojo.provide("dojo.widget.Editor2");dojo.require("dojo.io.*");dojo.require("dojo.html.*");dojo.require("dojo.html.layout");dojo.require("dojo.widget.*");dojo.require("dojo.widget.RichText");dojo.require("dojo.widget.Editor2Toolbar");dojo.widget.Editor2Manager = {_currentInstance: null,_loadedCommands: {},commandState: {Disabled: 0, Latched: 1, Enabled: 2},getCurrentInstance: function(){return this._currentInstance;},setCurrentInstance: function(inst){this._currentInstance = inst;},registerCommand: function(name, cmd){name = name.toLowerCase();if(this._loadedCommands[name]){delete this._loadedCommands[name];}
+this._loadedCommands[name] = cmd;},getCommand: function(name){name = name.toLowerCase();var oCommand = this._loadedCommands[name];if(oCommand){return oCommand;}
+switch(name){case 'htmltoggle':
+oCommand = new dojo.widget.Editor2BrowserCommand(name);break;case 'formatblock':
+oCommand = new dojo.widget.Editor2FormatBlockCommand(name);break;case 'anchor':
+oCommand = new dojo.widget.Editor2Command(name);break;case 'createlink':
+oCommand = new dojo.widget.Editor2DialogCommand(name,{contentFile: "dojo.widget.Editor2Plugin.CreateLinkDialog",contentClass: "Editor2CreateLinkDialog",title: "Insert/Edit Link", width: "300px", height: "200px"});break;case 'insertimage':
+oCommand = new dojo.widget.Editor2DialogCommand(name,{contentFile: "dojo.widget.Editor2Plugin.InsertImageDialog",contentClass: "Editor2InsertImageDialog",title: "Insert/Edit Image", width: "400px", height: "270px"});break;default:
+var curtInst = this.getCurrentInstance();if((curtInst && curtInst.queryCommandAvailable(name)) ||
+(!curtInst && dojo.widget.Editor2.prototype.queryCommandAvailable(name))){oCommand = new dojo.widget.Editor2BrowserCommand(name);}else{dojo.debug("dojo.widget.Editor2Manager.getCommand: Unknown command "+name);return;}}
+this._loadedCommands[name] = oCommand;return oCommand;},destroy: function(){this._currentInstance = null;for(var cmd in this._loadedCommands){this._loadedCommands[cmd].destory();}}};dojo.addOnUnload(dojo.widget.Editor2Manager, "destroy");dojo.lang.declare("dojo.widget.Editor2Command",null,{initializer: function(name){this._name = name;},execute: function(para){dojo.unimplemented("dojo.widget.Editor2Command.execute");},getState: function(){return dojo.widget.Editor2Manager.commandState.Enabled;},destory: function(){}}
+);dojo.lang.declare("dojo.widget.Editor2BrowserCommand", dojo.widget.Editor2Command, {execute: function(para){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if(curInst){curInst.execCommand(this._name, para);}},getState: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if(curInst){try{if(curInst.queryCommandEnabled(this._name)){if(curInst.queryCommandState(this._name)){return dojo.widget.Editor2Manager.commandState.Latched;}else{return dojo.widget.Editor2Manager.commandState.Enabled;}}else{return dojo.widget.Editor2Manager.commandState.Disabled;}}catch (e) {return dojo.widget.Editor2Manager.commandState.Enabled;}}
+return dojo.widget.Editor2Manager.commandState.Disabled;},getValue: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if(curInst){try{return curInst.queryCommandValue(this._name);}catch(e){}}}}
+);dojo.lang.declare("dojo.widget.Editor2FormatBlockCommand", dojo.widget.Editor2BrowserCommand, {}
+);dojo.require("dojo.widget.FloatingPane");dojo.widget.defineWidget(
+"dojo.widget.Editor2Dialog",[dojo.widget.HtmlWidget, dojo.widget.FloatingPaneBase, dojo.widget.ModalDialogBase],{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/EditorDialog.html"),modal: true,width: false,height: false,windowState: "minimized",displayCloseAction: true,contentFile: "",contentClass: "",fillInTemplate: function(args, frag){this.fillInFloatingPaneTemplate(args, frag);dojo.widget.Editor2Dialog.superclass.fillInTemplate.call(this, args, frag);},postCreate: function(){if(this.contentFile){dojo.require(this.contentFile);}
+if(this.modal){dojo.widget.ModalDialogBase.prototype.postCreate.call(this);}else{with(this.domNode.style) {zIndex = 999;display = "none";}}
+dojo.widget.FloatingPaneBase.prototype.postCreate.apply(this, arguments);dojo.widget.Editor2Dialog.superclass.postCreate.call(this);if(this.width && this.height){with(this.domNode.style){width = this.width;height = this.height;}}},createContent: function(){if(!this.contentWidget && this.contentClass){this.contentWidget = dojo.widget.createWidget(this.contentClass);this.addChild(this.contentWidget);}},show: function(){if(!this.contentWidget){dojo.widget.Editor2Dialog.superclass.show.apply(this, arguments);this.createContent();dojo.widget.Editor2Dialog.superclass.hide.call(this);}
+if(!this.contentWidget || !this.contentWidget.loadContent()){return;}
+this.showFloatingPane();dojo.widget.Editor2Dialog.superclass.show.apply(this, arguments);if(this.modal){this.showModalDialog();}
+if(this.modal){this.shared.bg.style.zIndex = this.domNode.style.zIndex-1;}},onShow: function(){dojo.widget.Editor2Dialog.superclass.onShow.call(this);this.onFloatingPaneShow();},closeWindow: function(){this.hide();dojo.widget.Editor2Dialog.superclass.closeWindow.apply(this, arguments);},hide: function(){if(this.modal){this.hideModalDialog();}
+dojo.widget.Editor2Dialog.superclass.hide.call(this);}}
+);dojo.widget.defineWidget(
+"dojo.widget.Editor2DialogContent",dojo.widget.HtmlWidget,{widgetsInTemplate: true,loadContent:function(){return true;},cancel: function(){this.parent.hide();}});dojo.lang.declare("dojo.widget.Editor2DialogCommand", dojo.widget.Editor2BrowserCommand,function(name, dialogParas){this.dialogParas = dialogParas;},{execute: function(){if(!this.dialog){if(!this.dialogParas.contentFile || !this.dialogParas.contentClass){alert("contentFile and contentClass should be set for dojo.widget.Editor2DialogCommand.dialogParas!");return;}
+this.dialog = dojo.widget.createWidget("Editor2Dialog", this.dialogParas);dojo.body().appendChild(this.dialog.domNode);dojo.event.connect(this, "destroy", this.dialog, "destroy");}
+this.dialog.show();}});dojo.widget.defineWidget(
+"dojo.widget.Editor2",dojo.widget.RichText,{shareToolbar: false,toolbarAlwaysVisible: false,toolbarWidget: null,scrollInterval: null,toolbarTemplatePath: dojo.uri.dojoUri("src/widget/templates/EditorToolbarOneline.html"),toolbarTemplateCssPath: null,_inSourceMode: false,_htmlEditNode: null,editorOnLoad: function(){dojo.event.topic.publish("dojo.widget.Editor2::preLoadingToolbar", this);if(this.toolbarAlwaysVisible){dojo.require("dojo.widget.Editor2Plugin.AlwaysShowToolbar");}
+var toolbars = dojo.widget.byType("Editor2Toolbar");if((!toolbars.length)||(!this.shareToolbar)){if(this.toolbarWidget){this.toolbarWidget.show();dojo.html.insertBefore(this.toolbarWidget.domNode, this.domNode.firstChild);}else{var tbOpts = {};tbOpts.templatePath = this.toolbarTemplatePath;if(this.toolbarTemplateCssPath){tbOpts.templateCssPath = this.toolbarTemplateCssPath;}
+this.toolbarWidget = dojo.widget.createWidget("Editor2Toolbar", tbOpts, this.domNode.firstChild, "before");dojo.event.connect(this, "close", this.toolbarWidget, "hide");this.toolbarLoaded();}}else{this.toolbarWidget = toolbars[0];}
+dojo.event.topic.registerPublisher("Editor2.clobberFocus", this, "clobberFocus");dojo.event.topic.subscribe("Editor2.clobberFocus", this, "setBlur");dojo.event.topic.publish("dojo.widget.Editor2::onLoad", this);},toolbarLoaded: function(){},registerLoadedPlugin: function(obj){if(!this.loadedPlugins){this.loadedPlugins = [];}
+this.loadedPlugins.push(obj);},unregisterLoadedPlugin: function(obj){for(var i in this.loadedPlugins){if(this.loadedPlugins[i] === obj){delete this.loadedPlugins[i];return;}}
+dojo.debug("dojo.widget.Editor2.unregisterLoadedPlugin: unknow plugin object: "+obj);},execCommand: function(command, argument){switch(command.toLowerCase()){case 'htmltoggle':
+this.toggleHtmlEditing();break;default:
+dojo.widget.Editor2.superclass.execCommand.apply(this, arguments);}},queryCommandEnabled: function(command, argument){switch(command.toLowerCase()){case 'htmltoggle':
+return true;default:
+if(this._inSourceMode){ return false;}
+return dojo.widget.Editor2.superclass.queryCommandEnabled.apply(this, arguments);}},queryCommandState: function(command, argument){switch(command.toLowerCase()){case 'htmltoggle':
+return this._inSourceMode;default:
+return dojo.widget.Editor2.superclass.queryCommandState.apply(this, arguments);}},onClick: function(e){dojo.widget.Editor2.superclass.onClick.call(this, e);if(dojo.widget.PopupManager){if(!e){e = this.window.event;}
+dojo.widget.PopupManager.onClick(e);}},clobberFocus: function(){},toggleHtmlEditing: function(){if(this===dojo.widget.Editor2Manager.getCurrentInstance()){if(!this._inSourceMode){this._inSourceMode = true;if(!this._htmlEditNode){this._htmlEditNode = dojo.doc().createElement("textarea");dojo.html.insertAfter(this._htmlEditNode, this.editorObject);}
+this._htmlEditNode.style.display = "";this._htmlEditNode.style.width = "100%";this._htmlEditNode.style.height = dojo.html.getBorderBox(this.editNode).height+"px";this._htmlEditNode.value = this.editNode.innerHTML;with(this.editorObject.style){position = "absolute";left = "-2000px";top = "-2000px";}}else{this._inSourceMode = false;this._htmlEditNode.blur();with(this.editorObject.style){position = "";left = "";top = "";}
+dojo.lang.setTimeout(this, "replaceEditorContent", 1, this._htmlEditNode.value);this._htmlEditNode.style.display = "none";this.focus();}
+this.updateToolbar(true);}},setFocus: function(){if(dojo.widget.Editor2Manager.getCurrentInstance() === this){ return; }
+this.clobberFocus();dojo.widget.Editor2Manager.setCurrentInstance(this);},setBlur: function(){},saveSelection: function(){this._bookmark = null;this._bookmark = dojo.withGlobal(this.window, dojo.html.selection.getBookmark);},restoreSelection: function(){if(this._bookmark){this.focus();dojo.withGlobal(this.window, "moveToBookmark", dojo.html.selection, [this._bookmark]);this._bookmark = null;}else{dojo.debug("restoreSelection: no saved selection is found!");}},_updateToolbarLastRan: null,_updateToolbarTimer: null,_updateToolbarFrequency: 500,updateToolbar: function(force){if((!this.isLoaded)||(!this.toolbarWidget)){ return; }
+var diff = new Date() - this._updateToolbarLastRan;if( (!force)&&(this._updateToolbarLastRan)&&
+((diff < this._updateToolbarFrequency)) ){clearTimeout(this._updateToolbarTimer);var _this = this;this._updateToolbarTimer = setTimeout(function() {_this.updateToolbar();}, this._updateToolbarFrequency/2);return;}else{this._updateToolbarLastRan = new Date();}
+if(dojo.widget.Editor2Manager.getCurrentInstance() !== this){ return; }
+this.toolbarWidget.update();},destroy: function(finalize){this._htmlEditNode = null;dojo.event.disconnect(this, "close", this.toolbarWidget, "hide");if(!finalize){this.toolbarWidget.destroy();}
+dojo.widget.Editor2.superclass.destroy.call(this);},onDisplayChanged: function(e){dojo.widget.Editor2.superclass.onDisplayChanged.call(this,e);this.updateToolbar();},onLoad: function(){try{dojo.widget.Editor2.superclass.onLoad.call(this);}catch(e){dojo.debug(e);}
+this.editorOnLoad();},onFocus: function(){dojo.widget.Editor2.superclass.onFocus.call(this);this.setFocus();},getEditorContent: function(){if(this._inSourceMode){this.replaceEditorContent(this._htmlEditNode.value);}
+return dojo.widget.Editor2.superclass.getEditorContent.call(this);}},"html"
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,9 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.AlwaysShowToolbar");dojo.event.topic.subscribe("dojo.widget.Editor2::onLoad", function(editor){if(editor.toolbarAlwaysVisible){var p = new dojo.widget.Editor2Plugin.AlwaysShowToolbar(editor);}});dojo.declare("dojo.widget.Editor2Plugin.AlwaysShowToolbar", null,function(editor){this.editor = editor;this.editor.registerLoadedPlugin(this);this.setup();},{_scrollSetUp: false,_fixEnabled: false,_scrollThreshold: false,_handleScroll: true,setup: function(){var tdn = this.editor.toolbarWidget;if(!tdn.tbBgIframe){tdn.tbBgIframe = new dojo.html.BackgroundIframe(tdn.domNode);tdn.tbBgIframe.onResized();}
+this.scrollInterval = setInterval(dojo.lang.hitch(this, "globalOnScrollHandler"), 100);dojo.event.connect("before", this.editor.toolbarWidget, "destroy", this, "destroy");},globalOnScrollHandler: function(){var isIE = dojo.render.html.ie;if(!this._handleScroll){ return; }
+var dh = dojo.html;var tdn = this.editor.toolbarWidget.domNode;var db = dojo.body();if(!this._scrollSetUp){this._scrollSetUp = true;var editorWidth =  dh.getMarginBox(this.editor.domNode).width;this._scrollThreshold = dh.abs(tdn, true).y;if((isIE)&&(db)&&(dh.getStyle(db, "background-image")=="none")){with(db.style){backgroundImage = "url(" + dojo.uri.dojoUri("src/widget/templates/images/blank.gif") + ")";backgroundAttachment = "fixed";}}}
+var scrollPos = (window["pageYOffset"]) ? window["pageYOffset"] : (document["documentElement"]||document["body"]).scrollTop;if(scrollPos > this._scrollThreshold){if(!this._fixEnabled){var tdnbox = dojo.html.getMarginBox(tdn);this.editor.editorObject.style.marginTop = tdnbox.height+"px";if(isIE){tdn.style.left = dojo.html.abs(tdn, dojo.html.boxSizing.MARGIN_BOX).x;dojo.body().appendChild(tdn);dojo.html.addClass(tdn, "IEFixedToolbar");}else{with(tdn.style){position = "fixed";top = "0px";}}
+tdn.style.width = tdnbox.width + "px";tdn.style.zIndex = 1000;this._fixEnabled = true;}
+if(!dojo.render.html.safari){var eHeight = (this.height) ? parseInt(this.editor.height) : this.editor._lastHeight;if(scrollPos > (this._scrollThreshold+eHeight)){tdn.style.display = "none";}else{tdn.style.display = "";}}}else if(this._fixEnabled){(this.editor.object || this.editor.iframe).style.marginTop = null;with(tdn.style){position = "";top = "";zIndex = "";display = "";}
+if(isIE){tdn.style.left = "";dojo.html.removeClass(tdn, "IEFixedToolbar");dojo.html.insertBefore(tdn, this.editor.object||this.editor.iframe);}
+tdn.style.width = "";this._fixEnabled = false;}},destroy: function(){this._handleScroll = false;clearInterval(this.scrollInterval);this.editor.unregisterLoadedPlugin(this);if(dojo.render.html.ie){dojo.html.removeClass(this.editor.toolbarWidget.domNode, "IEFixedToolbar");}}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,18 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.ContextMenu");dojo.require("dojo.widget.Menu2");dojo.event.topic.subscribe("dojo.widget.Editor2::onLoad", function(editor){var p = new dojo.widget.Editor2Plugin.ContextMenu(editor);});dojo.widget.Editor2Plugin.ContextMenuManager = {menuGroups: ['Generic', 'Link', 'Anchor', 'Image', 'List', 'Table'],_registeredGroups: {},registerGroup: function(name, handler){if(this._registeredGroups[name]){alert("dojo.widget.Editor2Plugin.ContextMenuManager.registerGroup: menu group "+name+"is already registered. Ignored.");return;}
+this._registeredGroups[name] = handler;},removeGroup: function(name){delete this._registeredGroups[name];},getGroup: function(name, contextmenuplugin){if(this._registeredGroups[name]){var item = this._registeredGroups[name](name, contextmenuplugin);if(item){return item;}}
+switch(name){case 'Generic':
+case 'Link':
+case 'Image':
+return new dojo.widget.Editor2Plugin[name+"ContextMenu"](contextmenuplugin);case 'Anchor':
+case 'List':}}};dojo.declare("dojo.widget.Editor2Plugin.ContextMenu", null,function(editor){this.groups = [];this.separators = [];this.editor = editor;this.editor.registerLoadedPlugin(this);this.contextMenu = dojo.widget.createWidget("PopupMenu2", {});dojo.body().appendChild(this.contextMenu.domNode);this.contextMenu.bindDomNode(this.editor.document.body);dojo.event.connect(this.contextMenu, "aboutToShow", this, "aboutToShow");dojo.event.connect(this.editor, "destroy", this, "destroy");this.setup();},{setup: function(){var gs = dojo.widget.Editor2Plugin.ContextMenuManager.menuGroups;for(var i in gs){var g = dojo.widget.Editor2Plugin.ContextMenuManager.getGroup(gs[i], this);if(g){this.groups.push(g);}}},aboutToShow: function(){var first = true;for(var i in this.groups){if(i>0 && this.separators.length != this.groups.length-1){this.separators.push(dojo.widget.createWidget("MenuSeparator2", {}));this.contextMenu.addChild(this.separators[this.separators.length-1]);}
+if(this.groups[i].refresh()){if(i>0){if(first){this.separators[i-1].hide();}else{this.separators[i-1].show();}}
+if(first){ first = false; }}else{if(i>0){this.separators[i-1].hide();}}}},destroy: function(){this.editor.unregisterLoadedPlugin(this);delete this.groups;delete this.separators;this.contextMenu.destroy();delete this.contextMenu;}});dojo.widget.defineWidget(
+"dojo.widget.Editor2ContextMenuItem",dojo.widget.MenuItem2, {command: null,postCreate: function(){if(!this.command){this.command = this.caption;}
+dojo.widget.Editor2ContextMenuItem.superclass.postCreate.apply(this, arguments);},setup: function(){this.cmd = dojo.widget.Editor2Manager.getCommand(this.command);if(!this.cmd){alert("command " + this.command + " is not recognized!");}},onClick: function(){if(!this.cmd){this.setup();}
+if(this.cmd){this.cmd.execute();}},refresh: function(){if(!this.cmd){this.setup();}
+if(this.cmd){if(this.cmd.getState() == dojo.widget.Editor2Manager.commandState.Disabled){this.disable();return false;}else{this.enable();return true;}}},hide: function(){this.domNode.style.display = "none";},show: function(){this.domNode.style.display = "";}});dojo.declare("dojo.widget.Editor2Plugin.SimpleContextMenu", null,function(contextmenuplugin){this.contextMenu = contextmenuplugin.contextMenu;this.items = [];dojo.event.connect(contextmenuplugin, "destroy", this, "destroy");},{refresh: function(){if(!this.items.length){this.createItems();for(var i in this.items){this.contextMenu.addChild(this.items[i]);}}
+return this.checkVisibility();},destroy: function(){this.contextmenu = null;delete this.items;delete this.contextMenu;},createItems: function(){	},checkVisibility: function(){var show = false;for(var i in this.items){show = show || this.items[i].refresh();}
+var action = show ? "show" : "hide";for(var i in this.items){this.items[i][action]();}
+return show;}});dojo.declare("dojo.widget.Editor2Plugin.GenericContextMenu",dojo.widget.Editor2Plugin.SimpleContextMenu,{createItems: function(){this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Cut", iconClass: "dojoE2TBIcon dojoE2TBIcon_Cut"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Copy", iconClass: "dojoE2TBIcon dojoE2TBIcon_Copy"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Paste", iconClass: "dojoE2TBIcon dojoE2TBIcon_Paste"}));}});dojo.declare("dojo.widget.Editor2Plugin.LinkContextMenu",dojo.widget.Editor2Plugin.SimpleContextMenu,{createItems: function(){this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Modify Link", command: 'createlink', iconClass: "dojoE2TBIcon dojoE2TBIcon_Link"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Remove Link", command: 'unlink', iconClass: "dojoE2TBIcon dojoE2TBIcon_UnLink"
 }));},checkVisibility: function(){var show = this.items[1].refresh();if(show){this.items[0].refresh();for(var i in this.items){this.items[i].show();}}else{for(var i in this.items){this.items[i].hide();}}
+return show;}});dojo.declare("dojo.widget.Editor2Plugin.ImageContextMenu",dojo.widget.Editor2Plugin.SimpleContextMenu,{createItems: function(){this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Edit Image", command: 'insertimage', iconClass: "dojoE2TBIcon dojoE2TBIcon_Image"}));},checkVisibility: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var img = dojo.withGlobal(curInst.window, "getSelectedElement", dojo.html.selection);if(img && img.tagName.toLowerCase() == 'img'){this.items[0].show();return true;}else{this.items[0].hide();return false;}}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.CreateLinkDialog");dojo.widget.defineWidget(
+"dojo.widget.Editor2CreateLinkDialog",dojo.widget.Editor2DialogContent,{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/createlink.html"),editableAttributes: ['href', 'target', 'class'],loadContent: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();curInst.saveSelection();this.linkNode = dojo.withGlobal(curInst.window, "getAncestorElement", dojo.html.selection, ['a']);var linkAttributes = {};this.extraAttribText = "";if(this.linkNode){var attrs = this.linkNode.attributes;for(var i=0; i<attrs.length; i++) {if(dojo.lang.find(this.editableAttributes, attrs[i].name.toLowerCase())>-1){linkAttributes[attrs[i].name] = attrs[i].value;}else{if(attrs[i].specified == undefined || attrs[i].specified){this.extraAttribText += attrs[i].name + '="'+attrs[i].value+'" ';}}}}else{var html = dojo.withGlobal(curInst.window, "getSelectedText", dojo.html.selection);if(html == null || html.length == 0){alert("Please select some text to create a link.");ret
 urn false;}}
+for(var i=0; i<this.editableAttributes.length; ++i){name = this.editableAttributes[i];this["link_"+name].value = (linkAttributes[name] == undefined) ? "" : linkAttributes[name] ;}
+return true;},ok: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();curInst.restoreSelection();if(!this.linkNode){var html = dojo.withGlobal(curInst.window, "getSelectedHtml", dojo.html.selection);}else{var html = this.linkNode.innerHTML;dojo.withGlobal(curInst.window, "selectElement", dojo.html.selection, [this.linkNode]);}
+var attstr='';for(var i=0; i<this.editableAttributes.length; ++i){name = this.editableAttributes[i];var value = this["link_"+name].value;if(value.length > 0){attstr += name + '="'+value+'" ';}}
+curInst.execCommand('inserthtml', '<a '+attstr+this.extraAttribText+'>'+html+'</a>');this.cancel();}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.FindReplace");dojo.require("dojo.widget.Editor2");dojo.declare("dojo.widget.Editor2Plugin.FindCommand", dojo.widget.Editor2DialogCommand,{SearchOption: {CaseSensitive: 4,SearchBackwards: 64,WholeWord: 2,WrapSearch: 128},find: function(text, option){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if(curInst){curInst.focus();if(window.find){curInst.window.find(text,option & this.SearchOption.CaseSensitive ? true : false,option & this.SearchOption.SearchBackwards ? true : false,option & this.SearchOption.WrapSearch ? true : false,option & this.SearchOption.WholeWord ? true : false
+);}else if(dojo.body().createTextRange){var range = curInst.document.body.createTextRange();var found = range.findText(text, (option&this.SearchOption.SearchBackwards)?1:-1, option );if(found){range.scrollIntoView() ;range.select() ;}else{alert("Can not find "+text+" in the document");}}else{alert("No idea how to search in this browser. Please submit patch if you know.");}}}});dojo.widget.Editor2Manager.registerCommand("Find", new dojo.widget.Editor2Plugin.FindCommand('find',{contentFile: "dojo.widget.Editor2Plugin.FindReplaceDialog",contentClass: "Editor2FindDialog",title: "Find", width: "350px", height: "150px", modal: false}));dojo.widget.Editor2Manager.registerCommand("Replace", new dojo.widget.Editor2DialogCommand('replace',{contentFile: "dojo.widget.Editor2Plugin.FindReplaceDialog",contentClass: "Editor2ReplaceDialog",href: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/replace.html"),title: "Replace", width: "350px", height: "200px", modal: false}));dojo.widget
 .Editor2Plugin.FindReplace = function(name){var name = name.toLowerCase();var item;if(name == 'replace'){item = new dojo.widget.Editor2ToolbarButton('Replace');}else if(name == 'find') {item = new dojo.widget.Editor2ToolbarButton('Find');}
+return item;}
+dojo.widget.Editor2ToolbarItemManager.registerHandler(dojo.widget.Editor2Plugin.FindReplace);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.FindReplaceDialog");dojo.widget.defineWidget(
+"dojo.widget.Editor2FindDialog",dojo.widget.Editor2DialogContent,{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/find.html"),find: function(){var findcmd = dojo.widget.Editor2Manager.getCommand('find');var option = 0;if(this["find_option_casesens"].checked){option |= findcmd.SearchOption.CaseSensitive;}
+if(this["find_option_backwards"].checked){option |= findcmd.SearchOption.SearchBackwards;}
+if(this["find_option_wholeword"].checked){option |= findcmd.SearchOption.WholeWord;}
+findcmd.find(this["find_text"].value, option);}});dojo.widget.defineWidget(
+"dojo.widget.Editor2ReplaceDialog",dojo.widget.Editor2DialogContent,{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/replace.html"),replace: function(){alert("not implemented yet");},replaceAll: function(){alert("not implemented yet");}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,8 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.InsertImageDialog");dojo.widget.defineWidget(
+"dojo.widget.Editor2InsertImageDialog",dojo.widget.Editor2DialogContent,{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/insertimage.html"),editableAttributes: ['src', 'alt', 'width', 'height', 'hspace', 'vspace', 'border', 'align'],loadContent: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();this.imageNode = dojo.withGlobal(curInst.window, "getSelectedElement", dojo.html.selection);if(!this.imageNode){this.imageNode = dojo.withGlobal(curInst.window, "getAncestorElement", dojo.html.selection, ['img']);}
+var imageAttributes = {};this.extraAttribText = "";if(this.imageNode){var attrs = this.imageNode.attributes;for(var i=0; i<attrs.length; i++) {if(dojo.lang.find(this.editableAttributes, attrs[i].name.toLowerCase())>-1){imageAttributes[attrs[i].name] = attrs[i].value;}else{this.extraAttribText += attrs[i].name + '="'+attrs[i].value+'" ';}}}
+for(var i=0; i<this.editableAttributes.length; ++i){name = this.editableAttributes[i];this["image_"+name].value = (imageAttributes[name] == undefined) ? "" : imageAttributes[name] ;}
+return true;},ok: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var insertcmd = dojo.widget.Editor2Manager.getCommand('inserthtml');var option = 0;var attstr='';for(var i=0; i<this.editableAttributes.length; ++i){name = this.editableAttributes[i];var value = this["image_"+name].value;if(value.length > 0){attstr += name + '="'+value+'" ';}}
+if(this.imageNode){dojo.withGlobal(curInst.window, "selectElement", dojo.html.selection, [this.imageNode]);}
+insertcmd.execute('<img '+attstr+this.extraAttribText+'/>');this.cancel();}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,18 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.InsertTableDialog");dojo.widget.defineWidget(
+"dojo.widget.Editor2InsertTableDialog",dojo.widget.Editor2DialogContent,{templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/inserttable.html"),editableAttributes: ['summery', 'height', 'cellspacing', 'cellpadding', 'border', 'align'],loadContent: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();this.tableNode = dojo.withGlobal(curInst.window, "getSelectedElement", dojo.html.selection);if(!this.tableNode || this.tableNode.tagName.toLowerCase() != 'table'){this.tableNode = dojo.withGlobal(curInst.window, "getAncestorElement", dojo.html.selection, ['table']);}
+var tableAttributes = {};this.extraAttribText = "";if(this.tableNode){this["table_rows"].value = this.tableNode.rows.length;this["table_rows"].disabled = true;this["table_cols"].value = this.tableNode.rows[0].cells.length;this["table_cols"].disabled = true;if (this.tableNode.caption){this["table_caption"].value = this.tableNode.caption.innerHTML;}else{this["table_caption"].value = "";}
+var width = this.tableNode.style.width || this.tableNode.width;if(width){this["table_width"].value = parseInt(width);if (width.indexOf('%') > -1){this["table_widthtype"].value = "percent";}else{this["table_widthtype"].value = "pixels";}}else{this["table_width"].value = "100";}
+var height = this.tableNode.style.height || this.tableNode.height;if(height){this["table_height"].value = parseInt(width);}else{this["table_height"].value = "";}
+var attrs = this.tableNode.attributes;for(var i=0; i<attrs.length; i++) {if(dojo.lang.find(this.editableAttributes, attrs[i].name.toLowerCase())>-1){tableAttributes[attrs[i].name] = attrs[i].value;}else{this.extraAttribText += attrs[i].name + '="'+attrs[i].value+'" ';}}}else{this["table_rows"].value = 3;this["table_rows"].disabled = false;this["table_cols"].value = 2;this["table_cols"].disabled = false;this["table_width"].value = 100;this["table_widthtype"].value = "percent";this["table_height"].value = "";}
+for(var i=0; i<this.editableAttributes.length; ++i){name = this.editableAttributes[i];this["table_"+name].value = (tableAttributes[name] == undefined) ? "" : tableAttributes[name];if(name == 'height' && tableAttributes[name] != undefined){this["table_"+name].value = tableAttributes[name];}}
+return true;},ok: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var args = {};args['rows'] = this["table_rows"].value;args['cols'] = this["table_cols"].value;args['caption'] = this["table_caption"].value;args["tableattrs"] = "";if(this["table_widthtype"].value == "percent"){args["tableattrs"] += 'width="'+this["table_width"].value +'%" ';}else{args["tableattrs"] += 'width="'+this["table_width"].value +'px" ';}
+for(var i=0; i<this.editableAttributes.length; ++i){var name = this.editableAttributes[i];var value = this["table_"+name].value;if(value.length > 0){args["tableattrs"] += name + '="'+value+'" ';}}
+if(!args["tableattrs"]){args["tableattrs"] = "";}
+if(dojo.render.html.ie && !this["table_border"].value){args["tableattrs"] += 'class="dojoShowIETableBorders" ';}
+var html = "<table "+args["tableattrs"]+">";if(args['caption']){html += "<caption>"+args["caption"]+"</caption>";}
+var outertbody = "<tbody>";if(this.tableNode){var tbody = this.tableNode.getElementsByTagName("tbody")[0];outertbody = tbody.outerHTML;if(!outertbody){var cnode = tbody.cloneNode(true);var tmpnode = tbody.ownerDocument.createElement("div");tmpnode.appendChild(cnode);outertbody = tmpnode.innerHTML;}
+dojo.withGlobal(curInst.window, "selectElement", dojo.html.selection, [this.tableNode]);}else{var cols = "<tr>";for (var i = 0; i < +args.cols; i++) { cols += "<td></td>"; }
+cols += "</tr>";for (var i = 0; i < args.rows; i++) { outertbody += cols; }
+outertbody += "</tbody>";}
+html += outertbody+"</table>";curInst.execCommand("inserthtml", html);this.cancel();}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.SimpleSignalCommands");dojo.require("dojo.widget.Editor2");dojo.declare("dojo.widget.Editor2Plugin.SimpleSignalCommand", dojo.widget.Editor2Command,function(name){if(dojo.widget.Editor2.prototype[name] == undefined){dojo.widget.Editor2.prototype[name] = function(){ dojo.debug("Editor2::"+name); };}},{execute: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if(curInst){curInst[this._name]();}}});if(dojo.widget.Editor2Plugin['SimpleSignalCommands']){dojo.widget.Editor2Plugin['_SimpleSignalCommands']=dojo.widget.Editor2Plugin['SimpleSignalCommands'];}
+dojo.widget.Editor2Plugin.SimpleSignalCommands = {signals: ['save', 'insertImage'],Handler: function(name){if(name.toLowerCase() == 'save'){return new dojo.widget.Editor2ToolbarButton('Save');}else if(name.toLowerCase() == 'insertimage'){return new dojo.widget.Editor2ToolbarButton('InsertImage');}},registerAllSignalCommands: function(){for(var i=0;i<this.signals.length;i++){dojo.widget.Editor2Manager.registerCommand(this.signals[i],new dojo.widget.Editor2Plugin.SimpleSignalCommand(this.signals[i]));}}};if(dojo.widget.Editor2Plugin['_SimpleSignalCommands']){dojo.lang.mixin(dojo.widget.Editor2Plugin.SimpleSignalCommands, dojo.widget.Editor2Plugin['_SimpleSignalCommands']);}
+dojo.widget.Editor2Plugin.SimpleSignalCommands.registerAllSignalCommands();dojo.widget.Editor2ToolbarItemManager.registerHandler(dojo.widget.Editor2Plugin.SimpleSignalCommands.Handler);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.TableOperation");dojo.require("dojo.widget.Editor2");dojo.event.topic.subscribe("dojo.widget.RichText::init", function(editor){editor.__TableOperationShowBorder = false;if(dojo.render.html.ie){editor.contentDomPreFilters.push(dojo.widget.Editor2Plugin.TableOperation.showIETableBorder);editor.contentDomPostFilters.push(dojo.widget.Editor2Plugin.TableOperation.removeIEFakeClass);}
+dojo.event.connect(editor, "editorOnLoad", function(){dojo.widget.Editor2Plugin.TableOperation.toggleTableBorderCommand.execute(editor);});});dojo.widget.Editor2Plugin.TableOperation = {getToolbarItem: function(name){var name = name.toLowerCase();var item;switch(name){case 'inserttable':
+case 'toggletableborder':
+item = new dojo.widget.Editor2ToolbarButton(name);}
+return item;},getContextMenuGroup: function(name, contextmenuplugin){return new dojo.widget.Editor2Plugin.TableContextMenu(contextmenuplugin);},deleteTableCommand: {execute: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var table = dojo.withGlobal(curInst.window, "getAncestorElement", dojo.html.selection, ['table']);if(table){dojo.withGlobal(curInst.window, "selectElement", dojo.html.selection, [table]);curInst.execCommand("inserthtml", " ");}},getState: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var table = dojo.withGlobal(curInst.window, "hasAncestorElement", dojo.html.selection, ['table']);return table ? dojo.widget.Editor2Manager.commandState.Enabled : dojo.widget.Editor2Manager.commandState.Disabled;},destory: function(){}},toggleTableBorderCommand: {execute: function(instance){var curInst = instance || dojo.widget.Editor2Manager.getCurrentInstance();if(curInst.__TableOperationShowBorder){curInst.__TableOperationS
 howBorder = false;if(dojo.render.html.moz){curInst.removeStyleSheet(dojo.uri.dojoUri("src/widget/templates/Editor2/showtableborder_gecko.css"));}else if(dojo.render.html.ie){curInst.removeStyleSheet(dojo.uri.dojoUri("src/widget/templates/Editor2/showtableborder_ie.css"));}}else{curInst.__TableOperationShowBorder = true;if(dojo.render.html.moz){curInst.addStyleSheet(dojo.uri.dojoUri("src/widget/templates/Editor2/showtableborder_gecko.css"));}else if(dojo.render.html.ie){curInst.addStyleSheet(dojo.uri.dojoUri("src/widget/templates/Editor2/showtableborder_ie.css"));}}},getState: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();return curInst.__TableOperationShowBorder ? dojo.widget.Editor2Manager.commandState.Latched : dojo.widget.Editor2Manager.commandState.Enabled;},destory: function(){}},showIETableBorder: function(dom){var tables = dom.getElementsByTagName('table');dojo.lang.forEach(tables, function(t){dojo.html.addClass(t, "dojoShowIETableBorders");
 });return dom;},removeIEFakeClass: function(dom){var tables = dom.getElementsByTagName('table');dojo.lang.forEach(tables, function(t){dojo.html.removeClass(t, "dojoShowIETableBorders");});return dom;}}
+dojo.widget.Editor2Manager.registerCommand("toggletableborder", dojo.widget.Editor2Plugin.TableOperation.toggleTableBorderCommand);dojo.widget.Editor2Manager.registerCommand("inserttable", new dojo.widget.Editor2DialogCommand('inserttable',{contentFile: "dojo.widget.Editor2Plugin.InsertTableDialog",contentClass: "Editor2InsertTableDialog",title: "Insert/Edit Table", width: "450px", height: "250px"}));dojo.widget.Editor2Manager.registerCommand("deletetable", dojo.widget.Editor2Plugin.TableOperation.deleteTableCommand);dojo.widget.Editor2ToolbarItemManager.registerHandler(dojo.widget.Editor2Plugin.TableOperation.getToolbarItem);if(dojo.widget.Editor2Plugin.ContextMenuManager){dojo.widget.Editor2Plugin.ContextMenuManager.registerGroup('Table', dojo.widget.Editor2Plugin.TableOperation.getContextMenuGroup);dojo.declare("dojo.widget.Editor2Plugin.TableContextMenu",dojo.widget.Editor2Plugin.SimpleContextMenu,{createItems: function(){this.items.push(dojo.widget.createWidget("Editor2
 ContextMenuItem", {caption: "Delete Table", command: 'deletetable'}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {caption: "Table Property", command: 'inserttable', iconClass: "TB_Button_Icon TB_Button_Table"}));},checkVisibility: function(){var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var table = dojo.withGlobal(curInst.window, "hasAncestorElement", dojo.html.selection, ['table']);if(dojo.withGlobal(curInst.window, "hasAncestorElement", dojo.html.selection, ['table'])){this.items[0].show();this.items[1].show();return true;}else{this.items[0].hide();this.items[1].hide();return false;}}});}
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.ToolbarDndSupport");dojo.require("dojo.dnd.*");dojo.event.topic.subscribe("dojo.widget.Editor2::preLoadingToolbar", function(editor){dojo.dnd.dragManager.nestedTargets = true;var p = new dojo.widget.Editor2Plugin.ToolbarDndSupport(editor);});dojo.declare("dojo.widget.Editor2Plugin.ToolbarDndSupport", null,{lookForClass: "dojoEditorToolbarDnd TB_ToolbarSet TB_Toolbar",initializer: function(editor){this.editor = editor;dojo.event.connect(this.editor, "toolbarLoaded", this, "setup");this.editor.registerLoadedPlugin(this);},setup: function(){dojo.event.disconnect(this.editor, "toolbarLoaded", this, "setup");var tbw = this.editor.toolbarWidget;dojo.event.connect("before", tbw, "destroy", this, "destroy");var nodes = dojo.html.getElementsByClass(this.lookForClass, tbw.domNode, null, dojo.html.classMatchType.ContainsAny);if(!nodes){dojo.debug("dojo.widget.Editor2Plugin.ToolbarDndSupport: No dom node with class in "+this.lookForClass);return;}
+for(var i=0; i<nodes.length; i++){var node = nodes[i];var droptarget = node.getAttribute("dojoETDropTarget");if(droptarget){(new dojo.dnd.HtmlDropTarget(node, [droptarget+tbw.widgetId])).vertical = true;}
+var dragsource = node.getAttribute("dojoETDragSource");if(dragsource){new dojo.dnd.HtmlDragSource(node, dragsource+tbw.widgetId);}}},destroy: function(){this.editor.unregisterLoadedPlugin(this);}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.kwCompoundRequire({common: [ "dojo.widget.Editor2","dojo.widget.Editor2Toolbar"]});dojo.provide("dojo.widget.Editor2Plugin.*");
\ No newline at end of file

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