/**
* Created by seeker910 on 2017/4/15.
* 枚举数据类型
*/
Rsd.define('Rsd.data.Enum', {
extend:'Rsd.common.Object',
requires:['Rsd.data.EnumItem'],
xtype:'enum',
singleton:false,
/**
* @description 仅在定义时使用,在创建Rsd.data.EnumItem对象时,从数据源items中 ,获取指定属性作为Rsd.data.EnumItem对象的text属性值
*/
textMember: 'text',
/**
* @description 仅在定义时使用,在创建Rsd.data.EnumItem对象时,从数据源items中 ,获取指定属性作为Rsd.data.EnumItem对象的value属性值
*/
valueMember: 'value',
/**
* @description 仅在定义时使用,在创建Rsd.data.EnumItem对象时,从数据源items中 ,获取指定属性作为Rsd.data.EnumItem对象的code属性值
*/
codeMember: 'code',
/**
* @description 仅在定义时使用,在创建Rsd.data.EnumItem对象时,从数据源items中 ,获取指定属性作为Rsd.data.EnumItem对象的color属性值
*/
colorMember:'color',
//items:[],
text:'',
constructor: function Enum (config) {
config = config || {};
this.apply(config);
},
/**
*获取EnumItem
* */
getItem:function getItem(value) {
if(!this.__mapping)
{
this.__mapping = {};
this.__mapping_code = {};
var _item = null;
var _list = this.items || this.chidren||[];
for(var i=0;i < _list.length ;i++)
{
_item = _list[i];
this.__mapping[_item.value] = _item;
this.__mapping_code[_item.code] = _item;
}
}
return this.__mapping[value]|| this.__mapping_code[value];
}
},function (type) {
var _itemsGetter = function () {
if (this.__items == undefined) {
this.__items = [];
}
return this.__items;
};
var _itemsSetter = function (value) {
this.__items = value;
for(var i in this.items)
{
//debugger;
var _item = this.items[i];
if(_item instanceof Rsd.data.EnumItem)
{
}
else
{
this.items[i] = Rsd.create('Rsd.data.EnumItem',{
color:_item[this.colorMember||'color'] || _item['Color'],
text:_item[this.textMember||'text']|| _item['Text'],
code:_item[this.codeMember||'code']|| _item['Code'],
value:_item[this.valueMember||'value'] || _item['Value']});
this.items[i].parent = this;
}
}
};
this.defineProperty(type,"items", _itemsGetter, _itemsSetter,true);
});