html 代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Muti windows test</title>
<link rel="stylesheet" type="text/css" href="../pubjs/ext/resources/css/ext-all.css">
<script type="text/javascript" src="../pubjs/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../pubjs/ext/ext-all-debug.js"></script>
<script type="text/javascript" src="./mutiWinTest.js"></script>
</head>
<body>
<div id="divSessionGrp">
<input type="button" id="btnSessionHide" value="隐藏">
<input type="button" id="btnSessionTile" value="齐排">
<div id="divSessionContext">
<h1>session</h1>
<p>Here is the session context</p>
<div id="divSContext"></div>
</div>
</div>
<div id="divAgentGrp">
<input type="button" id="btnAgentHide" value="隐藏">
<input type="button" id="btnAgentTile" value="齐排">
<div id="divAgentContext">
<h1>Agent</h1>
<p>Here is the Agent context</p>
<div id="divAContext"></div>
</div>
</div>
</body>
</html>
js 代码:
var mutiWin = {
sessionGrp:null,
agentGrp:null,
init:function(){
var g = Ext.get;
var s = Ext.select;
this.sessionGrp = new Ext.WindowGroup();
this.agentGrp = new Ext.WindowGroup();
s("#divSessionGrp div").on("click",this._showSessionWin,this);
s("#divAgentGrp div").on("click",this._showAgentWin,this);
g("btnSessionHide").on("click",this.sessionGrp.hideAll);
g("btnAgentHide").on("click",this.agentGrp.hideAll);
g("btnSessionTile").on("click",this._tileSession,this);
g("btnAgentTile").on("click",this._tileAgent,this);
},
_tileSession:function(){
this.agentGrp.hideAll();
this._title(this.sessionGrp);
},
_tileAgent:function(){
this.sessionGrp.hideAll();
this._title(this.agentGrp);
},
_title:function(group){
var previousWin = null;
group.each(function(win){
if(previousWin){
//对齐,如果存在已有窗体,且超过browse长度,则往下排
if(previousWin.getRight() + win.getWidth() > Ext.getBody().getWidth()){
win.alignTo(Ext.getBody(),"tl-tl",[0,win.getHight()]);
}else{
//正常往后排
win.alignTo(previousWin.getEl(),"tl,tr");
}
}else{
//第一个向body对齐
win.alignTo(Ext.getBody(),"tl-tl");
}
previousWin = win;
});
},
_showSessionWin:function(e){
//查找目标div
var target = e.getTarget("div",5,true);
var sessionWinId = target.dom.id + "_win";
//查找windows窗体
var win = this.sessionGrp.get(sessionWinId);
//创建新窗体
if(!win){
win = new Ext.Window({
manager:this.sessionGrp,
id:sessionWinId,
autoWidth:true,
autoHeight:true,
collapsible:true,
title:target.down("h1").dom.innerHTML,
html:target.down("p").dom.innerHTML
});
}
//展示
win.show();
//对齐
win.alignTo(target);
},
_showAgentWin:function(e){
//查找目标div
var target = e.getTarget("div",5,true);
var sessionWinId = target.dom.id + "_win";
console.debug(sessionWinId)
//查找windows窗体
var win = this.agentGrp.get(sessionWinId);
//创建新窗体
if(!win){
win = new Ext.Window({
manager:this.agentGrp,
id:sessionWinId,
autoWidth:true,
autoHeight:true,
collapsible:true,
title:target.down("h1").dom.innerHTML,
html:target.down("p").dom.innerHTML
});
}
//展示
win.show();
//对齐
win.alignTo(target);
}
}
Ext.onReady(mutiWin.init,mutiWin);
分享到:
相关推荐
总之,"VC_dialog.rar_VC_Dialog_Vc dial_dialog"是一个关于如何在VC++中创建彩色对话框的学习资料,通过实践这个示例,开发者可以掌握自定义对话框界面的方法,提升Windows应用程序的用户体验。同时,这也涉及到对...
《jQuery Dialog 深度解析与实践应用》 在Web开发领域,jQuery Dialog是一款非常流行的JavaScript库,用于创建可交互的对话框。它基于jQuery框架,提供了丰富的功能和灵活的定制选项,使得开发者能够轻松地在网页上...
在Android应用开发中,Material Design是一种广泛采用的设计语言,它由Google提出,旨在提供一致、直观且富有表现力的用户体验。"material-dialogs"库是专门为Android开发者设计的一个组件,它实现了Material Design...
综上所述,"filedialog.zip_NEW_dialog_file_open_opendialog"代表的是一种全新的文件打开对话框组件,其目标是提供更好的用户体验和更丰富的功能,便于开发者集成到他们的应用程序中。通过学习和理解这个组件,...
A_generative_AI_dialog_system_that_can_ask_questio_ChineseStockGPT
“color_dialog_对话”标签暗示我们讨论的是与对话框相关的颜色定制,而“_dialog_对话”进一步强调了这一点。对话框的颜色设置通常涉及到对话框的背景色,这可能通过设置窗口或控件的前景色、背景色属性来完成。在...
总结来说,“dialog_toolbar.rar”提供的示例是一个关于如何在Windows对话框中实现工具栏功能的实例。它涵盖了从创建工具栏窗口、添加按钮、设置按钮属性到处理用户交互的整个过程。通过学习这个程序,开发者可以...
在IT领域,尤其是在Windows应用程序开发中,Visual C++(简称VC++)是一个广泛使用的集成开发环境,特别是对于那些想要利用Microsoft Foundation Classes (MFC)库来构建桌面应用程序的开发者。MFC提供了一种面向对象...
这个压缩包"Icon_Control_Access_Change_Icon_Dialog_Box.rar_icon"可能包含了关于如何在Access中更改表单或报表图标的详细步骤、示例或教程。"Access Change Icon Dialog Box"可能是操作过程中出现的一个特定对话框...
sap_20070930_Ecc5 Dialog Instance安装文档
这篇讨论将深入解析"dialog_read_image.zip"中的"dialog_read_image.pro" IDL程序,它用于读取遥感影像。 首先,我们需要了解IDL的基本语法。IDL是一种面向对象的、动态类型的编程语言,它的语法简洁,允许快速开发...
在Android开发中,`Dialog`是一个非常重要的组件,它用于在主界面之上显示临时的通知或者交互窗口。在iOS设计风格中,我们常常看到类似的对话框,因此在Android应用中模仿这种设计可以提升用户体验,使其更加贴近iOS...
在Android应用开发中,主题(Theme)是控制应用程序全局外观和行为的重要元素。"Theme.Dialog"和"Theme.Holo.DialogWhenLarge"都是Android系统提供的两种不同的对话框主题。本篇文章将详细探讨这两种主题的区别,...
在Microsoft Foundation Class (MFC)库中,Child Dialog(子对话框)是一种常见的用户界面元素,用于在应用程序中提供特定功能或信息输入。本示例"childdlg_MFC.rar"显然是一个关于如何在MFC应用中实现子对话框的...
通过这个项目,学习者可以了解如何在Windows应用程序中创建和管理菜单,包括主菜单和弹出式菜单,以及如何响应用户的菜单选择来执行相应的操作。 【标签】中的"newme"可能指的是这个项目的作者或者是一个特定的用户...
在计算机编程领域,尤其是Windows应用开发中,"对话框_通信"是一个重要的概念。对话框是一种用户界面元素,用于提供用户与程序之间的交互空间。在这个主题中,我们主要讨论的是如何在不同的对话框之间以及对话框与...
总的来说,`date_picker_dialog`为Android开发者提供了一个便利的日期选择工具,通过它可以快速实现日期输入功能,节省开发时间,提升应用质量。只需下载并根据提供的信息进行适配,你就能让用户的操作更加便捷,...
在安卓(Android)平台上开发应用时,我们常常需要创建各种对话框(Dialog)来与用户进行交互。Windows风格的Dialog是许多开发者所追求的一种界面设计,因为它能够为用户提供熟悉且一致的体验。本资源"安卓Android...
在本项目中,我们关注的是一个名为"CXT.rar"的压缩包文件,它涉及到一系列与计算机编程相关的技术,特别是地理信息系统(GIS)的开发...对于希望学习GIS编程或VC++ GUI应用开发的人员来说,这是一个有价值的参考案例。
在IT领域,尤其是在Windows应用程序开发中,经常需要与各种用户界面元素打交道,如对话框(Dialog Box)和图片控件(Picture Control)。本主题聚焦于如何利用二维缓冲(Double Buffering)技术在对话框和Picture...