日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ExtJs桌面组件(DeskTop)

發布時間:2024/1/3 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 ExtJs桌面组件(DeskTop) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在desktopjs目錄中包含了5個js文件,這5個js文件如下:

還有css樣式表:desktop.css,圖片素材

在這5個js文件中封裝了用于模擬桌面的類,這些類如下:

Ext.ux.StartMenu(StartMenu.js) 模擬操作系統桌面左下方的開始菜單
Ext.ux.TaskBar(TaskBar.js) 模擬操作系統桌面右下方的任務欄

Ext.Desktop(Desktop.js) 模擬操作系統的整個桌面
Ext.app.Module(Module.js)對應整個應用程序中的各個功能模塊
Ext.app.App(App.js)對應整個應用程序

由于這些類并不包含在ExtJS的核心組件中,因此,在使用這些類之前,要先引用這些js文件以及相應的css文件,代碼如下:

[javascript]view plaincopy

<scripttype="text/javascript"src="js/StartMenu.js"></script>
<scripttype="text/javascript"src="js/TaskBar.js"></script>
<scripttype="text/javascript"src="js/Desktop.js"></script>
<scripttype="text/javascript"src="js/App.js"></script>
<scripttype="text/javascript"src="js/Module.js"></script>
<scripttype="text/javascript"src="sample.js"></script>

其中desktop.css模擬桌面所需的樣式文件,在samples.js文件中利用上面5個類實現了如圖所示的桌面。

使用桌面組件的第1步是創建Ext.app.App對象,代碼如下:

[javascript]view plaincopy

//桌面組件配置
MyDesktop=newExt.app.App({
//初始化
init:function(){
Ext.QuickTips.init();
},
//創建功能模塊
getModules:function(){
return[
newMyDesktop.GridWindow(),
newMyDesktop.TabWindow(),
newMyDesktop.AccordionWindow(),
newMyDesktop.BogusMenuModule(),
newMyDesktop.BogusModule()
];
},
//配置開始菜單
getStartConfig:function(){
return{
title:'我的系統',
iconCls:'user',
toolItems:[{
text:'設置',
iconCls:'settings',
scope:this
},'-',{
text:'注銷',
iconCls:'logout',
scope:this
}]
};
}
});


與創建大多數ExtJS組件不同,在創建Ext.app.App對象時,并不需要在Ext.onReady方法中指定頁面加載完后執行的初始化桌面的方法,ExtJS會在頁面加載完成后,自動調用Ext.app.App的init方法對模擬的桌面進行初始化。
在init方法執行后,ExtJS會自動調用getModules和getStartConfig方法對整個應用程序進行配置。getModules方法返回了一個包含多個Ext.app.Module對象的數組。每一個Module對象代表應用中的一個功能模塊,這些功能模塊都以彈窗的形式出現在桌面上。可以使用模擬桌面的開始菜單的Ext.ux.StartMenu展開這些功能模塊的窗口。
對于已經展開的窗口,也可以通過模擬桌面下方的任務欄的Ext.ux.TaskBar控制某個窗口的顯示或隱藏。
Ext.app.App中的startConfig()函數主要是用來配置開始菜單的選項。例子中配置了兩個按鈕,名稱分別為"設置","注銷",可以像對待普通菜單項一樣配置,設置對應的標題,圖標等參數。也可以設置handler在用戶點擊時執行對應的操作。

[javascript]view plaincopy

/*
*創建一個名為MyDesktop.GridWindow的功能模塊,并在Ext.app.App的getModules()函數中對其執行了初始化操作。
*/
MyDesktop.GridWindow=Ext.extend(Ext.app.Module,{
id:'grid-win',
//初始化
init:function(){
this.launcher={
text:'GridWindow',
iconCls:'accordion',
handler:this.createWindow,
scope:this
}
},
createWindow:function(){
vardesktop=this.app.getDesktop();
varwin=desktop.getWindow('grid-win');
if(!win){
win=desktop.createWindow({
id:'grid-win',
title:'GridWindow',
740,
height:480,
iconCls:'icon-grid',
shim:false,
animCollapse:false,
constrainHeader:true
});
}
win.show();
}
});


在為Ext.app.App創建功能模塊時,都要集成Ext提供的Ext.app.Module,這個類中只定義一個init()函數,需要重寫這個函數來實現我們的功能。
一般只需要在init()函數中定義一個launcher對象,他是一個JSON對象,內部包含了啟動這個功能模塊所需要的一些配置。當在Ext.ux.StartMenu中點擊對應的功能模塊時,就會執行launcher中定義的handler屬性,彈出這個功能模塊對應的窗口。
例子中的handler屬性對應著自身的createWindow()函數。在這個回調函數中,我們先通過this.app.getDesktop()獲得整個應用對應的模擬桌面,然后使用desktop.getWindow('grid-win')判斷功能模塊對應的窗口是否已經存在,如果窗口還沒有創建,就調用desktop.createWindow()創建這個窗口,,并顯示出來。
除了使用Ext.ux.StartMenu顯示功能窗口之外,我們還可以使用桌面的快捷方式啟動對應的功能模塊,點擊模擬桌面上放置的圖標或鏈接,就可以讓對應的功能窗口直接顯示出來。

[javascript]view plaincopy

MyDesktop.TabWindow=Ext.extend(Ext.app.Module,{
id:'tab-win',
init:function(){
this.launcher={
text:'TabWindow',
iconCls:'tabs',
handler:this.createWindow,
scope:this
}
},
createWindow:function(){
vardesktop=this.app.getDesktop();
varwin=desktop.getWindow('tab-win');
if(!win){
win=desktop.createWindow({
id:'tab-win',
title:'TabWindow',
740,
height:480,
html:'TabWindow',
iconCls:'tabs',
shim:false,
animCollapse:false,
border:false,
constrainHeader:true
});
}
win.show();
}
});

Ext.Desktop中將快捷方式稱為shortcut,我們不需要寫任何代碼來配置快捷方式,只需要在為標簽和對象命名時遵守一定的規則即可。
在模擬桌面上顯示的快捷方式時所使用的HTML標簽如下:

[javascript]view plaincopy

<dlid="x-shortcuts">
<dtid="grid-win-shortcut">
<ahref="#"><imgsrc="images/s.gif"/>
<div>GridWindow</div></a>
</dt>
</dl>

模擬快捷方式都必須包含在id = 'x-shortcuts'的dl標簽中,dl標簽中包含每個dt標簽都將成為一個快捷方式。這些dt標簽屬性都以-shortcut結尾,將id屬性中的-shortcut部分去掉后,得到的就是功能模塊的id。

轉載自:http://blog.csdn.net/sjf0115/article/details/9346727

總結

以上是生活随笔為你收集整理的ExtJs桌面组件(DeskTop)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。