<script type="text/javascript">
Ext.require(['*']);
Ext.onReady(function () {
var cw;//表示的是window 组件
function closeRegion(e, target, header, tool) {
var panel = header.ownerCt;//获取持有Container元素
newRegions.unshift(panel.initialConfig); //unshift 把元素添加到数组的最前面
viewport.remove(panel);
}
var newRegions = [{
region: 'north',
title: 'North 2',
height: 100,
collapsible: true,
weight: -120
}, {
region: 'east', //东
title: 'East 2',
100,
collapsible: true
}, {
region: 'west',
title: 'West 2',
collspsible: true,
100,
weight: -100
}];
var viewport = Ext.create('Ext.Viewport', {
layout: {
type: 'border',
padding: 5
},
defaults: {
split: true //箭头
},
items: [{
region: 'north',
colllapsible: true,
title: 'North',
split: true,
height: 100,
minHeight: 60,
html: 'north'
}, {
region: 'west',
collapsible: true,
title: 'Start at width 30%',
split: true,
'30%',
minWidth: 100,
minHeight: 140,
html: 'west<br>I am floatable'
}, {
region: 'center',
html: 'Center Center',
title: 'Center',
minHeight: 80,
items: [cw = Ext.create('Ext.Window', {
xtype: 'window',
closable: false, //不可关闭的
minimizable: true,
title: 'Constrained Window',
height: 200,
300,
constrain: true,//强迫在 父元素里面
html: 'I am in a Container',
itemId: 'center-window',
minimize: function () { //最小化按钮执行的事件
this.floatParent.down('button#toggleCw').toggle(); //查询父容器 下的按钮 id为 toggleCw的 并执行他的toggle事件
}
})],
bbar: ['Text followed by a spacer', '| ', {
itemId: 'toggleCw',
text: 'Contrained Window',
enableToggle: true,
toggleHandler: function () {
cw.setVisible(!cw.isVisible());//设置窗体的显示. 循环显示和隐藏window窗体
}
}, {
text: 'Add Region',
listeners: {
click: function () { //单击事件
if (newRegions.length) {
var region = newRegions.pop();//pop方法移除数组的最后一个对象,并返回这个对象.使用pop方法的元素必须包含length属性
region.tools = [{ type: 'close', handler: closeRegion}]; //region 其实就是一个Panel对象,panel对象工具栏 添加 关闭按钮,关闭按钮的事件为 closeRegion
viewport.add(region);
}
else {
Ext.Msg.Show({
title: 'All Added',
msg: 'Close on of the dynamic regions first,关闭其中一个region!',
//minWidth:Ext.Msg.minWidth
buttons: Ext.Msg.OK,
icon: Ext.Msg.ERROR
});
}
}
}
}, {
text: 'Change Title',
listeners: {
click: function () {
var panels = viewport.query('panel');//component query
Ext.each(panels, function (panel) {
panel.setTitle(panel.title + "!");
});
}
}
}]
}, {
region: 'east',
collapsible: true,
floatable: true,
split: true,
200,
minWidth: 120,
minHeight: 140,
title: 'east',
layout: {
type: 'vbox',
padding: 5,
align: 'stretch' //伸展
},
items: [{
xtype: 'textfield',
labelWidth: 70,
fieldLabel: 'Text field'
}, {
xtype: 'component',
html: 'I am floatable'
}]
}, {
region: 'south',
height: 100,
split: true,
collapsible: true,
title: 'Splitter above me',
minHeight: 60,
html: 'center south',
weight: -100
}, {
region: 'south',
title:'south',
collapsible: true,
split: true,
height: 200,
minHeight: 120,
layout: {
type: 'border',
padding: 5
},
items: [{
region: 'center',
title: 'South Central', //中心的主要的
minWidth: 80,
html: 'South Central'
}, {
title: 'South Eastern',
region: 'east',
flex: 1,
minWidth: 80,
html: 'South western - not resizable',
collapsible: true,
split:true
}, {
title:'South Western - not resizable',
region: 'west',
flex: 1,
minWidth: 80,
html: 'South Western<br> I collapse to nothing',
split: true,
collapsible: true,
splitterResize: true,
collapseMode: 'mini'
}]
}]
});
});
</script>