来了上海后,博客变成周记本了,O(∩_∩)O哈哈~。那个desktop我已经搞定了,看起来貌似很难,然而官方是有desktop的example的,打开它的源码,只要看明白了也就觉得不难了。
要想将自己的window放进desktop中,那么这个window就必须继承自Ext.app.Module(记得要把example里面的App.js、Desktop.js、Module.js、StartMenu.js及TaskBar.js导入,当然也别忘了样式文件。)。例如:

MyDesktop.ChannelSearchWin = Ext.extend(Ext.app.Module, {
        init : function(){
        this.launcher = {
	   iconCls:'icon-grid',
            text: '渠道商查询',
            handler : this.createWindow,
            scope: this,
            windowId:'channel-search-win'
        }
    },
    id:'channel-search-win',
    createWindow : function(){
        var desktop = this.app.getDesktop();
        var win = desktop.getWindow('channel-search-win');
        if(!win){
            win = desktop.createWindow(new NeekeChannelSearchWin().initialConfig);
        }
        win.show();
    }
});

接着创建桌面,这个桌面像一个最外围的容器,里面存放所有的window。

MyDesktop = new Ext.app.App({
	init :function(){
		Ext.QuickTips.init();
	},
  //初始化所有桌面窗体
	getModules : function(){
		return [
 
			new MyDesktop.ChannelSearchWin()]
	},
 
    //开始菜单
    getStartConfig : function(){
        return {
            title: 'Welcome Administrator',
            iconCls: 'user',
            toolItems: [{
                text:'退出系统',
                iconCls:'logout',
				handler: function(){
 
					window.location = 'index.cfm';
				},
                scope:this
            }]
        };
    }
});

这就是最简单的方式了,如果要想实现其他功能或效果那就得自己动手修改那几个核心文件了。
desktop完工之后,又开始搞Google Map API与ExtJS的整合,要做出如下图所示效果,

我要将物流单经过的城市都在地图上标记出来,并按照时间顺序编号连线,反之则用红色,标记点被点击时还要局部放大该点显示在一个小地图中,如果最终状态为“客户已签收”,则终点为收件点并与其他点用蓝色线连接。自从上班后,我接到的任务几乎都是我之前从未做过的。先花了几个小时看了看Google Map API,大概了解了一下基础知识。接着又去ExtJS官方网站找了找相关应用,在其Blog里被我找到了好东西Ext.ux.GMapPanel。把Google Map API和Ext.ux.GMapPanel源码对应着看,很快就能发现其实这个Ext.ux.GMapPanel写的非常简单。写了一个月左右的ExtJS了,越来越觉得这个东西写起来非常的惬意。