135 lines
4.7 KiB
JavaScript
Raw Normal View History

2013-11-01 14:13:51 +08:00

function onReady() {
var btnExpandAll = Ext.getCmp(IDS.btnExpandAll);
var btnCollapseAll = Ext.getCmp(IDS.btnCollapseAll);
var mainMenu = Ext.getCmp(IDS.mainMenu);
var mainTabStrip = Ext.getCmp(IDS.mainTabStrip);
var windowSourceCode = Ext.getCmp(IDS.windowSourceCode);
// 当前展开的手风琴面板
function getExpandedPanel() {
var panel = null;
mainMenu.items.each(function (item) {
if (!item.collapsed) {
panel = item;
}
});
return panel;
}
// 点击展开菜单
btnExpandAll.on('click', function () {
if (IDS.menuType == "menu") {
// 左侧为树控件
mainMenu.expandAll();
} else {
// 左侧为树控件+手风琴控件
var expandedPanel = getExpandedPanel();
if (expandedPanel) {
expandedPanel.items.getAt(0).expandAll();
}
}
});
// 点击折叠菜单
btnCollapseAll.on('click', function () {
if (IDS.menuType == "menu") {
// 左侧为树控件
mainMenu.collapseAll();
} else {
// 左侧为树控件+手风琴控件
var expandedPanel = getExpandedPanel();
if (expandedPanel) {
expandedPanel.items.getAt(0).collapseAll();
}
}
});
function createToolbar(tabConfig) {
// 由工具栏上按钮获得当前标签页中的iframe节点
function getCurrentIframeNode(button) {
// 注意button.ownerCt 是工具栏button.ownerCt.ownerCt 就是当前激活的标签页。
return Ext.DomQuery.selectNode('iframe', button.ownerCt.ownerCt.el.dom);
}
// 动态创建按钮
var sourcecodeButton = new Ext.Button({
text: "源代码",
type: "button",
cls: "x-btn-text-icon",
icon: "./icon/page_white_code.png",
listeners: {
click: function (button, e) {
windowSourceCode.x_show('./common/source.aspx?files=' + getCurrentIframeNode(button).attributes['src'].value, '源代码');
e.stopEvent();
}
}
});
var openNewWindowButton = new Ext.Button({
text: '新标签页中打开',
type: "button",
cls: "x-btn-text-icon",
icon: "./icon/tab_go.png",
listeners: {
click: function (button, e) {
window.open(getCurrentIframeNode(button).src, "_blank");
e.stopEvent();
}
}
});
var refreshButton = new Ext.Button({
text: '刷新',
type: "button",
cls: "x-btn-text-icon",
icon: "./icon/reload.png",
listeners: {
click: function (button, e) {
getCurrentIframeNode(button).contentWindow.location.reload(); //.replace(href);
e.stopEvent();
}
}
});
var toolbar = new Ext.Toolbar({
items: ['->', sourcecodeButton, '-', refreshButton, '-', openNewWindowButton]
});
tabConfig['tbar'] = toolbar;
}
// 初始化主框架中的树(或者Accordion+Tree)和选项卡互动,以及地址栏的更新
// treeMenu 主框架中的树控件实例,或者内嵌树控件的手风琴控件实例
// mainTabStrip 选项卡实例
// addTabCallback 创建选项卡前的回调函数接受tabConfig参数
// updateLocationHash: 切换Tab时是否更新地址栏Hash值
// refreshWhenExist 添加选项卡时如果选项卡已经存在是否刷新内部IFrame
// refreshWhenTabChange: 切换选项卡时是否刷新内部IFrame
X.util.initTreeTabStrip(mainMenu, mainTabStrip, createToolbar, true, false, false);
// 公开添加示例标签页的方法
window.addExampleTab = function (id, url, text, icon, refreshWhenExist) {
// 动态添加一个标签页
// mainTabStrip 选项卡实例
// id 选项卡ID
// url: 选项卡IFrame地址
// text 选项卡标题
// icon 选项卡图标
// addTabCallback 创建选项卡前的回调函数接受tabConfig参数
// refreshWhenExist 添加选项卡时如果选项卡已经存在是否刷新内部IFrame
X.util.addMainTab(mainTabStrip, id, url, text, icon, null, refreshWhenExist);
};
window.removeActiveTab = function () {
var activeTab = mainTabStrip.getActiveTab();
mainTabStrip.removeTab(activeTab.id);
};
}