⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editor2toolbar.js

📁 struts hibernet spring
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	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.Editor2Toolbar");dojo.require("dojo.lang.*");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.widget.RichText");dojo.require("dojo.widget.PopupContainer");dojo.require("dojo.widget.ColorPalette");// Object: Manager available editor2 toolbar itemsdojo.widget.Editor2ToolbarItemManager = {	_registeredItemHandlers: [],	registerHandler: function(/*Object*/obj, /*String*/func){		// summary: register a toolbar item handler		// obj: object which has the function to call		// func: the function in the object		if(arguments.length == 2){			this._registeredItemHandlers.push(function(){return obj[func].apply(obj, arguments);});		}else{			/* obj: Function			    func: null			    pId: f *///			for(i in this._registeredItemHandlers){//				if(func === this._registeredItemHandlers[i]){//					dojo.debug("Editor2ToolbarItemManager handler "+func+" is already registered, ignored");//					return;//				}//			}			this._registeredItemHandlers.push(obj);		}	},	removeHandler: function(func){		// summary: remove a registered handler		for(var i in this._registeredItemHandlers){			if(func === this._registeredItemHandlers[i]){				delete this._registeredItemHandlers[i];				return;			}		}		dojo.debug("Editor2ToolbarItemManager handler "+func+" is not registered, can not remove.");	},	destroy: function(){		for(var i in this._registeredItemHandlers){			delete this._registeredItemHandlers[i];		}	},	getToolbarItem: function(/*String*/name){		// summary: return a toobar item with the given name		var item;		name = name.toLowerCase();		for(var i in this._registeredItemHandlers){			item = this._registeredItemHandlers[i](name);			if(item){				break;			}		}		if(!item){			switch(name){				//button for builtin functions				case 'bold':				case 'copy':				case 'cut':				case 'delete':				case 'indent':				case 'inserthorizontalrule':				case 'insertorderedlist':				case 'insertunorderedlist':				case 'italic':				case 'justifycenter':				case 'justifyfull':				case 'justifyleft':				case 'justifyright':				case 'outdent':				case 'paste':				case 'redo':				case 'removeformat':				case 'selectall':				case 'strikethrough':				case 'subscript':				case 'superscript':				case 'underline':				case 'undo':				case 'unlink':				case 'createlink':				case 'insertimage':				//extra simple buttons				case 'htmltoggle':					item = new dojo.widget.Editor2ToolbarButton(name);					break;				case 'forecolor':				case 'hilitecolor':					item = new dojo.widget.Editor2ToolbarColorPaletteButton(name);					break;				case 'plainformatblock':					item = new dojo.widget.Editor2ToolbarFormatBlockPlainSelect("formatblock");					break;				case 'formatblock':					item = new dojo.widget.Editor2ToolbarFormatBlockSelect("formatblock");					break;				case 'fontsize':					item = new dojo.widget.Editor2ToolbarFontSizeSelect("fontsize");					break;				case 'fontname':					item = new dojo.widget.Editor2ToolbarFontNameSelect("fontname");					break;				case 'inserttable':				case 'insertcell':				case 'insertcol':				case 'insertrow':				case 'deletecells':				case 'deletecols':				case 'deleterows':				case 'mergecells':				case 'splitcell':					dojo.debug(name + " is implemented in dojo.widget.Editor2Plugin.TableOperation, please require it first.");					break;				//TODO:				case 'inserthtml':				case 'blockdirltr':				case 'blockdirrtl':				case 'dirltr':				case 'dirrtl':				case 'inlinedirltr':				case 'inlinedirrtl':					dojo.debug("Not yet implemented toolbar item: "+name);					break;				default:					dojo.debug("dojo.widget.Editor2ToolbarItemManager.getToolbarItem: Unknown toolbar item: "+name);			}		}		return item;	}};dojo.addOnUnload(dojo.widget.Editor2ToolbarItemManager, "destroy");// summary://		dojo.widget.Editor2ToolbarButton is the base class for all toolbar item in Editor2Toolbardojo.declare("dojo.widget.Editor2ToolbarButton", null,{	initializer: function(name){		// summary: constructor		this._name = name;		this._command = dojo.widget.Editor2Manager.getCommand(name);	},	create: function(/*DomNode*/node, /*dojo.widget.Editor2Toolbar*/toolbar, /*Boolean*/nohover){		// summary: create the item		// node: the dom node which is the root of this toolbar item		// toolbar: the Editor2Toolbar widget this toolbar item belonging to		// nohover: whether this item in charge of highlight this item		this._domNode = node;		//make this unselectable: different browsers		//use different properties for this, so use		//js do it automatically		this.disableSelection(this._domNode);		this._parentToolbar = toolbar;		dojo.event.connect(this._domNode, 'onclick', this, 'onClick');		if(!nohover){			dojo.event.connect(this._domNode, 'onmouseover', this, 'onMouseOver');			dojo.event.connect(this._domNode, 'onmouseout', this, 'onMouseOut');		}	},	disableSelection: function(/*DomNode*/rootnode){		// summary: disable selection on the passed node and all its children		dojo.html.disableSelection(rootnode);		var nodes = rootnode.all || rootnode.getElementsByTagName("*");		for(var x=0; x<nodes.length; x++){			dojo.html.disableSelection(nodes[x]);		}	},	onMouseOver: function(){		if(this._command.getState() != dojo.widget.Editor2Manager.commandState.Disabled){			this.highlightToolbarItem();		}	},	onMouseOut: function(){		this.unhighlightToolbarItem();	},	destroy: function(){		// summary: destructor		this._domNode = null;		delete this._command;		this._parentToolbar = null;	},	onClick: function(e){		if(this._domNode && !this._domNode.disabled && this._command){			e.preventDefault();			e.stopPropagation();			this._command.execute();		}	},	refreshState: function(){		// summary: update the state of the toolbar item		if(this._domNode && this._command){			var em = dojo.widget.Editor2Manager;			var state = this._command.getState();			if(state != this._lastState){				switch(state){					case em.commandState.Latched:						this.latchToolbarItem();						break;					case em.commandState.Enabled:						this.enableToolbarItem();						break;					case em.commandState.Disabled:					default:						this.disableToolbarItem();				}				this._lastState = state;			}			return state;		}	},	latchToolbarItem: function(){		this._domNode.disabled = false;		this.removeToolbarItemStyle(this._domNode);		dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarLatchedItemStyle);	},	enableToolbarItem: function(){		this._domNode.disabled = false;		this.removeToolbarItemStyle(this._domNode);		dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarEnabledItemStyle);	},	disableToolbarItem: function(){		this._domNode.disabled = true;		this.removeToolbarItemStyle(this._domNode);		dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarDisabledItemStyle);	},	highlightToolbarItem: function(){		dojo.html.addClass(this._domNode, this._parentToolbar.ToolbarHighlightedItemStyle);	},	unhighlightToolbarItem: function(){		dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarHighlightedItemStyle);	},	removeToolbarItemStyle: function(){		dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarEnabledItemStyle);		dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarLatchedItemStyle);		dojo.html.removeClass(this._domNode, this._parentToolbar.ToolbarDisabledItemStyle);		this.unhighlightToolbarItem();	}});// summary: dojo.widget.Editor2ToolbarDropDownButton extends the basic button with a dropdown listdojo.declare("dojo.widget.Editor2ToolbarDropDownButton", dojo.widget.Editor2ToolbarButton,{	onClick: function(){		if(this._domNode){			if(!this._dropdown){				this._dropdown = dojo.widget.createWidget("PopupContainer", {});				this._domNode.appendChild(this._dropdown.domNode);			}			if(this._dropdown.isShowingNow){				this._dropdown.close();			}else{				this.onDropDownShown();				this._dropdown.open(this._domNode, null, this._domNode);			}		}	},	destroy: function(){		this.onDropDownDestroy();		if(this._dropdown){			this._dropdown.destroy();		}		dojo.widget.Editor2ToolbarDropDownButton.superclass.destroy.call(this);	},	onDropDownShown: function(){},	onDropDownDestroy: function(){}});// summary: dojo.widget.Editor2ToolbarColorPaletteButton provides a dropdown color palette pickerdojo.declare("dojo.widget.Editor2ToolbarColorPaletteButton", dojo.widget.Editor2ToolbarDropDownButton,{	onDropDownShown: function(){		if(!this._colorpalette){			this._colorpalette = dojo.widget.createWidget("ColorPalette", {});			this._dropdown.addChild(this._colorpalette);			this.disableSelection(this._dropdown.domNode);			this.disableSelection(this._colorpalette.domNode);			//do we need a destory to delete this._colorpalette manually?			//I assume as it is added to this._dropdown via addChild, it			//should be deleted when this._dropdown is destroyed			dojo.event.connect(this._colorpalette, "onColorSelect", this, 'setColor');			dojo.event.connect(this._dropdown, "open", this, 'latchToolbarItem');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -