/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/FindReplace.js |
---|
New file |
0,0 → 1,59 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js |
---|
New file |
0,0 → 1,32 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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='Button' 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'>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", replace:function () { |
alert("not implemented yet"); |
}, replaceAll:function () { |
alert("not implemented yet"); |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/InsertTableDialog.js |
---|
New file |
0,0 → 1,129 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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> <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> <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> </td>\n\t\t\t\t\t<td> </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> <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> <select dojoAttachPoint=\"table_align\">\n\t\t\t\t\t\t\t<option value=\"\" selected><Not set></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> </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> <input dojoAttachPoint=\"table_width\" type=\"text\" maxLength=\"4\" size=\"3\"></td>\n\t\t\t\t\t<td> <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> <INPUT dojoAttachPoint=\"table_height\" type=\"text\" maxLength=\"4\" size=\"3\"></td>\n\t\t\t\t\t<td> <span>pixels</span></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td> </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> <input dojoAttachPoint=\"table_cellspacing\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"1\"></td>\n\t\t\t\t\t<td> </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> <input dojoAttachPoint=\"table_cellpadding\" type=\"text\" maxLength=\"2\" size=\"2\" value=\"1\"></td>\n\t\t\t\t\t<td> </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> </td>\n\t\t<td width=\"100%\" nowrap> \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> </td>\n\t\t<td width=\"100%\" nowrap> \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", 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.restoreSelection(); |
curInst.execCommand("inserthtml", html); |
this.cancel(); |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js |
---|
New file |
0,0 → 1,61 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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(); |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js |
---|
New file |
0,0 → 1,116 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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"); |
} |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js |
---|
New file |
0,0 → 1,44 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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); |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/InsertImageDialog.js |
---|
New file |
0,0 → 1,53 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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> </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> </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> </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> </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_vspace\" /></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> </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> </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> </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.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 = 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(); |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/__package__.js |
---|
New file |
0,0 → 1,13 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
dojo.kwCompoundRequire({common:["dojo.widget.Editor2", "dojo.widget.Editor2Toolbar"]}); |
dojo.provide("dojo.widget.Editor2Plugin.*"); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/TableOperation.js |
---|
New file |
0,0 → 1,118 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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.widget.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; |
} |
}}); |
} |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/ContextMenu.js |
---|
New file |
0,0 → 1,201 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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; |
} |
}}); |
/branches/livraison_narmer/api/js/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js |
---|
New file |
0,0 → 1,50 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
http://dojotoolkit.org/community/licensing.shtml |
*/ |
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); |