You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/05/09 04:56:45 UTC

svn commit: r536397 [24/36] - in /tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo: ./ nls/ src/ src/animation/ src/cal/ src/charting/ src/charting/svg/ src/charting/vml/ src/collections/ src/crypto/ src/data/ src/data/core/ src/data/old/ src/da...

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,54 @@
+
+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"]};doj
 o.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"};dojo.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.formatBlockVal
 ues), 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.addC
 hild(dojo.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.moduleUri("dojo.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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,53 @@
+
+dojo.provide("dojo.widget.Editor2");dojo.require("dojo.io.*");dojo.require("dojo.widget.RichText");dojo.require("dojo.widget.Editor2Toolbar");dojo.require("dojo.uri.cache");dojo.widget.Editor2Manager = new dojo.widget.HandlerManager;dojo.lang.mixin(dojo.widget.Editor2Manager, {_currentInstance:null, commandState:{Disabled:0, Latched:1, Enabled:2}, getCurrentInstance:function () {return this._currentInstance;}, setCurrentInstance:function (inst) {this._currentInstance = inst;}, getCommand:function (editor, name) {var oCommand;name = name.toLowerCase();for (var i = 0; i < this._registeredHandlers.length; i++) {oCommand = this._registeredHandlers[i](editor, name);if (oCommand) {return oCommand;}}
+switch (name) {case "htmltoggle":
+oCommand = new dojo.widget.Editor2BrowserCommand(editor, name);break;case "formatblock":
+oCommand = new dojo.widget.Editor2FormatBlockCommand(editor, name);break;case "anchor":
+oCommand = new dojo.widget.Editor2Command(editor, name);break;case "createlink":
+oCommand = new dojo.widget.Editor2DialogCommand(editor, name, {contentFile:"dojo.widget.Editor2Plugin.CreateLinkDialog", contentClass:"Editor2CreateLinkDialog", title:"Insert/Edit Link", width:"300px", height:"200px"});break;case "insertimage":
+oCommand = new dojo.widget.Editor2DialogCommand(editor, 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(editor, name);} else {dojo.debug("dojo.widget.Editor2Manager.getCommand: Unknown command " + name);return;}}
+return oCommand;}, destroy:function () {this._currentInstance = null;dojo.widget.HandlerManager.prototype.destroy.call(this);}});dojo.addOnUnload(dojo.widget.Editor2Manager, "destroy");dojo.lang.declare("dojo.widget.Editor2Command", null, function (editor, name) {this._editor = editor;this._updateTime = 0;this._name = name;}, {_text:"Unknown", execute:function (para) {dojo.unimplemented("dojo.widget.Editor2Command.execute");}, getText:function () {return this._text;}, getState:function () {return dojo.widget.Editor2Manager.commandState.Enabled;}, destroy:function () {}});dojo.widget.Editor2BrowserCommandNames = {"bold":"Bold", "copy":"Copy", "cut":"Cut", "Delete":"Delete", "indent":"Indent", "inserthorizontalrule":"Horizental Rule", "insertorderedlist":"Numbered List", "insertunorderedlist":"Bullet List", "italic":"Italic", "justifycenter":"Align Center", "justifyfull":"Justify", "justifyleft":"Align Left", "justifyright":"Align Right", "outdent":"Outdent", "paste":"Paste", 
 "redo":"Redo", "removeformat":"Remove Format", "selectall":"Select All", "strikethrough":"Strikethrough", "subscript":"Subscript", "superscript":"Superscript", "underline":"Underline", "undo":"Undo", "unlink":"Remove Link", "createlink":"Create Link", "insertimage":"Insert Image", "htmltoggle":"HTML Source", "forecolor":"Foreground Color", "hilitecolor":"Background Color", "plainformatblock":"Paragraph Style", "formatblock":"Paragraph Style", "fontsize":"Font Size", "fontname":"Font Name"};dojo.lang.declare("dojo.widget.Editor2BrowserCommand", dojo.widget.Editor2Command, function (editor, name) {var text = dojo.widget.Editor2BrowserCommandNames[name.toLowerCase()];if (text) {this._text = text;}}, {execute:function (para) {this._editor.execCommand(this._name, para);}, getState:function () {if (this._editor._lastStateTimestamp > this._updateTime || this._state == undefined) {this._updateTime = this._editor._lastStateTimestamp;try {if (this._editor.queryCommandEnabled(this._nam
 e)) {if (this._editor.queryCommandState(this._name)) {this._state = dojo.widget.Editor2Manager.commandState.Latched;} else {this._state = dojo.widget.Editor2Manager.commandState.Enabled;}} else {this._state = dojo.widget.Editor2Manager.commandState.Disabled;}}
+catch (e) {this._state = dojo.widget.Editor2Manager.commandState.Enabled;}}
+return this._state;}, getValue:function () {try {return this._editor.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], {templateString:"<div id=\"${this.widgetId}\" class=\"dojoFloatingPane\">\n\t<span dojoattachpoint=\"tabStartOuter\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\"\ttabindex=\"0\"></span>\n\t<span dojoattachpoint=\"tabStart\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n\t<div dojoAttachPoint=\"titleBar\" class=\"dojoFloatingPaneTitleBar\"  style=\"display:none\">\n\t  \t<img dojoAttachPoint=\"titleBarIcon\"  class=\"dojoFloatingPaneTitleBarIcon\">\n\t\t<div dojoAttachPoint=\"closeAction\" dojoAttachEvent=\"onClick:hide\"\n   \t  \t\tclass=\"dojoFloatingPaneCloseIcon\"></div>\n\t\t<div dojoAttachPoint=\"restoreAction\" dojoAttachEvent=\"onClick:restoreWin
 dow\"\n   \t  \t\tclass=\"dojoFloatingPaneRestoreIcon\"></div>\n\t\t<div dojoAttachPoint=\"maximizeAction\" dojoAttachEvent=\"onClick:maximizeWindow\"\n   \t  \t\tclass=\"dojoFloatingPaneMaximizeIcon\"></div>\n\t\t<div dojoAttachPoint=\"minimizeAction\" dojoAttachEvent=\"onClick:minimizeWindow\"\n   \t  \t\tclass=\"dojoFloatingPaneMinimizeIcon\"></div>\n\t  \t<div dojoAttachPoint=\"titleBarText\" class=\"dojoFloatingPaneTitleText\">${this.title}</div>\n\t</div>\n\n\t<div id=\"${this.widgetId}_container\" dojoAttachPoint=\"containerNode\" class=\"dojoFloatingPaneClient\"></div>\n\t<span dojoattachpoint=\"tabEnd\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n\t<span dojoattachpoint=\"tabEndOuter\" dojoonfocus=\"trapTabs\" dojoonblur=\"clearTrap\" tabindex=\"0\"></span>\n\t<div dojoAttachPoint=\"resizeBar\" class=\"dojoFloatingPaneResizebar\" style=\"display:none\"></div>\n</div>\n", modal:true, width:"", height:"", windowState:"minimized", displayC
 loseAction: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.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);}, checkSize:function () {if (this.isShowing()) {if (this.modal) {this._sizeBackground();}
+this.placeModalDialog();this.onResized();}}});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 (editor, 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();}, getText:function () {return this.dialogParas.title || dojo.widget.Editor2DialogCommand.superclass.getText.call(this);}});dojo.widget.Editor2ToolbarGroups = {};dojo.widget.defineWidget("dojo.widget.Editor2", dojo.widget.RichText, function () {this._loadedCommands = {};}, {toolbarAlwaysVisible:false, toolbarWidget:null, scrollInterval:null, toolbarTemplatePath:dojo.uri.cache.set(dojo.uri.moduleUri("dojo.widget", "templates/EditorToolbarOneline.html"), "<div class=\"EditorToolbarDomNode EditorToolbarSmallBg\">\n\t<table cellpadding=\"1\" cellspacing=\"0\" border=\"0\">\n\t\t<tbody>\n\t\t\t<tr valign=\"top\" align=\"left\">\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"htmltoggle\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon\" \n\t\t\t\t\t\tstyle=\"background-image: none; width: 30px;\" >&lt;h&gt;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\"
  dojoETItemName=\"copy\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Copy\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"paste\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Paste\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"undo\">\n\t\t\t\t\t\t<!-- FIXME: should we have the text \"undo\" here? -->\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Undo\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"redo\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Redo\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td isSpacer=\"true\">\n\t\t\t\t\t<span class=\"iconContainer\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Sep\"\tstyle=\"width: 5px; m
 in-width: 5px;\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"createlink\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Link\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"insertimage\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Image\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"inserthorizontalrule\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_HorizontalLine \">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"bold\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Bold\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContai
 ner dojoEditorToolbarItem\" dojoETItemName=\"italic\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Italic\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"underline\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Underline\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"strikethrough\">\n\t\t\t\t\t\t<span \n\t\t\t\t\t\t\tclass=\"dojoE2TBIcon dojoE2TBIcon_StrikeThrough\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td isSpacer=\"true\">\n\t\t\t\t\t<span class=\"iconContainer\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Sep\" \n\t\t\t\t\t\t\tstyle=\"width: 5px; min-width: 5px;\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"insertunorderedlist\">\n\t\t\t\t\t\t<
 span \n\t\t\t\t\t\t\tclass=\"dojoE2TBIcon dojoE2TBIcon_BulletedList\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"insertorderedlist\">\n\t\t\t\t\t\t<span \n\t\t\t\t\t\t\tclass=\"dojoE2TBIcon dojoE2TBIcon_NumberedList\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td isSpacer=\"true\">\n\t\t\t\t\t<span class=\"iconContainer\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Sep\" style=\"width: 5px; min-width: 5px;\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"indent\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Indent\" \n\t\t\t\t\t\t\tunselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"outdent\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Out
 dent\" \n\t\t\t\t\t\t\tunselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td isSpacer=\"true\">\n\t\t\t\t\t<span class=\"iconContainer\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Sep\" style=\"width: 5px; min-width: 5px;\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"forecolor\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_TextColor\" \n\t\t\t\t\t\t\tunselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"hilitecolor\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_BackgroundColor\" \n\t\t\t\t\t\t\tunselectable=\"on\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td isSpacer=\"true\">\n\t\t\t\t\t<span class=\"iconContainer\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Sep\" style=\"width: 5px; min-width: 5
 px;\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"justifyleft\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_LeftJustify\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"justifycenter\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_CenterJustify\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"justifyright\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_RightJustify\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"justifyfull\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_BlockJustify\">&nbsp;</span>\n\t\t\t\t\t</span>\n\t\t\t\t</td>\t\n\t\t\t\t<td>\n\t\t\t\t\t<select cla
 ss=\"dojoEditorToolbarItem\" dojoETItemName=\"plainformatblock\">\n\t\t\t\t\t\t<!-- FIXME: using \"p\" here inserts a paragraph in most cases! -->\n\t\t\t\t\t\t<option value=\"\">-- format --</option>\n\t\t\t\t\t\t<option value=\"p\">Normal</option>\n\t\t\t\t\t\t<option value=\"pre\">Fixed Font</option>\n\t\t\t\t\t\t<option value=\"h1\">Main Heading</option>\n\t\t\t\t\t\t<option value=\"h2\">Section Heading</option>\n\t\t\t\t\t\t<option value=\"h3\">Sub-Heading</option>\n\t\t\t\t\t\t<!-- <option value=\"blockquote\">Block Quote</option> -->\n\t\t\t\t\t</select>\n\t\t\t\t</td>\n\t\t\t\t<td><!-- uncomment to enable save button -->\n\t\t\t\t\t<!-- save -->\n\t\t\t\t\t<!--span class=\"iconContainer dojoEditorToolbarItem\" dojoETItemName=\"save\">\n\t\t\t\t\t\t<span class=\"dojoE2TBIcon dojoE2TBIcon_Save\">&nbsp;</span>\n\t\t\t\t\t</span-->\n\t\t\t\t</td>\n\t\t\t\t<td width=\"*\">&nbsp;</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</div>\n"), toolbarTemplateCssPath:null, toolbarP
 laceHolder:"", _inSourceMode:false, _htmlEditNode:null, toolbarGroup:"", shareToolbar:false, contextMenuGroupSet:"", editorOnLoad:function () {dojo.event.topic.publish("dojo.widget.Editor2::preLoadingToolbar", this);if (this.toolbarAlwaysVisible) {dojo.require("dojo.widget.Editor2Plugin.AlwaysShowToolbar");}
+if (this.toolbarWidget) {this.toolbarWidget.show();dojo.html.insertBefore(this.toolbarWidget.domNode, this.domNode.firstChild);} else {if (this.shareToolbar) {dojo.deprecated("Editor2:shareToolbar is deprecated in favor of toolbarGroup", "0.5");this.toolbarGroup = "defaultDojoToolbarGroup";}
+if (this.toolbarGroup) {if (dojo.widget.Editor2ToolbarGroups[this.toolbarGroup]) {this.toolbarWidget = dojo.widget.Editor2ToolbarGroups[this.toolbarGroup];}}
+if (!this.toolbarWidget) {var tbOpts = {shareGroup:this.toolbarGroup, parent:this};tbOpts.templateString = dojo.uri.cache.get(this.toolbarTemplatePath);if (this.toolbarTemplateCssPath) {tbOpts.templateCssPath = this.toolbarTemplateCssPath;tbOpts.templateCssString = dojo.uri.cache.get(this.toolbarTemplateCssPath);}
+if (this.toolbarPlaceHolder) {this.toolbarWidget = dojo.widget.createWidget("Editor2Toolbar", tbOpts, dojo.byId(this.toolbarPlaceHolder), "after");} else {this.toolbarWidget = dojo.widget.createWidget("Editor2Toolbar", tbOpts, this.domNode.firstChild, "before");}
+if (this.toolbarGroup) {dojo.widget.Editor2ToolbarGroups[this.toolbarGroup] = this.toolbarWidget;}
+dojo.event.connect(this, "close", this.toolbarWidget, "hide");this.toolbarLoaded();}}
+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) {var html = this.getEditorContent();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 = html;with (this.editorObject.style) {position = "absolute";left = "-2000px";top = "-2000px";}} else {this._inSourceMode = false;this._htmlEditNode.blur();with (this.editorObject.style) {position = "";left = "";top = "";}
+var html = this._htmlEditNode.value;dojo.lang.setTimeout(this, "replaceEditorContent", 1, html);this._htmlEditNode.style.display = "none";this.focus();}
+this.onDisplayChanged(null, 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);}, _lastStateTimestamp:0, onDisplayChanged:function (e, forceUpdate) {this._lastStateTimestamp = (new Date()).getTime();dojo.widget.Editor2.superclass.onDisplayChanged.call(this, e);this.updateToolbar(forceUpdate);}, 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) {return this._htmlEditNode.value;}
+return dojo.widget.Editor2.superclass.getEditorContent.call(this);}, replaceEditorContent:function (html) {if (this._inSourceMode) {this._htmlEditNode.value = html;return;}
+dojo.widget.Editor2.superclass.replaceEditorContent.apply(this, arguments);}, getCommand:function (name) {if (this._loadedCommands[name]) {return this._loadedCommands[name];}
+var cmd = dojo.widget.Editor2Manager.getCommand(this, name);this._loadedCommands[name] = cmd;return cmd;}, shortcuts:[["bold"], ["italic"], ["underline"], ["selectall", "a"], ["insertunorderedlist", "\\"]], setupDefaultShortcuts:function () {var exec = function (cmd) {return function () {cmd.execute();};};var self = this;dojo.lang.forEach(this.shortcuts, function (item) {var cmd = self.getCommand(item[0]);if (cmd) {self.addKeyHandler(item[1] ? item[1] : item[0].charAt(0), item[2] == undefined ? self.KEY_CTRL : item[2], exec(cmd));}});}});
\ No newline at end of file

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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,13 @@
+
+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.moduleUri("dojo.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;if (tdn.previousSibling) {this._IEOriginalPos = ["after", tdn.previousSibling];} else {if (tdn.nextSibling) {this._IEOriginalPos = ["before", tdn.nextSibling];} else {this._IEOriginalPos = ["", tdn.parentNode];}}
+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");if (this._IEOriginalPos) {dojo.html.insertAtPosition(tdn, this._IEOriginalPos[1], this._IEOriginalPos[0]);this._IEOriginalPos = null;} else {dojo.html.insertBefore(tdn, this.editor.object || this.editor.iframe);}}
+tdn.style.width = "";this._fixEnabled = false;}}
+}, destroy:function () {this._IEOriginalPos = null;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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,20 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.ContextMenu");dojo.require("dojo.widget.Menu2");dojo.event.topic.subscribe("dojo.widget.Editor2::onLoad", function (editor) {dojo.widget.Editor2Plugin.ContextMenuManager.getContextMenu(editor);});dojo.widget.Editor2Plugin.ContextMenuManager = {menuGroups:["Generic", "Link", "Anchor", "Image", "List", "Table"], _contextMenuGroupSets:{}, _registeredGroups:{}, _menus:{}, 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 + "ContextMenuGroup"](contextmenuplugin);case "Anchor":
+case "List":
+}}, registerGroupSet:function (name, set) {this._contextMenuGroupSets[name] = set;}, removeGroupSet:function (name) {var set = this._contextMenuGroupSets[name];delete this._contextMenuGroupSets[name];return set;}, getContextMenu:function (editor) {var set = editor.contextMenuGroupSet || "defaultDojoEditor2MenuGroupSet";if (this._menus[set]) {this._menus[set].bindEditor(editor);return this._menus[set];}
+var gs = (editor.contextMenuGroupSet && this._contextMenuGroupSets[editor.contextMenuGroupSet]) || this.menuGroups;var menu = new dojo.widget.Editor2Plugin.ContextMenu(editor, gs);this._menus[set] = menu;return menu;}};dojo.declare("dojo.widget.Editor2Plugin.ContextMenu", null, function (editor, gs) {this.groups = [];this.separators = [];this.editor = editor;this.editor.registerLoadedPlugin(this);this.contextMenu = dojo.widget.createWidget("PopupMenu2", {});dojo.body().appendChild(this.contextMenu.domNode);this.bindEditor(this.editor);dojo.event.connect(this.contextMenu, "aboutToShow", this, "aboutToShow");dojo.event.connect(this.editor, "destroy", this, "destroy");this.setup(gs);}, {bindEditor:function (editor) {this.contextMenu.bindDomNode(editor.document.body);}, setup:function (gs) {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:"", buildRendering:function () {var curInst = dojo.widget.Editor2Manager.getCurrentInstance();this.caption = curInst.getCommand(this.command).getText();dojo.widget.Editor2ContextMenuItem.superclass.buildRendering.apply(this, arguments);}, onClick:function () {var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if (curInst) {var _command = curInst.getCommand(this.command);if (_command) {_command.execute();}}
+}, refresh:function () {var curInst = dojo.widget.Editor2Manager.getCurrentInstance();if (curInst) {var _command = curInst.getCommand(this.command);if (_command) {if (_command.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.SimpleContextMenuGroup", 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.GenericContextMenuGroup", dojo.widget.Editor2Plugin.SimpleContextMenuGroup, {createItems:function () {this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {command:"cut", iconClass:"dojoE2TBIcon dojoE2TBIcon_Cut"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {command:"copy", iconClass:"dojoE2TBIcon dojoE2TBIcon_Copy"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {command:"paste", iconClass:"dojoE2TBIcon dojoE2TBIcon_Paste"}));}});dojo.declare("dojo.widget.Editor2Plugin.LinkContextMenuGroup", dojo.widget.Editor2Plugin.SimpleContextMenuGroup, {createItems:function () {this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {command:"createlink", iconClass:"dojoE2TBIcon dojoE2TBIcon_Link"}));this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {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.ImageContextMenuGroup", dojo.widget.Editor2Plugin.SimpleContextMenuGroup, {createItems:function () {this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/ContextMenu.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.CreateLinkDialog");dojo.widget.defineWidget("dojo.widget.Editor2CreateLinkDialog", dojo.widget.Editor2DialogContent, {templateString:"<table>\n<tr><td>URL</td><td> <input type=\"text\" dojoAttachPoint=\"link_href\" name=\"dojo_createLink_href\"/></td></tr>\n<tr><td>Target </td><td><select dojoAttachPoint=\"link_target\">\n\t<option value=\"\">Self</option>\n\t<option value=\"_blank\">New Window</option>\n\t<option value=\"_top\">Top Window</option>\n\t</select></td></tr>\n<tr><td>Class </td><td><input type=\"text\" dojoAttachPoint=\"link_class\" /></td></tr>\n<tr><td colspan=\"2\">\n\t<table><tr>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:ok'>OK</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Cancel</button></td>\n\t</tr></table>\n\t</td></tr>\n</table>\n", 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.");return 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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -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) {this._editor.focus();if (window.find) {this._editor.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 = this._editor.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.");}}
+}, getText:function () {return "Find";}});dojo.widget.Editor2Plugin.FindReplace = {getCommand:function (editor, name) {var name = name.toLowerCase();var command;if (name == "find") {command = new dojo.widget.Editor2Plugin.FindCommand(editor, "find", {contentFile:"dojo.widget.Editor2Plugin.FindReplaceDialog", contentClass:"Editor2FindDialog", title:"Find", width:"350px", height:"150px", modal:false});} else {if (name == "replace") {command = new dojo.widget.Editor2DialogCommand(editor, "replace", {contentFile:"dojo.widget.Editor2Plugin.FindReplaceDialog", contentClass:"Editor2ReplaceDialog", href:dojo.uri.cache.set(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/Dialog/replace.html"), "<table style=\"white-space: nowrap;\">\n<tr><td>Find: </td><td> <input type=\"text\" dojoAttachPoint=\"replace_text\" /></td></tr>\n<tr><td>Replace with: </td><td> <input type=\"text\" dojoAttachPoint=\"replace_text\" /></td></tr>\n<tr><td colspan='2'><table><tr><td><input type=\"checkbox\
 " dojoType=\"CheckBox\" dojoAttachPoint=\"replace_option_casesens\" id=\"dojo_replace_option_casesens\" />\n\t\t<label for=\"dojo_replace_option_casesens\">Case Sensitive</label></td>\n\t\t\t<td><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"replace_option_backwards\" id=\"dojo_replace_option_backwards\" />\n\t\t<label for=\"dojo_replace_option_backwards\">Search Backwards</label></td></tr></table></td></tr>\n<tr><td colspan=2\">\n\t<table><tr>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:replace'>Replace</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:replaceAll'>Replace All</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Close</button></td>\n\t</tr></table>\n\t</td></tr>\n</table>\n"), title:"Replace", width:"350px", height:"200px", modal:false});}}
+return command;}, getToolbarItem: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.Editor2Manager.registerHandler(dojo.widget.Editor2Plugin.FindReplace.getCommand);dojo.widget.Editor2ToolbarItemManager.registerHandler(dojo.widget.Editor2Plugin.FindReplace.getToolbarItem);
\ No newline at end of file

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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplace.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.FindReplaceDialog");dojo.widget.defineWidget("dojo.widget.Editor2FindDialog", dojo.widget.Editor2DialogContent, {templateString:"<table style=\"white-space: nowrap;\">\n<tr><td colspan='2'>Find: <input type=\"text\" dojoAttachPoint=\"find_text\" /></td></tr>\n<tr><td><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"find_option_casesens\" />\n\t\t<label for=\"find_option_casesens\">Case Sensitive</label></td>\n\t\t\t<td><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"find_option_backwards\" />\n\t\t<label for=\"find_option_backwards\">Search Backwards</label></td></tr>\n<tr><td style=\"display: none;\"><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"find_option_wholeword\" />\n\t\t<label for=\"find_option_wholeword\">Whole Word</label></td>\n<tr><td colspan=\"1\">\n\t<table><tr>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:find'>Find</button></td>\n\t<td><button dojoType='Bu
 tton' dojoAttachEvent='onClick:cancel'>Close</button></td>\n\t</tr></table>\n\t</td></tr>\n</table>\n", find:function () {var curInst = dojo.widget.Editor2Manager.getCurrentInstance();var findcmd = curInst.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, {templateString:"<table style=\"white-space: nowrap;\">\n<tr><td>Find: </td><td> <input type=\"text\" dojoAttachPoint=\"replace_text\" /></td></tr>\n<tr><td>Replace with: </td><td> <input type=\"text\" dojoAttachPoint=\"replace_text\" /></td></tr>\n<tr><td colspan='2'><table><tr><td><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"replace_option_casesens\" id=\"dojo_replace_option_casesens\" />\n\t\t<label for=\"dojo_replace_option_casesens\">Case Sensitive</label></td>\n\t\t\t<td><input type=\"checkbox\" dojoType=\"CheckBox\" dojoAttachPoint=\"replace_option_backwards\" id=\"dojo_replace_option_backwards\" />\n\t\t<label for=\"dojo_replace_option_backwards\">Search Backwards</label></td></tr></table></td></tr>\n<tr><td colspan=2\">\n\t<table><tr>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:replace'>Rep
 lace</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:replaceAll'>Replace All</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Close</button></td>\n\t</tr></table>\n\t</td></tr>\n</table>\n", 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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,8 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.InsertImageDialog");dojo.widget.defineWidget("dojo.widget.Editor2InsertImageDialog", dojo.widget.Editor2DialogContent, {templateString:"<table cellspacing=\"1\" cellpadding=\"1\" border=\"0\" width=\"100%\" height=\"100%\">\n\t<tr>\n\t\t<td>\n\t\t\t<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td width=\"100%\">\n\t\t\t\t\t\t<span>URL</span>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"display: none\" nowrap=\"nowrap\" rowspan=\"2\">\n\t\t\t\t\t\t<!--input id=\"btnBrowse\" onclick=\"BrowseServer();\" type=\"button\" value=\"Browse Server\"/-->\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td valign=\"top\">\n\t\t\t\t\t\t<input dojoAttachPoint=\"image_src\" style=\"width: 100%\" type=\"text\" />\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td>\n\t\t\t<span>Alternative Text</span><br />\n\t\t\t<input dojoAttachPoint=\"image_alt\" style=\"width
 : 100%\" type=\"text\" /><br />\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td valign=\"top\">\n\t\t\t<table><tr><td>\n\t\t\t\t\t\t<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span>Width</span>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input type=\"text\" size=\"3\" dojoAttachPoint=\"image_width\" /></td>\n\n\t\t\t\t\t\t\t\t<td rowspan=\"2\">\n\t\t\t\t\t\t\t\t\t<!--div id=\"btnLockSizes\" class=\"BtnLocked\" onmouseover=\"this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';\"\n\t\t\t\t\t\t\t\t\t\tonmouseout=\"this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );\" title=\"Lock Sizes\"\n\t\t\t\t\t\t\t\t\t\tonclick=\"SwitchLock(this);\">\n\t\t\t\t\t\t\t\t\t</div-->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td rowspan=\"2\">\n\t\t\t\t\t\t\t\t\t<!--div id=\"btnResetSize\" class=\"BtnReset\" onmouseover=\"this.className='BtnReset BtnOver';\"\n\t\t\t\t\t\t\t\t\
 t\tonmouseout=\"this.className='BtnReset';\" title=\"Reset Size\" onclick=\"ResetSizes();\">\n\t\t\t\t\t\t\t\t\t</div-->\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span>Height</span>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input type=\"text\" size=\"3\" dojoAttachPoint=\"image_height\" /></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td><td>\n\n\t\t\t\t\t\t<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n\t\t\t\t\t\t\t<tr>\n\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span >HSpace</span>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input type=\"text\" size=\"2\" dojoAttachPoint=\"image_hspace\"/></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span >VSpace</span>&nbsp;</td>\n\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input type=\"text\" size=\"2\" dojoAttachPoint=\"image_vspac
 e\" /></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td></tr>\n\t\t\t\t\t<tr><td colspan=\"2\">\n\t\t\t\t\t\t<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span>Border</span>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<input type=\"text\" size=\"2\" value=\"\" dojoAttachPoint=\"image_border\" /></td>\n\t\t\t\t\t\t\t\t<td>&nbsp;&nbsp;&nbsp;</td>\n\t\t\t\t\t\t\t\t<td nowrap=\"nowrap\">\n\t\t\t\t\t\t\t\t\t<span >Align</span>&nbsp;</td>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<select dojoAttachPoint=\"image_align\">\n\n\t\t\t\t\t\t\t\t\t\t<option value=\"\" selected=\"selected\"></option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"left\">Left</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"absBottom\">Abs Bottom</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"absMiddle\">Abs Middle</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"baseline\">Baseline</option>\n\t\t\t\t\t\t\t\t\t\
 t<option value=\"bottom\">Bottom</option>\n\n\t\t\t\t\t\t\t\t\t\t<option value=\"middle\">Middle</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"right\">Right</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"textTop\">Text Top</option>\n\t\t\t\t\t\t\t\t\t\t<option value=\"top\">Top</option>\n\t\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr></table>\n\t\t</td>\n\t</tr>\n\t<tr><td>\n\t\t<table><tr>\n\t\t<td><button dojoType='Button' dojoAttachEvent='onClick:ok'>OK</button></td>\n\t\t<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Cancel</button></td>\n\t\t</tr></table>\n\t</td></tr>\n</table>\n", 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.im
 ageNode = 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 = curInst.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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,18 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.InsertTableDialog");dojo.widget.defineWidget("dojo.widget.Editor2InsertTableDialog", dojo.widget.Editor2DialogContent, {templateString:"<div>\n<table cellSpacing=\"1\" cellPadding=\"1\" width=\"100%\" border=\"0\">\n\t<tr>\n\t\t<td valign=\"top\">\n\t\t\t<table cellSpacing=\"0\" cellPadding=\"0\" border=\"0\">\n\t\t\t\t<tr>\n\n\t\t\t\t\t<td><span>Rows</span>:</td>\n\t\t\t\t\t<td>&nbsp;<input dojoAttachPoint=\"table_rows\" type=\"text\" maxLength=\"3\" size=\"2\" value=\"3\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><span>Columns</span>:</td>\n\t\t\t\t\t<td>&nbsp;<input dojoAttachPoint=\"table_cols\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"2\"></td>\n\t\t\t\t</tr>\n\n\t\t\t\t<tr>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><span>Border size</span>:</td>\n\t\t\t\t\t<td>&nbsp;<INPUT dojoAttachPoint=\"table_border\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"1\"><
 /td>\n\t\t\t\t</tr>\n\n\t\t\t\t<tr>\n\t\t\t\t\t<td><span>Alignment</span>:</td>\n\t\t\t\t\t<td>&nbsp;<select dojoAttachPoint=\"table_align\">\n\t\t\t\t\t\t\t<option value=\"\" selected>&lt;Not set&gt;</option>\n\t\t\t\t\t\t\t<option value=\"left\">Left</option>\n\t\t\t\t\t\t\t<option value=\"center\">Center</option>\n\t\t\t\t\t\t\t<option value=\"right\">Right</option>\n\t\t\t\t\t\t</select></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t\t<td>&nbsp;&nbsp;&nbsp;</td>\n\t\t<td align=\"right\" valign=\"top\">\n\t\t\t<table cellSpacing=\"0\" cellPadding=\"0\" border=\"0\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td><span>Width</span>:</td>\n\t\t\t\t\t<td>&nbsp;<input dojoAttachPoint=\"table_width\" type=\"text\" maxLength=\"4\" size=\"3\"></td>\n\t\t\t\t\t<td>&nbsp;<select dojoAttachPoint=\"table_widthtype\">\n\t\t\t\t\t\t\t<option value=\"percent\" selected>percent</option>\n\t\t\t\t\t\t\t<option value=\"pixels\">pixels</option>\n\t\t\t\t\t\t</select></td>\n\n\t\t\t\t</tr>\n\t\t\t\t<tr>\
 n\t\t\t\t\t<td><span>Height</span>:</td>\n\t\t\t\t\t<td>&nbsp;<INPUT dojoAttachPoint=\"table_height\" type=\"text\" maxLength=\"4\" size=\"3\"></td>\n\t\t\t\t\t<td>&nbsp;<span>pixels</span></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td nowrap><span>Cell spacing</span>:</td>\n\t\t\t\t\t<td>&nbsp;<input dojoAttachPoint=\"table_cellspacing\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"1\"></td>\n\t\t\t\t\t<td>&nbsp;</td>\n\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td nowrap><span>Cell padding</span>:</td>\n\t\t\t\t\t<td>&nbsp;<input dojoAttachPoint=\"table_cellpadding\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"1\"></td>\n\t\t\t\t\t<td>&nbsp;</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t</tr>\n</table>\n<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"0\">\n\t<tr>\n\t\t<td nowrap><span>Caption</span>:</td>\n\t\t<td>&nbsp;</td>\n\t\t<
 td width=\"100%\" nowrap>&nbsp;\n\t\t\t<input dojoAttachPoint=\"table_caption\" type=\"text\" style=\"WIDTH: 90%\"></td>\n\t</tr>\n\t<tr>\n\t\t<td nowrap><span>Summary</span>:</td>\n\t\t<td>&nbsp;</td>\n\t\t<td width=\"100%\" nowrap>&nbsp;\n\t\t\t<input dojoAttachPoint=\"table_summary\" type=\"text\" style=\"WIDTH: 90%\"></td>\n\t</tr>\n</table>\n<table><tr>\n<td><button dojoType='Button' dojoAttachEvent='onClick:ok'>Ok</button></td>\n<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Cancel</button></td>\n</tr></table>\n</div>\n", editableAttributes:["summary", "height", "cellspacing", "cellpadding", "border", "align"], loadContent:function () {var curInst = dojo.widget.Editor2Manager.getCurrentInstance();curInst.saveSelection();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", d
 ojo.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.restoreSelection();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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,6 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.SimpleSignalCommands");dojo.require("dojo.widget.Editor2");dojo.declare("dojo.widget.Editor2Plugin.SimpleSignalCommand", dojo.widget.Editor2Command, function (editor, name) {if (dojo.widget.Editor2.prototype[name] == undefined) {dojo.widget.Editor2.prototype[name] = function () {};}}, {execute:function () {this._editor[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");}}
+}, getCommand:function (editor, name) {var signal;dojo.lang.every(this.signals, function (s) {if (s.toLowerCase() == name.toLowerCase()) {signal = s;return false;}
+return true;});if (signal) {return new dojo.widget.Editor2Plugin.SimpleSignalCommand(editor, signal);}}};if (dojo.widget.Editor2Plugin["_SimpleSignalCommands"]) {dojo.lang.mixin(dojo.widget.Editor2Plugin.SimpleSignalCommands, dojo.widget.Editor2Plugin["_SimpleSignalCommands"]);}
+dojo.widget.Editor2Manager.registerHandler(dojo.widget.Editor2Plugin.SimpleSignalCommands, "getCommand");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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,12 @@
+
+dojo.provide("dojo.widget.Editor2Plugin.TableOperation");dojo.require("dojo.widget.Editor2");dojo.event.topic.subscribe("dojo.widget.RichText::init", function (editor) {if (dojo.render.html.ie) {editor.contentDomPreFilters.push(dojo.widget.Editor2Plugin.TableOperation.showIETableBorder);editor.contentDomPostFilters.push(dojo.widget.Editor2Plugin.TableOperation.removeIEFakeClass);}
+editor.getCommand("toggletableborder");});dojo.lang.declare("dojo.widget.Editor2Plugin.deleteTableCommand", dojo.widget.Editor2Command, {execute:function () {var table = dojo.withGlobal(this._editor.window, "getAncestorElement", dojo.html.selection, ["table"]);if (table) {dojo.withGlobal(this._editor.window, "selectElement", dojo.html.selection, [table]);this._editor.execCommand("inserthtml", " ");}}, getState:function () {if (this._editor._lastStateTimestamp > this._updateTime || this._state == undefined) {this._updateTime = this._editor._lastStateTimestamp;var table = dojo.withGlobal(this._editor.window, "hasAncestorElement", dojo.html.selection, ["table"]);this._state = table ? dojo.widget.Editor2Manager.commandState.Enabled : dojo.widget.Editor2Manager.commandState.Disabled;}
+return this._state;}, getText:function () {return "Delete Table";}});dojo.lang.declare("dojo.widget.Editor2Plugin.toggleTableBorderCommand", dojo.widget.Editor2Command, function () {this._showTableBorder = false;dojo.event.connect(this._editor, "editorOnLoad", this, "execute");}, {execute:function () {if (this._showTableBorder) {this._showTableBorder = false;if (dojo.render.html.moz) {this._editor.removeStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_gecko.css"));} else {if (dojo.render.html.ie) {this._editor.removeStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_ie.css"));}}
+} else {this._showTableBorder = true;if (dojo.render.html.moz) {this._editor.addStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_gecko.css"));} else {if (dojo.render.html.ie) {this._editor.addStyleSheet(dojo.uri.moduleUri("dojo.widget", "templates/Editor2/showtableborder_ie.css"));}}
+}}, getText:function () {return "Toggle Table Border";}, getState:function () {return this._showTableBorder ? dojo.widget.Editor2Manager.commandState.Latched : dojo.widget.Editor2Manager.commandState.Enabled;}});dojo.widget.Editor2Plugin.TableOperation = {getCommand:function (editor, name) {switch (name.toLowerCase()) {case "toggletableborder":
+return new dojo.widget.Editor2Plugin.toggleTableBorderCommand(editor, name);case "inserttable":
+return new dojo.widget.Editor2DialogCommand(editor, "inserttable", {contentFile:"dojo.widget.Editor2Plugin.InsertTableDialog", contentClass:"Editor2InsertTableDialog", title:"Insert/Edit Table", width:"450px", height:"250px"});case "deletetable":
+return new dojo.widget.Editor2Plugin.deleteTableCommand(editor, name);}}, 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.TableContextMenuGroup(contextmenuplugin);}, 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.registerHandler(dojo.widget.Editor2Plugin.TableOperation.getCommand);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.TableContextMenuGroup", dojo.widge
 t.Editor2Plugin.SimpleContextMenuGroup, {createItems:function () {this.items.push(dojo.widget.createWidget("Editor2ContextMenuItem", {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;}}});}

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

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Editor2Plugin/TableOperation.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=536397
==============================================================================
--- 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 Tue May  8 19:56:15 2007
@@ -0,0 +1,5 @@
+
+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