EXT4.0方法如何进行好的封装

问题描述

自己在项目中写了一个公用的方法,方法调用的比较多,就相当于一个window window里面的内容也比较多,现在需要吧这整个方法抽离出来,方便其他的组员进行调用,初始window里面定义的form就有2个 fileSet就更多了 还有panle等等 里面也自己定义了些ID,现在不知道如何进行好的封装,刚接触EXT也没多久,求各位亲给点思路!

解决方案

//mixins类Ext.define('Canna.mixins.GridUtil', {onAfterrender : function() {var me = this;if (!this.getStore && !this.getStore()) {return;}this.showLoadingMark();this.getStore().load({callback : function() {me.hideLoadingMark();}});},onSelectionchange : function(sm, selections) {this.view.panel.down('#removeButton').setDisabled(selections.length == 0);},onAddHandler : function() {var panel = this.up('gridpanel');var store = panel.getStore();if (store.storeId == 'ext-empty-store') {store = Ext.create('Ext.data.Store', {model : 'Ext.data.Model',fields : [],proxy : 'memory'});panel.bindStore(store);}var model = store.model;var r = Ext.create(model, {});panel.getStore().insert(0, r);if (panel.rowEditingAble) {var rowEditing = panel.getEditPlugin();rowEditing.cancelEdit();rowEditing.startEdit(0, 0);}},onDeleteHandler : function() {var grid = this.up('gridpanel');var records = grid.getSelectionModel().getSelection();Ext.MessageBox.confirm('Confirm', '请确定删除!', function(buttonId) {if (buttonId == 'yes') {grid.getStore().remove(records);}});},showLoadingMark : function() {this.loadingMark = this.loadingMark || new Ext.LoadMask(this, {msg : 'loading...'});this.loadingMark.show();},hideLoadingMark : function() {this.loadingMark.hide();},getEditPlugin : function() {return this.getPlugin(this._pluginId);},addRowEditPlugin : function() {var me = this;me._pluginId = 'rowEditing' + Math.random();var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {clicksToEdit : 2,autoCancel : true,pluginId : me._pluginId});me.plugins = [ rowEditing ];}});//extend 类Ext.define('Canna.view.BaseGridPanel', {extend : 'Ext.grid.Panel',alias : 'widget.baseGridPanel',mixins : [ 'Canna.mixins.GridUtil' ],initComponent : function() {// rowEditingAble// checkboxModelAble// simpleDockAble// autoLoadStorevar me = this;if (this.rowEditingAble) {this.addRowEditPlugin();}if (this.autoLoadStore) {this.addListener('afterrender', me.onAfterrender);}if (this.checkboxModelAble) {this.selModel = Ext.create('Ext.selection.CheckboxModel', {listeners : {selectionchange : me.onSelectionchange}});}if (this.simpleDockAble) {this.dockedItems = [ {xtype : 'toolbar',items : [ {text : '添加',iconCls : 'add',handler : me.onAddHandler}, '-', {itemId : 'removeButton',text : '删除',iconCls : 'remove',disabled : true,handler : me.onDeleteHandler} ]} ];}this.callParent(arguments);}});使用mixins,或使用extend
解决方案二:
ext4.0的开发现在更加面向对象了,你可以定义一个"类",把相关方法放进去,有需要调用方法的时候,引用此"类"

时间: 2024-10-03 17:13:57

EXT4.0方法如何进行好的封装的相关文章

ext4.0这个BUG如何修改?

问题描述 ext我用的是4.0,旧版本3.0没有这个问题.我在一个强出的Window窗体中,加载fckeditor编辑器,当然可以正常的显示出来了,但是我选择图片上传那个工具条时,强出的浏览图片的那个对话框没在Window窗体的前面!即躺在了Window窗体后面去了,相当于被窗体给覆盖掉了!这显然是不行的,这个问题,怎么解决呢?才能做点工具栏时,弹出的窗永远在最前面?可能说得有点抽象,下面,我弄截图上面.下面再说下,我自己的解决方法与思路,只是没效果,请大虾们指教.这种情况下,我们肯定会想到,是

AFNetworking2.0简易GET,POST请求封装以及使用

AFNetworking2.0简易GET,POST请求封装以及使用 AFNetworking不用我赘述其强大性,本人仅仅做了非常简易的封装,解决了有时候请求出错的问题,提供源码给大家. 封装源码库下载地址: http://pan.baidu.com/s/1wDLIQ 源码: Networking.h 与 Networking.m // // Networking.h // Weather // // Created by YouXianMing on 15/01/01. // Copyright

关于数组清空arr = []方法和arr.length = 0方法的性能比较

问题描述 关于数组清空arr = []方法和arr.length = 0方法的性能比较 下面是总结的几种清空数组的方法直接上代码: var arr = [1,5,2,6,5,22,60]; function empty() { arr = []; /* arr = []意味着赋值给新数组变量,而其他引用不受影响.这意味着对先前数组的赋值任然保留在内存中,从而导致内存泄露. */ arr.length = 0; /* arr.length = 0;删除当前数组中的全部内容但不影响与其他的关联性 *

方法-Spring aop可以拦截封装好的jar包里的程序吗?

问题描述 Spring aop可以拦截封装好的jar包里的程序吗? Spring aop可以拦截封装好的jar包里的程序吗?比如jdbc驱动包里的Driver.connect()方法 解决方案 当然可以拦截啊,只要指定好要拦截的方法全路径 解决方案二: 当然可以拦截啊,只要指定好要拦截的方法全路径 解决方案三: 可以拦截啊,只要指定好要拦截的方法全路径

EXT4.0 tree动态加载的问题 亲!

问题描述 现在需要动态的去加载一些节点的信息如 : 树的初始化只加载了1,2层然后当我点击一个按钮 我需要展开3 4 5层肯定是先展开3层 然后3层加载完成后再加载4层 再5层查询了API的一些资料 一些如expand() load的方法都为异步加载目前是一个循环加载3 4 5然后是加载了3层 循环马上去调用4层 出现了null 而抛异常 在方法上写上同步貌似也没用 求各位亲帮忙了! 问题补充:主要是一个层级的关系 我在树上做一个模糊的查询功能.如初始化加载出了 1,2层,然后我模糊查询的内容是

Lua OS 0.11.1发布 Lua's封装工具

Lua OS 0.11.1这个版本增加了自动化系统调整,获得Windows密钥功能和笔记本触摸板的功能. Lua是一个简单有趣的脚本语言.Lua OS是一个以Lua's封装为基础来完成OS的功能,如系统休眠,登录,重启,移动,流动性和灵活的安全http://www.aliyun.com/zixun/aggregation/6926.html">管理能力. 下载地址:http://luaos.net/download/files/luaos-0.11.1.zip

Ext4.0中window窗体使用详解(常用属性)

先看看效果图 首先在jsp中导入一下文件 <link rel="stylesheet" type="text/css" href="<%= path %>/extJs/resources/css/ext-all.css"> <script type="text/javascript" src="<%= path %>/extJs/ext-all.js"><

华为荣耀8怎么升级emui5.0?华为荣耀8升级emui5.0方法

emui5.0升级教程: 注意事项:升级前,把手机的重要数据进行备份.保证电池电量大于80%.准备一张3G以上容量的SD卡,并查看:设置-存储-默认存储设置为SD卡. emui5.0升级具体步骤: 点击设置,找到系统更新(也可以在桌面实用工具中"系统更新"进入,进行升级操作),检查更新,搜索到新版本,然后下载.安装. 点击设置,找到全部设置下的隐私和安全模块,进入到备份和重置界面,进行恢复出厂设置. 点击桌面"备份"图标,进入备份界面,找到备份记录,然后根据提示,恢

Ext 3.3 数据透视表、日历组件、Ext4.0之前最重要的升级

数据透视表 Grid是Ext的重头戏,每次发布新版本都会对Grid加入新元素.这一次发布也不例外.3.3加入了"数据透视表PivotGrid".前一个版本3.2已加入了"多层表头",这一次在左边的一列定义leftAxis.如图就是一个员工销售业绩表的例子.使用PivotGrid比较关键的是其数据结构,我们可以看看官方的例子其中的Store. var pivotGrid = new Ext.grid.PivotGrid({ title : 'PivotGrid exa