135 lines
4.7 KiB
JavaScript
135 lines
4.7 KiB
JavaScript
|
||
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);
|
||
};
|
||
|
||
}
|