67 lines
1.0 KiB
JavaScript
67 lines
1.0 KiB
JavaScript
|
|
module.exports = new Class
|
|
({
|
|
Extends: Htk.Column
|
|
,Tag: 'htk-column-button'
|
|
,Properties:
|
|
{
|
|
image:
|
|
{
|
|
type: String
|
|
,value: null
|
|
},
|
|
icon:
|
|
{
|
|
type: String
|
|
,set: function (x)
|
|
{
|
|
this._icon = x;
|
|
this.image = 'image/icon/light/'+ x + '.svg';
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._icon;
|
|
}
|
|
},
|
|
tip:
|
|
{
|
|
type: String
|
|
,value: null
|
|
}
|
|
}
|
|
|
|
,initialize: function (props)
|
|
{
|
|
this._cssClass = 'cell-button';
|
|
this.parent (props);
|
|
}
|
|
|
|
,render: function (tr)
|
|
{
|
|
var td = this.parent (tr);
|
|
|
|
var button = this.createElement ('button');
|
|
button.addEventListener ('click',
|
|
this._onClick.bind (this, this.value, tr, button));
|
|
td.appendChild (button);
|
|
|
|
var img = this.createElement ('img');
|
|
img.src = this.image;
|
|
button.appendChild (img);
|
|
|
|
if (this.tip)
|
|
{
|
|
button.title = _(this.tip);
|
|
img.title = _(this.tip);
|
|
}
|
|
|
|
return td;
|
|
}
|
|
|
|
,_onClick: function (value, tr, button, event)
|
|
{
|
|
event.preventDefault ();
|
|
this.signalEmit ('clicked', value, tr.rowIndex - 1, button, event);
|
|
}
|
|
});
|