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

📄 editor2toolbar.js

📁 对java中如何使用Ajax技术
💻 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");dojo.lang.declare("dojo.widget.HandlerManager", null,	function(){		this._registeredHandlers=[];	},{	// summary: internal base class for handler function management	registerHandler: function(/*Object*/obj, /*String*/func){		// summary: register a handler		// obj: object which has the function to call		// func: the function in the object		if(arguments.length == 2){			this._registeredHandlers.push(function(){return obj[func].apply(obj, arguments);});		}else{			/* obj: Function			    func: null			    pId: f */			this._registeredHandlers.push(obj);		}	},	removeHandler: function(func){		// summary: remove a registered handler		for(var i=0;i<this._registeredHandlers.length;i++){			if(func === this._registeredHandlers[i]){				delete this._registeredHandlers[i];				return;			}		}		dojo.debug("HandlerManager handler "+func+" is not registered, can not remove.");	},	destroy: function(){		for(var i=0;i<this._registeredHandlers.length;i++){			delete this._registeredHandlers[i];		}	}});dojo.widget.Editor2ToolbarItemManager = new dojo.widget.HandlerManager;dojo.lang.mixin(dojo.widget.Editor2ToolbarItemManager,{	getToolbarItem: function(/*String*/name){		// summary: return a toobar item with the given name		var item;		name = name.toLowerCase();		for(var i=0;i<this._registeredHandlers.length;i++){			item = this._registeredHandlers[i](name);			if(item){				return 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");dojo.declare("dojo.widget.Editor2ToolbarButton", null,	function(name){		this._name = name;//		this._command = editor.getCommand(name);	},{	// summary:	//		dojo.widget.Editor2ToolbarButton is the base class for all toolbar item in Editor2Toolbar	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;		var cmd = toolbar.parent.getCommand(this._name); //FIXME: maybe an issue if different instance has different language		if(cmd){			this._domNode.title = cmd.getText();		}		//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(){		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();		if(curInst){			var _command = curInst.getCommand(this._name);			if(_command && _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._parentToolbar.checkAvailability()){			e.preventDefault();			e.stopPropagation();			var curInst = dojo.widget.Editor2Manager.getCurrentInstance();			if(curInst){				var _command = curInst.getCommand(this._name);				if(_command){					_command.execute();				}			}		}	},	refreshState: function(){		// summary: update the state of the toolbar item		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();		var em = dojo.widget.Editor2Manager;		if(curInst){			var _command = curInst.getCommand(this._name);			if(_command){				var state = _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 em.commandState.Enabled;	},	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();	}});dojo.declare("dojo.widget.Editor2ToolbarDropDownButton", dojo.widget.Editor2ToolbarButton, {	// summary: dojo.widget.Editor2ToolbarDropDownButton extends the basic button with a dropdown list	onClick: function(){		if(this._domNode && !this._domNode.disabled && this._parentToolbar.checkAvailability()){			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(){}});dojo.declare("dojo.widget.Editor2ToolbarColorPaletteButton", dojo.widget.Editor2ToolbarDropDownButton, {	// summary: dojo.widget.Editor2ToolbarColorPaletteButton provides a dropdown color palette picker	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');			dojo.event.connect(this._dropdown, "close", this, 'enableToolbarItem');		}	},	setColor: function(color){		this._dropdown.close();		var curInst = dojo.widget.Editor2Manager.getCurrentInstance();		if(curInst){			var _command = curInst.getCommand(this._name);			if(_command){				_command.execute(color);			}		}	}});dojo.declare("dojo.widget.Editor2ToolbarFormatBlockPlainSelect", dojo.widget.Editor2ToolbarButton, {	// summary: dojo.widget.Editor2ToolbarFormatBlockPlainSelect provides a simple select for setting block format	create: function(node, toolbar){

⌨️ 快捷键说明

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