日期:2014-05-16 浏览次数:20525 次

/**
* 组件扩展 - 登录窗口
*/
Ext.define('App.LoginWindow', {
extend : 'Ext.Window',
title : '登录',
initComponent : function() {
Ext.apply(this, {
items : [{
xtype : 'textfield',
name : 'username',
fieldLabel : '账号'
}, {
xtype : 'textfield',
name : 'password',
fieldLabel : '密码'
}]
});
this.callParent(arguments);
}
});
/**
* 音乐人
*/
Ext.define('Model.Musician', {
extend : 'Model.Person',
requires: ['Model'],
mixins : {
guitar : 'Interface.CanPlayGuitar',
compose : 'Interface.CanComposeSongs',
sing : 'Interface.CanSing'
}
});
/**
* 混入用法
*/
/*
var someone = Ext.create('Model.Musician');
someone.getMixin('guitar').playGuitar();
// or
someone.playGuitar();
*/
/**
* 玩吉它
*/
Ext.define('Interface.CanPlayGuitar', {
playGuitar : function() {
Ext.Msg.alert('info', 'Play Guitar');
}
});
/**
* 人
*/
// ExtJS3
/*
Model.Person = Ext.extend(Object, {
name : 'noname',
getName : function() {
return this.name;
},
resetName : function() {
this.setName('noname');
},
setName : function(newName) {
this.name = this.applyName(newName) || newName;
},
applyName : function(newName) {
}
});
*/
// ExtJS4 框架会自动上面的四个方法.
Ext.define('Model.Person', {
config : {
name : 'noname'
},
// @override
applyName : function(newName) {
// 值改变时,执行一些动作
}
});
/**
* 命名空间
*/
Ext.ns('Model');
/**
* 音乐人
*/
Ext.define('Model.Musician', {
extend : 'Model.Person',
requires: ['Model'],
mixins : {
guitar : 'Interface.CanPlayGuitar',
compose : 'Interface.CanComposeSongs',
sing : 'Interface.CanSing'
}
});
statics : [
count : 0,
fun : function() {}
]