var NodeBuilder = require('./node-builder'); module.exports = new Class({ Extends: NodeBuilder ,Properties: { /** * Main HTML node that represents the widget */ node: { type: Object ,get: function() { this.renderBase(); return this._node; } }, /** * CSS classes to be appendend to the node classes. */ class: { type: String ,set: function(x) { this._cssClass = x; this._refreshClass(); } ,get: function() { return this._node.className; } }, /** * Title of the element. */ title: { type: String ,set: function(x) { this.node.title = x; } ,get: function() { return this.node.title; } } } ,_node: null ,initialize: function(props) { this.doc = document; this.renderBase(); this.parent(props); } ,createRoot: function(tagName) { return this._node = this.createElement(tagName); } ,renderBase: function() { if (this._node) return; this.render(); this._refreshClass(); } ,_refreshClass: function() { if (this._node && this._cssClass) this._node.className = this._cssClass +' '+ this._node.className; } ,remove: function() { Vn.Node.remove(this._node); } });