📄 ext.infopanel.js
字号:
Ext.InfoPanel=function(D,A,E){var C=E||null;if(A&&A.content){C=C||A.content;delete(A.content)}if(A&&A.autoScroll){this.bodyScroll=A.autoScroll;delete(A.autoScroll)}Ext.InfoPanel.superclass.constructor.call(this,D,A);this.desktop=Ext.get(this.desktop)||Ext.get(document.body);var G=Ext.DomHelper,F;this.el.clean();this.el.addClass(this.panelClass);if(this.autoCreate){C=this.el.dom.innerHTML;this.el.update("");this.desktop.appendChild(this.el);this.el.removeClass("x-layout-inactive-content")}else{this.el.clean();if(this.el.dom.firstChild&&!this.bodyEl){this.title=this.title||this.el.dom.firstChild.innerHTML;if(this.el.dom.firstChild.nextSibling)this.body=Ext.get(this.el.dom.firstChild.nextSibling);F=this.el.dom.firstChild;F=F.parentNode.removeChild(F);F=null}}if(this.bodyEl){this.body=Ext.get(this.bodyEl);this.el.appendChild(this.body)}var B={tag:"div",unselectable:"on",cls:"x-unselectable x-layout-panel-hd x-dock-panel-title",children:[{tag:"table",cellspacing:0,children:[{tag:"tr",children:[{tag:"td",width:"100%",children:[{tag:"div",cls:"x-dock-panel x-layout-panel-hd-text x-dock-panel-title-text"}]},{tag:"td",children:[{tag:"div",cls:"x-dock-panel x-dock-panel-tools"}]}]}]}]};this.titleEl=G.insertFirst(this.el.dom,B,true);this.titleEl.addClassOnOver("x-dock-panel-title-over");this.titleEl.enableDisplayMode();this.titleTextEl=Ext.get(this.titleEl.select(".x-dock-panel-title-text").elements[0]);this.tools=Ext.get(this.titleEl.select(".x-dock-panel-tools").elements[0]);this.tm=Ext.util.TextMetrics.createInstance(this.titleTextEl);if(this.title)this.setTitle(this.title);if(this.showPin){this.stickBtn=this.createTool(this.tools.dom,"x-layout-stick");this.stickBtn.enableDisplayMode();this.stickBtn.on("click",function(B,A){B.stopEvent();this.pinned=!this.pinned;this.updateVisuals();this.fireEvent("pinned",this,this.pinned)},this);this.stickBtn.hide()}if(this.collapsible){this.collapseBtn=this.createTool(this.tools.dom,(this.collapsed?"x-layout-collapse-east":"x-layout-collapse-south"));this.collapseBtn.enableDisplayMode();if("title"===this.trigger){this.titleEl.addClass("x-window-header-text");this.titleEl.on({click:{scope:this,fn:this.toggle},selectstart:{scope:this,fn:function(A){A.preventDefault();return false}}},this)}else this.collapseBtn.on("click",this.toggle,this)}if(!this.body)this.body=G.append(this.el,{tag:"div",cls:this.bodyClass||null,html:C||""},true);this.body.enableDisplayMode();if(this.collapsed&&!this.pinned)this.body.hide();else if(this.pinned){this.body.show();this.collapsed=false;this.updateVisuals()}this.body.addClass(this.bodyClass);this.body.addClass("x-dock-panel-body-undocked");if(!Ext.isIE)this.body.setStyle("overflow",this.bodyScroll===true?"auto":"hidden");this.addEvents({beforecollapse:true,collapse:true,beforeexpand:true,expand:true,pinned:true,animationcompleted:true,boxchange:true,resize:true});this.setDraggable(this.draggable);this.setResizable(!this.collapsed);this.setShadow(this.useShadow);this.id=this.el.id};Ext.extend(Ext.InfoPanel,Ext.ContentPanel,{collapsible:true,collapsed:true,collapseOnUnpin:true,pinned:false,trigger:"title",animate:true,duration:0.35,draggable:false,resizable:false,docked:false,useShadow:false,bodyClass:"x-dock-panel-body",panelClass:"x-dock-panel",shadowMode:"sides",dragPadding:{left:8,right:16,top:0,bottom:8},lastWidth:0,lastHeight:0,autoScroll:false,createTool:function(B,A){return Ext.LayoutRegion.prototype.createTool(B,A)},setTitle:function(A){this.title=A;this.titleTextEl.update(A);if(this.icon)this.titleTextEl.set({style:"background-image:url("+this.icon+");background-repeat:no-repeat;background-position:3px 50%;padding-left:23px;"});return this},getTitle:function(){return this.title},getEl:function(){return this.body},update:function(C,B,A){this.body.update(C,B,A);return this},expand:function(){if(!this.collapsed)return this;if(false===this.fireEvent("beforeexpand",this))return this;this.collapsed=false;if(!this.docked)this.setShadow(false);if(this.resizer&&!this.docked)this.setResizable(true);if(this.animate)this.body.slideIn("t",{easing:this.easingExpand||null,scope:this,duration:this.duration,callback:this.updateVisuals});else{this.body.show();this.updateVisuals();this.fireEvent("animationcompleted",this)}this.fireEvent("expand",this);return this},toggle:function(){if(this.collapsed)this.expand();else this.collapse();return this},collapse:function(){if(this.collapsed||this.pinned)return this;if(false===this.fireEvent("beforecollapse",this))return this;if(this.bodyScroll)this.body.setStyle("overflow","hidden");this.collapsed=true;this.setShadow(false);if(this.resizer)this.setResizable(false);if(this.animate)this.body.slideOut("t",{easing:this.easingCollapse||null,scope:this,duration:this.duration,callback:this.updateVisuals});else{this.body.hide();this.updateVisuals();this.fireEvent("animationcompleted",this)}this.fireEvent("collapse",this);return this},updateVisuals:function(){if(this.collapsed){if(this.showPin){this.collapseBtn.show();this.stickBtn.hide()}Ext.fly(this.collapseBtn.dom.firstChild).replaceClass("x-layout-collapse-south","x-layout-collapse-east");this.body.replaceClass("x-dock-panel-body-expanded","x-dock-panel-body-collapsed");this.titleEl.replaceClass("x-dock-panel-title-expanded","x-dock-panel-title-collapsed")}else{if(this.showPin){if(this.pinned){Ext.fly(this.stickBtn.dom.firstChild).replaceClass("x-layout-stick","x-layout-stuck");this.titleEl.addClass("x-dock-panel-title-pinned")}else{Ext.fly(this.stickBtn.dom.firstChild).replaceClass("x-layout-stuck","x-layout-stick");this.titleEl.removeClass("x-dock-panel-title-pinned")}this.collapseBtn.hide();this.stickBtn.show()}else Ext.fly(this.collapseBtn.dom.firstChild).replaceClass("x-layout-collapse-east","x-layout-collapse-south");this.body.replaceClass("x-dock-panel-body-collapsed","x-dock-panel-body-expanded");this.titleEl.replaceClass("x-dock-panel-title-collapsed","x-dock-panel-title-expanded")}if(!this.docked)this.setShadow(true);if(this.bodyScroll&&!this.docked&&!this.collapsed)this.body.setStyle("overflow","auto");this.constrainToDesktop();this.fireEvent("animationcompleted",this);var A=this.body.select("div,input{visibility}");A.setStyle.defer(1,A,["visibility",""]);return this},createToolbar:function(A,C){var B={tag:"div"},D;A=A||null;if(C){D=Ext.DomHelper.append(this.body,B,true);D.addClass("x-dock-panel-toolbar-bottom")}else{D=Ext.DomHelper.insertFirst(this.body,B,true);D.addClass("x-dock-panel-toolbar")}this.toolbar=new Ext.Toolbar(D,A);return this.toolbar},setDraggable:function(B){if(!this.draggable)return this;var A;if(!this.proxy){this.proxy=this.el.createProxy("x-dlg-proxy");A=Ext.DomHelper.append(this.proxy,{tag:"div"},true);A.update(this.el.dom.firstChild.innerHTML);A.dom.className=this.el.dom.firstChild.className;if(this.collapsed&&Ext.isIE)A.dom.style.borderBottom="0";this.proxy.hide();this.proxy.setOpacity(0.5);this.dd=new Ext.dd.DDProxy(this.el.dom,"PanelDrag",{dragElId:this.proxy.id});this.dd.afterDrag=function(){if(this.panel&&this.panel.shadow&&!this.panel.docked)this.panel.shadow.show(this.panel.el)};this.constrainToDesktop();Ext.EventManager.onWindowResize(this.moveToViewport,this)}this.dd.panel=this;this.dd.setHandleElId(this.titleEl.id);if(false===B)this.dd.lock();else this.dd.unlock();return this},setResizable:function(A){if(!this.resizable)return this;if(!this.resizer){this.resizer=new Ext.Resizable(this.el,{handles:"s w e sw se",minWidth:this.minWidth||this.tm.getWidth(this.getTitle())+56||48,maxWidth:this.maxWidth||9999,minHeight:this.minHeight||48,maxHeight:this.maxHeight||9999,transparent:true,draggable:false});this.resizer.on({beforeresize:{scope:this,fn:function(D,E){var C=this.getViewport(),B=this.getBox(),A=D.activeHandle.position;if(A.match(/west/))D.minX=C.x+(this.dragPadding.left||8);if(A.match(/south/)){D.oldMaxHeight=D.maxHeight;D.maxHeight=C.y+C.height-B.y-(this.dragPadding.bottom||8)}if(A.match(/east/)){D.oldMaxWidth=D.maxWidth;D.maxWidth=C.x+C.width-B.x-(this.dragPadding.right||10)}}},resize:{scope:this,fn:function(C,A,B,D){C.maxHeight=C.oldMaxHeight||C.maxHeight;C.maxWidth=C.oldMaxWidth||C.maxWidth;this.setSize(A,B);this.constrainToDesktop();this.fireEvent("boxchange",this,this.el.getBox());this.fireEvent("resize",this,A,B)}}})}this.resizer.enabled=A;this.resizer.showHandles(A);return this},safeSize:function(A,C){var D=this.getViewport(),B=this.getBox(),E=0,F={width:A,height:C};F.height=B.y+C+this.dragPadding.bottom+E>D.height+D.y?D.height-B.y+D.y-this.dragPadding.bottom-E:F.height;F.width=B.x+A+this.dragPadding.right+E>D.width+D.x?D.width-B.x+D.x-this.dragPadding.right-E:F.width;return F},getViewport:function(C){C=C||this.desktop||document.body;var B=Ext.get(C).getViewSize(),A;if(document.body===C.dom){B.x=0;B.y=0}else{A=C.getXY();B.x=isNaN(A[0])?0:A[0];B.y=isNaN(A[1])?0:A[1]}return B},setSize:function(A,B){var C=this.safeSize(A,B);this.setWidth(C.width);this.setHeight(C.height);if(!this.docked)this.setShadow(true)},setWidth:function(A){this.el.setWidth(A);this.body.setStyle("width","");if(!this.docked)this.setShadow(true);this.lastWidth=A;return this},setHeight:function(B){var A=B-this.titleEl.getHeight();if(0<A)this.body.setHeight(A);else this.body.setStyle("height","");if(!this.docked)this.setShadow(true);this.el.setStyle("height","");return this},setBox:function(A){this.el.setBox(A);this.moveToViewport();this.setSize(A.width,A.height);return this},getBox:function(){return this.el.getBox()},setShadow:function(B){if(this.shadow&&!this.useShadow){this.shadow.hide();return this}if(!this.useShadow)return this;if(!this.shadow)this.shadow=new Ext.Shadow({mode:this.shadowMode});var A;if(B){this.shadow.show(this.el);A=parseInt(this.el.getStyle("z-index"),10);A=isNaN(A)?"":A-1;this.shadow.el.setStyle("z-index",A)}else this.shadow.hide();return this},show:function(B,A){if(!this.docked&&true!==A)return this;B=(false===B?false:true);if(!this.docked)this.setShadow(B);this.el.setStyle("display",B?"":"none");return this},hide:function(A){this.show(false,A)},constrainToDesktop:function(A){A=A||this.desktop;if(A&&this.dd)this.dd.constrainTo(A,this.dragPadding,false);return this},moveToViewport:function(C){C=C&&!isNaN(C.x)?C:this.getViewport();var B=this.getBox(),A=false,D=10;if(B.x+B.width+this.dragPadding.right>C.x+C.width){A=true;B.x=C.width+C.x-B.width-this.dragPadding.right-D}if(B.x-this.dragPadding.left<C.x){A=true;B.x=C.x+this.dragPadding.left+D}if(B.y+B.height+this.dragPadding.bottom>C.y+C.height){A=true;B.y=C.height+C.y-B.height-this.dragPadding.bottom-D}if(B.y-this.dragPadding.top<C.y){A=true;B.y=C.y+this.dragPadding.top+D}var E;if(A){B.x=B.x<C.x?C.x:B.x;B.y=B.y<C.y?C.y:B.y;this.desktop.oldOverflow=this.desktop.oldOverflow||this.desktop.getStyle("overflow");this.desktop.setStyle("overflow","hidden");this.el.setXY([B.x,B.y]);this.desktop.setStyle.defer(100,this.desktop,["overflow",this.desktop.oldOverflow]);if(!this.docked)this.setShadow(true)}this.constrainToDesktop();return this}});Ext.override(Ext.Resizable,{hideHandles:function(){this.showHandles(false)},showHandles:function(C){C=(false===C?false:true);var A;for(var B in Ext.Resizable.positions){A=Ext.Resizable.positions[B];if(this[A])this[A].el.setStyle("display",C?"":"none")}}})
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -