diff --git a/examples/ThemeProvider.html b/examples/ThemeProvider.html new file mode 100644 index 000000000..7848ee406 --- /dev/null +++ b/examples/ThemeProvider.html @@ -0,0 +1,99 @@ + + + + + + + + + + +
+ + + diff --git a/src/base/context.js b/src/base/context.js index 67ef704c0..47fdd6c64 100644 --- a/src/base/context.js +++ b/src/base/context.js @@ -15,31 +15,33 @@ BI.Context = BI.inherit(BI.Widget, { render: function () { var self = this, o = this.options; - this.context = BI.createWidget(o.items[0] || o.el, { + if (o.context) { + this.context = BI.useContext(o.context); + } + this.widget = BI.createWidget((o.items[0] || o.el)(this.context), { element: this, }); - this.context.on(BI.Controller.EVENT_CHANGE, function () { + this.widget.on(BI.Controller.EVENT_CHANGE, function () { self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); }); }, - created: function () { + __initWatch: function () { + BI.Context.superclass.__initWatch.call(this); var o = this.options; - if (o.context) { - BI.watch(o.context, o.watch); - } + BI.watch(this.context, o.context, o.watch); }, setValue: function (v) { - this.context.setValue(v); + this.widget.setValue(v); }, getValue: function () { - return this.context.getValue(); + return this.widget.getValue(); }, populate: function () { - this.context.populate.apply(this, arguments); + this.widget.populate.apply(this, arguments); }, }); BI.shortcut("bi.context", BI.Context);