📄 editor2toolbar.js
字号:
dojo.event.connect(this._dropdown, "close", this, 'enableToolbarItem'); } }, setColor: function(color){ this._dropdown.close(); this._command.execute(color); }});// summary: dojo.widget.Editor2ToolbarFormatBlockPlainSelect provides a simple select for setting block formatdojo.declare("dojo.widget.Editor2ToolbarFormatBlockPlainSelect", dojo.widget.Editor2ToolbarButton,{ create: function(node, toolbar){ //TODO: check node is a select this._domNode = node; this.disableSelection(this._domNode); this._parentToolbar = toolbar; dojo.event.connect(this._domNode, 'onchange', this, 'onChange'); }, destroy: function(){ this._domNode = null; this._command = null; this._parentToolbar = null; }, onChange: function(){ if(this._domNode){ var sv = this._domNode.value.toLowerCase(); this._command.execute(sv); } }, refreshState: function(){ if(this._domNode && this._command){ dojo.widget.Editor2ToolbarFormatBlockPlainSelect.superclass.refreshState.call(this); var format = this._command.getValue(); if(!format){ format = ""; } dojo.lang.forEach(this._domNode.options, function(item){ if(item.value.toLowerCase() == format.toLowerCase()){ item.selected = true; } }); } }});// summary: dojo.widget.Editor2ToolbarComboItem provides an external loaded dropdown listdojo.declare("dojo.widget.Editor2ToolbarComboItem", dojo.widget.Editor2ToolbarDropDownButton,{ href: null, create: function(node, toolbar){ dojo.widget.Editor2ToolbarComboItem.superclass.create.call(this, node, toolbar); //do not use lazy initilization, as we need the local names in refreshState() if(!this._contentPane){ dojo.require("dojo.widget.ContentPane"); this._contentPane = dojo.widget.createWidget("ContentPane", {preload: 'true'}); this._contentPane.addOnLoad(this, "setup"); this._contentPane.setUrl(this.href); } }, onMouseOver: function(e){ dojo.html.addClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectStyle); }, onMouseOut:function(e){ dojo.html.removeClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectStyle); }, onDropDownShown: function(){ if(!this._dropdown.__addedContentPage){ this._dropdown.addChild(this._contentPane); this._dropdown.__addedContentPage = true; } }, setup: function(){ // summary: overload this to connect event }, onChange: function(e){ var name = e.currentTarget.getAttribute("dropDownItemName"); this._command.execute(name); this._dropdown.close(); }, onMouseOverItem: function(e){ dojo.html.addClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectItemStyle); }, onMouseOutItem: function(e){ dojo.html.removeClass(e.currentTarget, this._parentToolbar.ToolbarHighlightedSelectItemStyle); }, refreshState: function(){ // summary: overload this to update GUI item }});// summary: dojo.widget.Editor2ToolbarFormatBlockSelect is an improved format block setting itemdojo.declare("dojo.widget.Editor2ToolbarFormatBlockSelect", dojo.widget.Editor2ToolbarComboItem,{ href: dojo.uri.dojoUri("src/widget/templates/Editor2/EditorToolbar_FormatBlock.html"), setup: function(){ dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.setup.call(this); var nodes = this._contentPane.domNode.all || this._contentPane.domNode.getElementsByTagName("*"); this._blockNames = {}; this._blockDisplayNames = {}; for(var x=0; x<nodes.length; x++){ var node = nodes[x]; dojo.html.disableSelection(node); var name=node.getAttribute("dropDownItemName") if(name){ this._blockNames[name] = node; var childrennodes = node.getElementsByTagName(name); this._blockDisplayNames[name] = childrennodes[childrennodes.length-1].innerHTML; } } for(var name in this._blockNames){ dojo.event.connect(this._blockNames[name], "onclick", this, "onChange"); dojo.event.connect(this._blockNames[name], "onmouseover", this, "onMouseOverItem"); dojo.event.connect(this._blockNames[name], "onmouseout", this, "onMouseOutItem"); } }, onDropDownDestroy: function(){ if(this._blockNames){ for(var name in this._blockNames){ delete this._blockNames[name]; delete this._blockDisplayNames[name]; } } }, refreshState: function(){ if(this._command){ //dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.refreshState.call(this); var format = this._command.getValue(); if(format == this._lastSelectedFormat && this._blockDisplayNames){ return; } this._lastSelectedFormat = format; var label = this._domNode.getElementsByTagName("label")[0]; var isSet = false; if(this._blockDisplayNames){ for(var name in this._blockDisplayNames){ if(name == format){ label.innerHTML = this._blockDisplayNames[name]; isSet = true; break; } } if(!isSet){ label.innerHTML = " "; } } } }});// summary: dojo.widget.Editor2ToolbarFontSizeSelect provides a dropdown list for setting fontsizedojo.declare("dojo.widget.Editor2ToolbarFontSizeSelect", dojo.widget.Editor2ToolbarComboItem,{ href: dojo.uri.dojoUri("src/widget/templates/Editor2/EditorToolbar_FontSize.html"), setup: function(){ dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.setup.call(this); var nodes = this._contentPane.domNode.all || this._contentPane.domNode.getElementsByTagName("*"); this._fontsizes = {}; this._fontSizeDisplayNames = {}; for(var x=0; x<nodes.length; x++){ var node = nodes[x]; dojo.html.disableSelection(node); var name=node.getAttribute("dropDownItemName") if(name){ this._fontsizes[name] = node; this._fontSizeDisplayNames[name] = node.getElementsByTagName('font')[0].innerHTML; } } for(var name in this._fontsizes){ dojo.event.connect(this._fontsizes[name], "onclick", this, "onChange"); dojo.event.connect(this._fontsizes[name], "onmouseover", this, "onMouseOverItem"); dojo.event.connect(this._fontsizes[name], "onmouseout", this, "onMouseOutItem"); } }, onDropDownDestroy: function(){ if(this._fontsizes){ for(var name in this._fontsizes){ delete this._fontsizes[name]; delete this._fontSizeDisplayNames[name]; } } }, refreshState: function(){ if(this._command){ //dojo.widget.Editor2ToolbarFormatBlockSelect.superclass.refreshState.call(this); var size = this._command.getValue(); if(size == this._lastSelectedSize && this._fontSizeDisplayNames){ return; } this._lastSelectedSize = size; var label = this._domNode.getElementsByTagName("label")[0]; var isSet = false; if(this._fontSizeDisplayNames){ for(var name in this._fontSizeDisplayNames){ if(name == size){ label.innerHTML = this._fontSizeDisplayNames[name]; isSet = true; break; } } if(!isSet){ label.innerHTML = " "; } } } }});// summary: dojo.widget.Editor2ToolbarFontNameSelect provides a dropdown list for setting fontnamedojo.declare("dojo.widget.Editor2ToolbarFontNameSelect", dojo.widget.Editor2ToolbarFontSizeSelect,{ href: dojo.uri.dojoUri("src/widget/templates/Editor2/EditorToolbar_FontName.html")});// summary:// dojo.widget.Editor2Toolbar is the main widget for the toolbar associated with an Editor2dojo.widget.defineWidget( "dojo.widget.Editor2Toolbar", dojo.widget.HtmlWidget, { templatePath: dojo.uri.dojoUri("src/widget/templates/EditorToolbar.html"), templateCssPath: dojo.uri.dojoUri("src/widget/templates/EditorToolbar.css"), // DOM Nodes// saveButton: null, // String: class name for latched toolbar button items ToolbarLatchedItemStyle: "ToolbarButtonLatched", // String: class name for enabled toolbar button items ToolbarEnabledItemStyle: "ToolbarButtonEnabled", // String: class name for disabled toolbar button items ToolbarDisabledItemStyle: "ToolbarButtonDisabled", // String: class name for highlighted toolbar button items ToolbarHighlightedItemStyle: "ToolbarButtonHighlighted", // String: class name for highlighted toolbar select items ToolbarHighlightedSelectStyle: "ToolbarSelectHighlighted", // String: class name for highlighted toolbar select dropdown items ToolbarHighlightedSelectItemStyle: "ToolbarSelectHighlightedItem",// itemNodeType: 'span', //all the items (with attribute dojoETItemName set) defined in the toolbar should be a of this type postCreate: function(){ var nodes = dojo.html.getElementsByClass("dojoEditorToolbarItem", this.domNode/*, this.itemNodeType*/); this.items = {}; for(var x=0; x<nodes.length; x++){ var node = nodes[x]; var itemname = node.getAttribute("dojoETItemName"); if(itemname){ var item = dojo.widget.Editor2ToolbarItemManager.getToolbarItem(itemname); if(item){ item.create(node, this); this.items[itemname.toLowerCase()] = item; }else{ //hide unsupported toolbar items node.style.display = "none"; } } } }, update: function(){ // summary: update all the toolbar items for(var cmd in this.items){ this.items[cmd].refreshState(); } }, destroy: function(){ for(var it in this.items){ this.items[it].destroy(); delete this.items[it]; } dojo.widget.Editor2Toolbar.superclass.destroy.call(this); }//, // stub for observers// exec: function(what, arg){ /* dojo.debug(what, new Date()); */ } }, "html", function(){ dojo.event.connect(this, "fillInTemplate", dojo.lang.hitch(this, function(){ if(dojo.render.html.ie){ this.domNode.style.zoom = 1.0; } })); });
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -