Rsd.define('Rsd.control.MenuList', {
extend: 'Rsd.control.List',
xtype: 'menu-list',
requires: ['Rsd.data.Menu',
'Rsd.control.Svg',
'Rsd.form.Link',
'Rsd.form.ComboBox',
'Rsd.form.Button'],
margin: '0 0 0 0',
width: 120,
itemClick:'menuclick',
cls: 'R',
/**
* 被选中时样式
*/
itemSelectedCls:'x-selected',
itemHover:true,
/**
* label文字宽度
*/
itemLabelWidth:50,
itemWidth:null,
itemHeight:null,
//菜单根节点
//menu:null,
//logo图片
//logo
/**
*
* */
constructor: function MenuList(config) {
var _layout =config.layout||this.layout;
if(_layout == 'vbox')
{
this.itemStyle={"height":'50px',"width":'100%',"lineHeight": '30px'};
}
if(_layout == 'hbox')
{
this.itemStyle={"height":'100%',"lineHeight": '30px',"float":'left'};
}
this.apply(config);
if(this.logo)
{
this.label.content = this.logo;
this.label.visible = false;
}
},
/*
*
* */
loadData:function loadData(menu,callback)
{
var me = this;
var _menu = menu||me.menu;
if(Rsd.isArray(_menu))
{
_menu = Rsd.create('Rsd.data.Menu',{children:_menu});
}
if(_menu)
{
if(!(_menu instanceof Rsd.data.Menu)) {
console.error(_menu);
throw new Error('argumeng data is not Rsd.data.Menu object when it call Rsd.control.MenuList loadData.');
}
me.menu = _menu;
var _nodeList=[];
var _list = _menu.children||[];
for(var i in _list) {
var m = _list[i];
var _w = m.width || me.itemWidth || '100%';// 内部控件宽度
var _h = m.height || me.itemHeight || 'auto';// 内部控件高度
_nodeList.push({
xtype: 'svg',
id:m.id,
label: {width:m.labelWidth||me.itemLabelWidth||65, align:'left',content: m.text, position: 'right',space:0},
ctrlStyle:{height:null},
width: _w,
height: _h,
//margin: '10 5 10 15',
click:m.click||me.itemClick,
menu: m,
dsTagName: m.icon,
tip:m.tip||''
});
}
me.callParent(_nodeList,callback);
}
return this;
},
/*
*
* */
menuclick:function menuclick() {
alert('未设置ListMenu.itemClick属性。')
}
},function(type) {
var _menuGetter = function () {
return this.__menu;
};
var _menuSetter = function (value) {
this.__menu = value;
};
this.defineProperty(type, "menu", _menuGetter, _menuSetter, true);
});