上面设计好了一个模块的主界面,下面通过菜单命令的执行来把这个模块加入到主界面当中。在MainModule.js中有一个函数,生成了当前的菜单数据:

// 根据data.systemMenu生成菜单条和菜单按钮下面使用的菜单数据
getMenus : function() {
var items = [];
var menuData = this.get('systemMenu'); // 取得定义好的菜单数据
Ext.Array.each(menuData, function(group) { // 遍历菜单项的数组
var submenu = [];
// 对每一个菜单项,遍历菜单条的数组
Ext.Array.each(group.items, function(menuitem) {
submenu.push({
mainmenu : 'true',
moduleName : menuitem.module,
text : menuitem.text,
icon : menuitem.icon,
glyph : menuitem.glyph,
handler : 'onMainMenuClick' // MainController中的事件处理程序
})
})
var item = {
text : group.text,
menu : submenu,
icon : group.icon,
glyph : group.glyph
};
items.push(item);
})
return items;
}

其中的  handler : 'onMainMenuClick',就是在点击了菜单以后,去执行 MainController.js中的onMainMenuClick 函数。修改一下MainController.js 文件,先引入Module.js

uses : ['app.view.module.Module'], 

再修改里面的函数:

// 选择了主菜单上的菜单后执行
onMainMenuClick : function(menuitem) {
var maincenter = this.getView().down('maincenter'); maincenter.setActiveTab(maincenter.add({
xtype : 'modulepanel',
closable : true,
reorderable : true
}));
}

这样每单击一次菜单,都会生成一个Module,并把他放到tabPanel之中去。

下面再看看tabPanel之中的另一个功能,在tab上点右键,会有一个弹出式菜单。

这里面有一些功能可以使用,可关闭,表示当前tab可以被关掉,在名字上方有一个X,如果取消可关闭,X就会消失,另外登录时自动打开和最多打开的功能现在还没做好。

12、手把手教你Extjs5(十二)执行菜单命令在tabPanel中显示模块的更多相关文章

  1. 跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)

    跟我一起学extjs5(13--运行菜单命令在tabPanel中显示模块)         上面设计好了一个模块的主界面,以下通过菜单命令的运行来把这个模块增加到主界面其中. 在MainModule. ...

  2. 20、手把手教你Extjs5(二十)模块Grid的多列表方案

    对于有很多字段的模块在一个grid中显示所有的字段,会显得很臃肿,对于不同的用户其侧重的字段类型也不尽相同,因此就有必要为Grid的列表设计多个方案.在这个自定义系统进行设计的时候,我已经将这部分内容 ...

  3. 24、手把手教你Extjs5(二十四)模块Form的自定义的设计[3]

    自定义的Form已经可以运行了,下面改一下配置,把Form里面的FieldSet放在Tab之下.修改一下ModuleModel.js中的data下的tf_FormSchemes下的方案,增加一个属性. ...

  4. 22、手把手教你Extjs5(二十二)模块Form的自定义的设计[1]

    下面开始设计和完成一个简单的Form的自定义过程.先准备数据,在ModuleModel.js中的data属性下面,加入自定义Form的参数定义,下面的代码中定义了一个新的属性tf_formScheme ...

  5. 25、手把手教你Extjs5(二十五)Extjs5常用组件--form的基本用法

    Extjs Form是一个比较常用的控件,主要用来显示和编辑数据的,今天这篇文章将介绍Extjs Form控件的详细用法,包括创建Form.添加子项.加载和更新数据.验证等. Form和Form Ba ...

  6. 23、手把手教你Extjs5(二十三)模块Form的自定义的设计[2]

    在本节中将要加入各种类型的字段,在加入字段的时候由于可以一行加入多个字段,因此层次结构又多了一层fieldcontainer.form里面的主要层次结构如下: form -- fieldSet -- ...

  7. 21、手把手教你Extjs5(二十一)模块Form的自定义的设计

    前面几节完成了模块Grid的自定义,模块Form自定义的过程和Grid的过程类似,但是要更复杂一些.先来设计一下要完成的总体目标. 1、可以有多个Form方案,对应于显示.新增.修改.审核.审批等功能 ...

  8. 手把手教你mysql(十)索引

    手把手教你mysql(十)索引 一:索引的引入 索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度. 类似于图书的目录,方便快速定位,寻找指定的内容,如一本1000页的 ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十二章:几何着色器(The Geometry Shader) 代码工 ...

随机推荐

  1. Light OJ 1008

    找规律. 首先令n=sqrt(s),上取整.讨论当n为偶数时,若n*n-s<n则x=n,y=n*n-s+1否则x=-n*n+2*n+s-1,y=n;如果n为奇数,交换x,y即可,对称的. Sam ...

  2. 转:LoadRunner检查点使用小结

    LR中检查点有两种:图片和文字. 常用检查点函数如下: 1)web_find()函数用于从 HTML 页中搜索指定的文本字符串: 2)web_reg_find()函数注册一个请求,以在下一个操作函数( ...

  3. 开源企业管理软件 ONES

    ONES 不是 ONS,基于AngularJS + ThnkPHP开发的企业管理系统平台,名字可以理解为ONES is a Niubility ERP System 或者 ONES Notonly a ...

  4. setAttribute的兼容性

    class和className兼容方法: object.setAttribute("class","content") 在IE8.Chrome.火狐.Opera ...

  5. 编程实现prim算法和Dijkstra算法。

    网址链接:http://blog.csdn.net/anialy/article/details/7603170

  6. haar_adaboost_cascade阅读资料

    1,AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图 2,浅谈 Adaboost 算法 3,浅析人脸检测之Haar分类器方法 4,http://wenku.bai ...

  7. java字符编码,字符转码

    编码:String->byte[]; str.getBytes(charsetName) 解码:byte[]->String; new String(byte[],charsetName) ...

  8. 【转】Build Your own Simplified AngularJS in 200 Lines of JavaScript

    原文:http://blog.mgechev.com/2015/03/09/build-learn-your-own-light-lightweight-angularjs/ Build Your o ...

  9. tabBar自定义

    有时系统的tabBar并不能满足我们的开发需求: 这时,我们需要自定义一个tabBar.直接上代码: // 在tabBarController中用KVC更换掉系统tabBar [self setVal ...

  10. Java中的字符串分割 .

    转自 http://blog.csdn.net/yuwenhao0518/article/details/7161059 http://longkm.blog.163.com/blog/static/ ...