📄 tableplugins.js
字号:
/* Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details*/if(!dojo._hasResource["dojox.editor.plugins.TablePlugins"]){dojo._hasResource["dojox.editor.plugins.TablePlugins"]=true;dojo.provide("dojox.editor.plugins.TablePlugins");dojo.require("dijit._editor._Plugin");dojo.require("dijit._editor.selection");dojo.require("dijit.Menu");dojo.require("dojo.i18n");dojo.requireLocalization("dojox.editor.plugins","TableDialog",null,"ROOT");dojo.experimental("dojox.editor.plugins.TablePlugins");dojo.declare("dojox.editor.plugins.GlobalTableHandler",dijit._editor._Plugin,{tablesConnected:false,currentlyAvailable:false,alwaysAvailable:false,availableCurrentlySet:false,initialized:false,tableData:null,shiftKeyDown:false,editorDomNode:null,undoEnabled:dojo.isIE,doMixins:function(){dojo.mixin(this.editor,{getAncestorElement:function(_1){return dojo.withGlobal(this.window,"getAncestorElement",dijit._editor.selection,[_1]);},hasAncestorElement:function(_2){return dojo.withGlobal(this.window,"hasAncestorElement",dijit._editor.selection,[_2]);},selectElement:function(_3){dojo.withGlobal(this.window,"selectElement",dijit._editor.selection,[_3]);},byId:function(id){return dojo.withGlobal(this.window,"byId",dojo,[id]);},query:function(_5,_6,_7){var ar=dojo.withGlobal(this.window,"query",dojo,[_5,_6]);return (_7)?ar[0]:ar;}});},initialize:function(_9){if(this.initialized){return;}this.initialized=true;this.editor=_9;this.editorDomNode=this.editor.iframe?this.editor.document:this.editor.editNode;dojo.connect(this.editorDomNode,"mouseup",this.editor,"onClick");dojo.connect(this.editor,"onDisplayChanged",this,"checkAvailable");this.doMixins();this.connectDraggable();},getTableInfo:function(_a){if(_a){this._tempStoreTableData(false);}if(this.tableData){return this.tableData;}var tr,_c,td,_e,_f,_10,_11,_12;td=this.editor.getAncestorElement("td");if(td){tr=td.parentNode;}_f=this.editor.getAncestorElement("table");_e=dojo.query("td",_f);_e.forEach(function(d,i){if(td==d){_11=i;}});_c=dojo.query("tr",_f);_c.forEach(function(r,i){if(tr==r){_12=i;}});_10=_e.length/_c.length;var o={tbl:_f,td:td,tr:tr,trs:_c,tds:_e,rows:_c.length,cols:_10,tdIndex:_11,trIndex:_12,colIndex:_11%_10};this.tableData=o;this._tempStoreTableData(500);return this.tableData;},connectDraggable:function(){if(!dojo.isIE){return;}this.editorDomNode.ondragstart=dojo.hitch(this,"onDragStart");this.editorDomNode.ondragend=dojo.hitch(this,"onDragEnd");},onDragStart:function(){var e=window.event;if(!e.srcElement.id){e.srcElement.id="tbl_"+(new Date().getTime());}},onDragEnd:function(){var e=window.event;var _1a=e.srcElement;var id=_1a.id;var win=this.editor.window;if(_1a.tagName.toLowerCase()=="table"){setTimeout(function(){var _1d=dojo.withGlobal(win,"byId",dojo,[id]);dojo.removeAttr(_1d,"align");},100);}},checkAvailable:function(){if(this.availableCurrentlySet){return this.currentlyAvailable;}if(!this.editor){return false;}if(this.alwaysAvailable){return true;}this.currentlyAvailable=this.editor.hasAncestorElement("table");if(this.currentlyAvailable){this.connectTableKeys();}else{this.disconnectTableKeys();}this._tempAvailability(500);dojo.publish("available",[this.currentlyAvailable]);return this.currentlyAvailable;},_prepareTable:function(tbl){var tds=this.editor.query("td",tbl);if(!tds[0].id){tds.forEach(function(td,i){if(!td.id){td.id="tdid"+i+this.getTimeStamp();}},this);}return tds;},getTimeStamp:function(){return Math.floor(new Date().getTime()*1e-8);},_tempStoreTableData:function(_22){if(_22===true){}else{if(_22===false){this.tableData=null;}else{if(_22===undefined){console.warn("_tempStoreTableData must be passed an argument");}else{setTimeout(dojo.hitch(this,function(){this.tableData=null;}),_22);}}}},_tempAvailability:function(_23){if(_23===true){this.availableCurrentlySet=true;}else{if(_23===false){this.availableCurrentlySet=false;}else{if(_23===undefined){console.warn("_tempAvailability must be passed an argument");}else{this.availableCurrentlySet=true;setTimeout(dojo.hitch(this,function(){this.availableCurrentlySet=false;}),_23);}}}},connectTableKeys:function(){if(this.tablesConnected){return;}this.tablesConnected=true;var _24=(this.editor.iframe)?this.editor.document:this.editor.editNode;this.cnKeyDn=dojo.connect(_24,"onkeydown",this,"onKeyDown");this.cnKeyUp=dojo.connect(_24,"onkeyup",this,"onKeyUp");dojo.connect(_24,"onkeypress",this,"onKeyUp");},disconnectTableKeys:function(){dojo.disconnect(this.cnKeyDn);dojo.disconnect(this.cnKeyUp);this.tablesConnected=false;},onKeyDown:function(evt){var key=evt.keyCode;if(key==16){this.shiftKeyDown=true;}if(key==9){var o=this.getTableInfo();o.tdIndex=(this.shiftKeyDown)?o.tdIndex-1:tabTo=o.tdIndex+1;if(o.tdIndex>=0&&o.tdIndex<o.tds.length){this.editor.selectElement(o.tds[o.tdIndex]);this.currentlyAvailable=true;this._tempAvailability(true);this._tempStoreTableData(true);this.stopEvent=true;}else{this.stopEvent=false;this.onDisplayChanged();}if(this.stopEvent){dojo.stopEvent(evt);}}},onKeyUp:function(evt){var key=evt.keyCode;if(key==16){this.shiftKeyDown=false;}if(key==37||key==38||key==39||key==40){this.onDisplayChanged();}if(key==9&&this.stopEvent){dojo.stopEvent(evt);}},onDisplayChanged:function(){this.currentlyAvailable=false;this._tempStoreTableData(false);this._tempAvailability(false);this.checkAvailable();}});tablePluginHandler=new dojox.editor.plugins.GlobalTableHandler();dojo.declare("dojox.editor.plugins.TablePlugins",dijit._editor._Plugin,{iconClassPrefix:"editorIcon",useDefaultCommand:false,buttonClass:dijit.form.Button,commandName:"",label:"",alwaysAvailable:false,undoEnabled:false,constructor:function(){switch(this.commandName){case "colorTableCell":this.buttonClass=dijit.form.DropDownButton;this.dropDown=new dijit.ColorPalette();this.connect(this.dropDown,"onChange",function(_2a){this.modTable(null,_2a);});break;case "modifyTable":this.buttonClass=dijit.form.DropDownButton;this.modTable=this.launchModifyDialog;break;case "insertTable":this.alwaysAvailable=true;this.buttonClass=dijit.form.DropDownButton;this.modTable=this.launchInsertDialog;break;case "tableContextMenu":this.connect(this,"setEditor",function(){this._createContextMenu();this.button.domNode.style.display="none";});break;}dojo.subscribe("available",this,"onDisplayChanged");},onDisplayChanged:function(_2b){if(!this.alwaysAvailable){this.available=_2b;this.button.attr("disabled",!this.available);}},setEditor:function(){this.inherited(arguments);this.onEditorLoaded();},onEditorLoaded:function(){tablePluginHandler.initialize(this.editor);},_createContextMenu:function(){var _2c=dojo.isFF?this.editor.editNode:this.editor.document.firstChild;pMenu=new dijit.Menu({targetNodeIds:[_2c],id:"progMenu",contextMenuForWindow:dojo.isIE});var _M=dijit.MenuItem;var _2e=dojo.i18n.getLocalization("dojox.editor.plugins","TableDialog",this.lang);pMenu.addChild(new _M({label:_2e.selectTableLabel,onClick:dojo.hitch(this,"selectTable")}));pMenu.addChild(new dijit.MenuSeparator());pMenu.addChild(new _M({label:_2e.insertTableRowBeforeLabel,onClick:dojo.hitch(this,"modTable","insertTableRowBefore")}));pMenu.addChild(new _M({label:_2e.insertTableRowAfterLabel,onClick:dojo.hitch(this,"modTable","insertTableRowAfter")}));pMenu.addChild(new _M({label:_2e.insertTableColumnBeforeLabel,onClick:dojo.hitch(this,"modTable","insertTableColumnBefore")}));pMenu.addChild(new _M({label:_2e.insertTableColumnAfterLabel,onClick:dojo.hitch(this,"modTable","insertTableColumnAfter")}));pMenu.addChild(new dijit.MenuSeparator());pMenu.addChild(new _M({label:_2e.deleteTableRowLabel,onClick:dojo.hitch(this,"modTable","deleteTableRow")}));pMenu.addChild(new _M({label:_2e.deleteTableColumnLabel,onClick:dojo.hitch(this,"modTable","deleteTableColumn")}));pMenu._openMyself=function(e){if(!tablePluginHandler.checkAvailable()){return;}if(this.leftClickToOpen&&e.button>0){return;}dojo.stopEvent(e);var x,y;if(dojo.isIE){x=e.x;y=e.y;}else{x=e.screenX;y=e.screenY+25;}var _32=this;var _33=dijit.getFocus(this);function closeAndRestoreFocus(){dijit.focus(_33);dijit.popup.close(_32);};var res=dijit.popup.open({popup:this,x:x,y:y,onExecute:closeAndRestoreFocus,onCancel:closeAndRestoreFocus,orient:this.isLeftToRight()?"L":"R"});var v=dijit.getViewport();if(res.y+res.h>v.h){if(e.screenY-res.h>=0){y=e.screenY-res.h;}else{y=0;}dijit.popup.close(this);res=dijit.popup.open({popup:this,x:x,y:y,onExecute:closeAndRestoreFocus,onCancel:closeAndRestoreFocus,orient:this.isLeftToRight()?"L":"R"});}this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);dijit.popup.close(this);};};this.menu=pMenu;},selectTable:function(){var o=this.getTableInfo();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -