hedera-web/js/htk/widget.js

74 lines
1.0 KiB
JavaScript
Raw Normal View History

2016-09-26 09:28:47 +00:00
2016-10-16 14:16:08 +00:00
var NodeBuilder = require ('./node-builder');
2016-09-26 09:28:47 +00:00
module.exports = new Class
({
2016-10-16 14:16:08 +00:00
Extends: NodeBuilder
2015-03-06 23:33:54 +00:00
,Properties:
{
2016-10-16 14:16:08 +00:00
/**
* Main HTML node that represents the widget
2016-12-20 09:32:17 +00:00
*/
2016-10-14 10:58:35 +00:00
node:
{
type: Object
,get: function ()
{
2016-10-16 14:16:08 +00:00
this.renderBase ();
2016-10-14 10:58:35 +00:00
return this._node;
}
},
2016-10-16 14:16:08 +00:00
/**
* CSS classes to be appendend to the node classes.
2016-12-20 09:32:17 +00:00
*/
2015-03-06 23:33:54 +00:00
class:
{
type: String
,set: function (x)
{
2016-05-02 13:05:49 +00:00
this._cssClass = x;
this._refreshClass ();
2015-03-06 23:33:54 +00:00
}
,get: function ()
{
2016-10-14 10:58:35 +00:00
return this._node.className;
2015-03-06 23:33:54 +00:00
}
}
}
2016-10-14 10:58:35 +00:00
,_node: null
2015-03-06 23:33:54 +00:00
2016-10-16 14:16:08 +00:00
,initialize: function (props)
2015-03-06 23:33:54 +00:00
{
2016-10-16 14:16:08 +00:00
this.doc = document;
this.renderBase ();
this.parent (props);
2016-09-26 09:28:47 +00:00
}
2016-10-16 14:16:08 +00:00
,createRoot: function (tagName)
2016-09-26 09:28:47 +00:00
{
2016-10-16 14:16:08 +00:00
return this._node = this.createElement (tagName);
2016-09-26 09:28:47 +00:00
}
2016-10-16 14:16:08 +00:00
,renderBase: function ()
2016-09-26 09:28:47 +00:00
{
2016-10-16 14:16:08 +00:00
if (this._node)
return;
2016-05-02 13:05:49 +00:00
2016-10-16 14:16:08 +00:00
this.render ();
this._refreshClass ();
}
2016-05-02 13:05:49 +00:00
2016-05-06 12:09:15 +00:00
,_refreshClass: function ()
2016-05-02 13:05:49 +00:00
{
2016-10-14 10:58:35 +00:00
if (this._node && this._cssClass)
this._node.className = this._cssClass +' '+ this._node.className;
2016-05-02 13:05:49 +00:00
}
2015-03-15 12:44:57 +00:00
,remove: function ()
{
2016-10-14 10:58:35 +00:00
Vn.Node.remove (this._node);
2015-03-15 12:44:57 +00:00
}
});
2016-09-26 09:28:47 +00:00