hedera-web/js/htk/column/button.js

79 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-09-26 09:28:47 +00:00
module.exports = new Class({
Extends: Htk.Column,
Tag: 'htk-column-button',
Properties: {
image: {
type: String
,value: null
},
icon: {
2016-09-26 09:28:47 +00:00
type: String
,set: function(x)
2016-09-26 09:28:47 +00:00
{
this._icon = x;
this.image = 'image/icon/light/'+ x +'.svg';
2016-09-26 09:28:47 +00:00
}
,get: function()
2016-09-26 09:28:47 +00:00
{
return this._icon;
}
},
tip: {
type: String,
value: null
},
disabled: {
type: Boolean,
value: false
},
href: {
type: String,
value: null
},
target: {
type: String,
value: ''
}
},
initialize: function(props) {
this._cssClass = 'cell-button';
this.parent(props);
},
render: function(tr) {
var td = this.parent(tr);
var button;
if (this.href == null) {
button = this.createElement('button');
button.addEventListener('click',
this.buttonClicked.bind(this, this.value, tr, button));
} else {
button = this.createElement('a');
button.href = this.href;
button.target = this.target;
}
button.disabled = this.disabled;
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;
},
buttonClicked: function(value, tr, button) {
this.signalEmit('clicked', value, tr.rowIndex - 1, button);
}
});