ExtJs Desktop

1): 打開 EXT2.0/example/desktop 桌面,打開 sample.js 文件 .

       getModules : function(){// 配置開始裏面:左邊的

              return [

                     new MyDesktop.CmpWindow(),

                     new MyDesktop.ForumWindow(),

                     new MyDesktop.softWindow()

 

              ];

       },

 

    // config for the start menu   配置開始裏面,右邊的

    getStartConfig : function(){

        return {

            title: ‘ddddddddddd ‘,

            iconCls: ‘user’,

            toolItems: [{

                text:' 後臺管理 ',

                iconCls:'settings',

                scope:this

            },'-',{

                text:' 關於 ',

                iconCls:'logout',

                scope:this

            }]

        };

}

 

上面這兩個是配置開始欄裏面的左邊菜單和右邊菜單 . 簡單,而且很容易寫嘍 .

click 公司簡介的時候,調用 MyDesktop.CmpWindow() 動態產生一個窗品,具體如何實現,看代碼註解:

MyDesktop.CmpWindow = Ext.extend(Ext.app.Module, {

       id:’esk-win’,  // 窗口的唯一標識,這個非常重要

    init : function(){

        this.launcher = {

            text: ‘ 企業 簡介 ‘,  // 這個是標題

             iconCls:’bogus’,    // 這個是標題左邊的圖標

            handler : this.createWindow,  // 產生這個窗口的函數

            scope: this

        }

    },

 

    createWindow : function(){  // 產生 Window 函數

        var desktop = this.app.getDesktop();  // 得到系統桌面對象

         var win = desktop.getWindow(”esk-win”);  // 取窗口

        if(!win){                            // 如果這個窗口對象沒有產生過

            win = desktop.createWindow({

                id: “esk-win”,          

                title:” 企業簡介 “,/ 標題

                width:640,

                height:480,

                html :cmp_descr,   // 內容

                iconCls: ‘bogus’,   // 圖標

                shim:false,

                animCollapse:false,

                constrainHeader:true

            });

        }

        win.show();   // 顯示窗口

    }

});

 

  開始欄是比較簡單,可桌面上圖標的 shortCuts 呢,它可是什麼都沒有寫呀 , 代碼如下:

    <dl id=”x-shortcuts”>

        <dt id=”esk-win-shortcut”>

            <a href=”#”><img src=”images/cmp.png” />

            <div> 企業簡介 </div></a>

        </dt>

        <dt id=”esk-news-shortcut”>

            <a href=”#”><img src=”images/news.png” />

            <div> 新聞資訊 </div></a>

        </dt>

        <dt id=”esk-product-shortcut”>

            <a href=”#”><img src=”images/product.png” />

            <div> 產品展示 </div></a>

        </dt>

        <dt id=”esk-soft-shortcut”>

            <a href=”#”><img src=”images/show.png” />

            <div> 在線演示 </div></a>

        </dt>

        <dt id=”esk-download-shortcut”>

            <a href=”#”><img src=”images/down.png” />

            <div> 下載中心 </div></a>

        </dt>

         <dt id=”esk-word-shortcut”>

            <a href=”#”><img src=”images/word.png” />

            <div> 客戶 留言 </div></a>

        </dt>

        <dt id=”esk-forum-shortcut”>

            <a href=”#”><img src=”images/word.png” />

            <div>ESK 分銷論壇 </div></a>

        </dt>

    </dl>

</div>

 

最後它是怎麼找到對應的 createWindow 呢,還是把代碼糾出來,一看就明白了。打開 desktop.js 文件

 

     var shortcuts = Ext.get(’x-shortcuts’);// 取到快捷鍵區

    if(shortcuts){                   // 如果存在

        shortcuts.on(’click’, function(e, t){

// 爲這個區加一個 click 函數,只要有 click 事件發生,就會掉用此處,

            if(t = e.getTarget(’dt’, shortcuts)){// click 的時候

                e.stopEvent();// 停此事件

// 取到上面的 MyDesktop.CmpWindow, 注意, html 當中定義的 id 去掉 -shortcut 後就是上面 window id, 這個與上面對應,所以能取到 )

                var module = app.getModule(t.id.replace(’-shortcut’, ”))

                if(module){// 如果沒有產生過

                    module.createWindow();// 顯示窗口

                }

            }

        });

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章