`
refurbish
  • 浏览: 27847 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

LearningExtJS_new 之 windows and dialog 的应用学习(七) PART II

阅读更多
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_dialog.rar_VC_Dialog_Vc dial_dialog"是一个关于如何在VC++中创建彩色对话框的学习资料,通过实践这个示例,开发者可以掌握自定义对话框界面的方法,提升Windows应用程序的用户体验。同时,这也涉及到对...

    jquery_dialog jquery_dialog jquery_dialog

    《jQuery Dialog 深度解析与实践应用》 在Web开发领域,jQuery Dialog是一款非常流行的JavaScript库,用于创建可交互的对话框。它基于jQuery框架,提供了丰富的功能和灵活的定制选项,使得开发者能够轻松地在网页上...

    material-dialogs_material-dialogs_dialog_android开发_material_

    在Android应用开发中,Material Design是一种广泛采用的设计语言,它由Google提出,旨在提供一致、直观且富有表现力的用户体验。"material-dialogs"库是专门为Android开发者设计的一个组件,它实现了Material Design...

    filedialog.zip_NEW_dialog_file_open_opendialog

    综上所述,"filedialog.zip_NEW_dialog_file_open_opendialog"代表的是一种全新的文件打开对话框组件,其目标是提供更好的用户体验和更丰富的功能,便于开发者集成到他们的应用程序中。通过学习和理解这个组件,...

    A_generative_AI_dialog_system_that_can_ask_questio_ChineseSt

    A_generative_AI_dialog_system_that_can_ask_questio_ChineseStockGPT

    Dialog-and-Button-color.rar_button_color_color dialog _dialog_对话

    “color_dialog_对话”标签暗示我们讨论的是与对话框相关的颜色定制,而“_dialog_对话”进一步强调了这一点。对话框的颜色设置通常涉及到对话框的背景色,这可能通过设置窗口或控件的前景色、背景色属性来完成。在...

    dialog_toolbar.rar_Toolbar_dialog toolb_dialog-toolbar

    总结来说,“dialog_toolbar.rar”提供的示例是一个关于如何在Windows对话框中实现工具栏功能的实例。它涵盖了从创建工具栏窗口、添加按钮、设置按钮属性到处理用户交互的整个过程。通过学习这个程序,开发者可以...

    VC_Dialog.rar_ VC_Dialog_VC界面_c vc dialog_visual c++dialog

    在IT领域,尤其是在Windows应用程序开发中,Visual C++(简称VC++)是一个广泛使用的集成开发环境,特别是对于那些想要利用Microsoft Foundation Classes (MFC)库来构建桌面应用程序的开发者。MFC提供了一种面向对象...

    Icon_Control_Access_Change_Icon_Dialog_Box.rar_icon

    这个压缩包"Icon_Control_Access_Change_Icon_Dialog_Box.rar_icon"可能包含了关于如何在Access中更改表单或报表图标的详细步骤、示例或教程。"Access Change Icon Dialog Box"可能是操作过程中出现的一个特定对话框...

    sap_20070930_Ecc5 Dialog Instance安装

    sap_20070930_Ecc5 Dialog Instance安装文档

    dialog_read_image.zip_ dialog_read_image_IDL 影像读取_IDL读取_遥感

    这篇讨论将深入解析"dialog_read_image.zip"中的"dialog_read_image.pro" IDL程序,它用于读取遥感影像。 首先,我们需要了解IDL的基本语法。IDL是一种面向对象的、动态类型的编程语言,它的语法简洁,允许快速开发...

    MyAndroidTest_93_IOSDialog

    在Android开发中,`Dialog`是一个非常重要的组件,它用于在主界面之上显示临时的通知或者交互窗口。在iOS设计风格中,我们常常看到类似的对话框,因此在Android应用中模仿这种设计可以提升用户体验,使其更加贴近iOS...

    android安卓app已经放弃使用Theme.Dialog,改用Theme.Holo.DialogWhenLarge

    在Android应用开发中,主题(Theme)是控制应用程序全局外观和行为的重要元素。"Theme.Dialog"和"Theme.Holo.DialogWhenLarge"都是Android系统提供的两种不同的对话框主题。本篇文章将详细探讨这两种主题的区别,...

    childdlg_MFC.rar_MFC child_child_mfc child dialog

    在Microsoft Foundation Class (MFC)库中,Child Dialog(子对话框)是一种常见的用户界面元素,用于在应用程序中提供特定功能或信息输入。本示例"childdlg_MFC.rar"显然是一个关于如何在MFC应用中实现子对话框的...

    NewMenu.rar_NewMe_NewMenu_VC NewMe

    通过这个项目,学习者可以了解如何在Windows应用程序中创建和管理菜单,包括主菜单和弹出式菜单,以及如何响应用户的菜单选择来执行相应的操作。 【标签】中的"newme"可能指的是这个项目的作者或者是一个特定的用户...

    data_exchange_of_dialog.rar_对话框 通信

    在计算机编程领域,尤其是Windows应用开发中,"对话框_通信"是一个重要的概念。对话框是一种用户界面元素,用于提供用户与程序之间的交互空间。在这个主题中,我们主要讨论的是如何在不同的对话框之间以及对话框与...

    date_picker_dialog

    总的来说,`date_picker_dialog`为Android开发者提供了一个便利的日期选择工具,通过它可以快速实现日期输入功能,节省开发时间,提升应用质量。只需下载并根据提供的信息进行适配,你就能让用户的操作更加便捷,...

    安卓Android源码——安卓Android实现Windows风格的Dialog.rar

    在安卓(Android)平台上开发应用时,我们常常需要创建各种对话框(Dialog)来与用户进行交互。Windows风格的Dialog是许多开发者所追求的一种界面设计,因为它能够为用户提供熟悉且一致的体验。本资源"安卓Android...

    CXT.rar_apache oracle_input dialog vc_vc cxtbutton_地图 _地图控件

    在本项目中,我们关注的是一个名为"CXT.rar"的压缩包文件,它涉及到一系列与计算机编程相关的技术,特别是地理信息系统(GIS)的开发...对于希望学习GIS编程或VC++ GUI应用开发的人员来说,这是一个有价值的参考案例。

    TestDlg.rar_picture控件_switch dialog box

    在IT领域,尤其是在Windows应用程序开发中,经常需要与各种用户界面元素打交道,如对话框(Dialog Box)和图片控件(Picture Control)。本主题聚焦于如何利用二维缓冲(Double Buffering)技术在对话框和Picture...

Global site tag (gtag.js) - Google Analytics