📄 layout-debug.js
字号:
initTabs : function(){
this.bodyEl.setStyle("overflow", "hidden");
var ts = new Ext.TabPanel(this.bodyEl.dom, {
tabPosition: this.bottomTabs ? 'bottom' : 'top',
disableTooltips: this.config.disableTabTips
});
if(this.config.hideTabs){
ts.stripWrap.setDisplayed(false);
}
this.tabs = ts;
ts.resizeTabs = this.config.resizeTabs === true;
ts.minTabWidth = this.config.minTabWidth || 40;
ts.maxTabWidth = this.config.maxTabWidth || 250;
ts.preferredTabWidth = this.config.preferredTabWidth || 150;
ts.monitorResize = false;
ts.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden");
ts.bodyEl.addClass('x-layout-tabs-body');
this.panels.each(this.initPanelAsTab, this);
},
initPanelAsTab : function(panel){
var ti = this.tabs.addTab(panel.getEl().id, panel.getTitle(), null,
this.config.closeOnTab && panel.isClosable());
if(panel.tabTip !== undefined){
ti.setTooltip(panel.tabTip);
}
ti.on("activate", function(){
this.setActivePanel(panel);
}, this);
if(this.config.closeOnTab){
ti.on("beforeclose", function(t, e){
e.cancel = true;
this.remove(panel);
}, this);
}
return ti;
},
updatePanelTitle : function(panel, title){
if(this.activePanel == panel){
this.updateTitle(title);
}
if(this.tabs){
var ti = this.tabs.getTab(panel.getEl().id);
ti.setText(title);
if(panel.tabTip !== undefined){
ti.setTooltip(panel.tabTip);
}
}
},
updateTitle : function(title){
if(this.titleTextEl && !this.config.title){
this.titleTextEl.innerHTML = (typeof title != "undefined" && title.length > 0 ? title : " ");
}
},
setActivePanel : function(panel){
panel = this.getPanel(panel);
if(this.activePanel && this.activePanel != panel){
this.activePanel.setActiveState(false);
}
this.activePanel = panel;
panel.setActiveState(true);
if(this.panelSize){
panel.setSize(this.panelSize.width, this.panelSize.height);
}
if(this.closeBtn){
this.closeBtn.setVisible(!this.config.closeOnTab && !this.isSlid && panel.isClosable());
}
this.updateTitle(panel.getTitle());
if(this.tabs){
this.fireEvent("invalidated", this);
}
this.fireEvent("panelactivated", this, panel);
},
showPanel : function(panel){
if(panel = this.getPanel(panel)){
if(this.tabs){
var tab = this.tabs.getTab(panel.getEl().id);
if(tab.isHidden()){
this.tabs.unhideTab(tab.id);
}
tab.activate();
}else{
this.setActivePanel(panel);
}
}
return panel;
},
getActivePanel : function(){
return this.activePanel;
},
validateVisibility : function(){
if(this.panels.getCount() < 1){
this.updateTitle(" ");
this.closeBtn.hide();
this.hide();
}else{
if(!this.isVisible()){
this.show();
}
}
},
add : function(panel){
if(arguments.length > 1){
for(var i = 0, len = arguments.length; i < len; i++) {
this.add(arguments[i]);
}
return null;
}
if(this.hasPanel(panel)){
this.showPanel(panel);
return panel;
}
panel.setRegion(this);
this.panels.add(panel);
if(this.panels.getCount() == 1 && !this.config.alwaysShowTabs){
this.bodyEl.dom.appendChild(panel.getEl().dom);
if(panel.background !== true){
this.setActivePanel(panel);
}
this.fireEvent("paneladded", this, panel);
return panel;
}
if(!this.tabs){
this.initTabs();
}else{
this.initPanelAsTab(panel);
}
if(panel.background !== true){
this.tabs.activate(panel.getEl().id);
}
this.fireEvent("paneladded", this, panel);
return panel;
},
hidePanel : function(panel){
if(this.tabs && (panel = this.getPanel(panel))){
this.tabs.hideTab(panel.getEl().id);
}
},
unhidePanel : function(panel){
if(this.tabs && (panel = this.getPanel(panel))){
this.tabs.unhideTab(panel.getEl().id);
}
},
clearPanels : function(){
while(this.panels.getCount() > 0){
this.remove(this.panels.first());
}
},
remove : function(panel, preservePanel){
panel = this.getPanel(panel);
if(!panel){
return null;
}
var e = {};
this.fireEvent("beforeremove", this, panel, e);
if(e.cancel === true){
return null;
}
preservePanel = (typeof preservePanel != "undefined" ? preservePanel : (this.config.preservePanels === true || panel.preserve === true));
var panelId = panel.getId();
this.panels.removeKey(panelId);
if(preservePanel){
document.body.appendChild(panel.getEl().dom);
}
if(this.tabs){
this.tabs.removeTab(panel.getEl().id);
}else if (!preservePanel){
this.bodyEl.dom.removeChild(panel.getEl().dom);
}
if(this.panels.getCount() == 1 && this.tabs && !this.config.alwaysShowTabs){
var p = this.panels.first();
var tempEl = document.createElement("div"); tempEl.appendChild(p.getEl().dom);
this.bodyEl.update("");
this.bodyEl.dom.appendChild(p.getEl().dom);
tempEl = null;
this.updateTitle(p.getTitle());
this.tabs = null;
this.bodyEl.setStyle("overflow", this.config.autoScroll ? "auto" : "hidden");
this.setActivePanel(p);
}
panel.setRegion(null);
if(this.activePanel == panel){
this.activePanel = null;
}
if(this.config.autoDestroy !== false && preservePanel !== true){
try{panel.destroy();}catch(e){}
}
this.fireEvent("panelremoved", this, panel);
return panel;
},
getTabs : function(){
return this.tabs;
},
createTool : function(parentEl, className){
var btn = Ext.DomHelper.append(parentEl, {tag: "div", cls: "x-layout-tools-button",
children: [{tag: "div", cls: "x-layout-tools-button-inner " + className, html: " "}]}, true);
btn.addClassOnOver("x-layout-tools-button-over");
return btn;
}
});
Ext.SplitLayoutRegion = function(mgr, config, pos, cursor){
this.cursor = cursor;
Ext.SplitLayoutRegion.superclass.constructor.call(this, mgr, config, pos);
};
Ext.extend(Ext.SplitLayoutRegion, Ext.LayoutRegion, {
splitTip : "Drag to resize.",
collapsibleSplitTip : "Drag to resize. Double click to hide.",
useSplitTips : false,
applyConfig : function(config){
Ext.SplitLayoutRegion.superclass.applyConfig.call(this, config);
if(config.split){
if(!this.split){
var splitEl = Ext.DomHelper.append(this.mgr.el.dom,
{tag: "div", id: this.el.id + "-split", cls: "x-layout-split x-layout-split-"+this.position, html: " "});
this.split = new Ext.SplitBar(splitEl, this.el, this.orientation);
this.split.on("moved", this.onSplitMove, this);
this.split.useShim = config.useShim === true;
this.split.getMaximumSize = this[this.position == 'north' || this.position == 'south' ? 'getVMaxSize' : 'getHMaxSize'].createDelegate(this);
if(this.useSplitTips){
this.split.el.dom.title = config.collapsible ? this.collapsibleSplitTip : this.splitTip;
}
if(config.collapsible){
this.split.el.on("dblclick", this.collapse, this);
}
}
if(typeof config.minSize != "undefined"){
this.split.minSize = config.minSize;
}
if(typeof config.maxSize != "undefined"){
this.split.maxSize = config.maxSize;
}
if(config.hideWhenEmpty || config.hidden){
this.hideSplitter();
}
}
},
getHMaxSize : function(){
var cmax = this.config.maxSize || 10000;
var center = this.mgr.getRegion("center");
return Math.min(cmax, (this.el.getWidth()+center.getEl().getWidth())-center.getMinWidth());
},
getVMaxSize : function(){
var cmax = this.config.maxSize || 10000;
var center = this.mgr.getRegion("center");
return Math.min(cmax, (this.el.getHeight()+center.getEl().getHeight())-center.getMinHeight());
},
onSplitMove : function(split, newSize){
this.fireEvent("resized", this, newSize);
},
getSplitBar : function(){
return this.split;
},
hide : function(){
this.hideSplitter();
Ext.SplitLayoutRegion.superclass.hide.call(this);
},
hideSplitter : function(){
if(this.split){
this.split.el.setLocation(-2000,-2000);
this.split.el.hide();
}
},
show : function(){
if(this.split){
this.split.el.show();
}
Ext.SplitLayoutRegion.superclass.show.call(this);
},
beforeSlide: function(){
if(Ext.isGecko){ this.bodyEl.clip();
if(this.tabs) this.tabs.bodyEl.clip();
if(this.activePanel){
this.activePanel.getEl().clip();
if(this.activePanel.beforeSlide){
this.activePanel.beforeSlide();
}
}
}
},
afterSlide : function(){
if(Ext.isGecko){ this.bodyEl.unclip();
if(this.tabs) this.tabs.bodyEl.unclip();
if(this.activePanel){
this.activePanel.getEl().unclip();
if(this.activePanel.afterSlide){
this.activePanel.afterSlide();
}
}
}
},
initAutoHide : function(){
if(this.autoHide !== false){
if(!this.autoHideHd){
var st = new Ext.util.DelayedTask(this.slideIn, this);
this.autoHideHd = {
"mouseout": function(e){
if(!e.within(this.el, true)){
st.delay(500);
}
},
"mouseover" : function(e){
st.cancel();
},
scope : this
};
}
this.el.on(this.autoHideHd);
}
},
clearAutoHide : function(){
if(this.autoHide !== false){
this.el.un("mouseout", this.autoHideHd.mouseout);
this.el.un("mouseover", this.autoHideHd.mouseover);
}
},
clearMonitor : function(){
Ext.get(document).un("click", this.slideInIf, this);
},
slideOut : function(){
if(this.isSlid || this.el.hasActiveFx()){
return;
}
this.isSlid = true;
if(this.collapseBtn){
this.collapseBtn.hide();
}
this.closeBtnState = this.closeBtn.getStyle('display');
this.closeBtn.hide();
if(this.stickBtn){
this.stickBtn.show();
}
this.el.show();
this.el.alignTo(this.collapsedEl, this.getCollapseAnchor());
this.beforeSlide();
this.el.setStyle("z-index", 10001);
this.el.slideIn(this.getSlideAnchor(), {
callback: function(){
this.afterSlide();
this.initAutoHide();
Ext.get(document).on("click", this.slideInIf, this);
this.fireEvent("slideshow", this);
},
scope: this,
block: true
});
},
afterSlideIn : function(){
this.clearAutoHide();
this.isSlid = false;
this.clearMonitor();
this.el.setStyle("z-index", "");
if(this.collapseBtn){
this.collapseBtn.show();
}
this.closeBtn.setStyle('display', this.closeBtnState);
if(this.stickBtn){
this.stickBtn.hide();
}
this.fireEvent("slidehide", this);
},
slideIn : function(cb){
if(!this.isSlid || this.el.hasActiveFx()){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -