43 lines
733 B
JavaScript
43 lines
733 B
JavaScript
|
|
const Widget = require('./widget');
|
|
|
|
module.exports = new Class({
|
|
Extends: Widget
|
|
|
|
,scope: null
|
|
|
|
,builderInit: function(path) {
|
|
const builder = new Vn.Builder();
|
|
builder.compileFile(path);
|
|
this.builderResultInit(builder);
|
|
}
|
|
|
|
,builderInitString: function(xmlString) {
|
|
const builder = new Vn.Builder();
|
|
builder.compileString(xmlString);
|
|
this.builderResultInit(builder);
|
|
}
|
|
|
|
,builderResultInit: function(builder) {
|
|
const scope = this.scope = builder.load(this.doc, this);
|
|
scope.link();
|
|
|
|
this._node = scope.$('main');
|
|
}
|
|
|
|
,$: function(id) {
|
|
if (this.scope)
|
|
return this.scope.getById(id);
|
|
|
|
return null;
|
|
}
|
|
|
|
,_destroy: function() {
|
|
if (this.scope)
|
|
this.scope.unref();
|
|
|
|
this.parent();
|
|
}
|
|
});
|
|
|