[imp] some more architecture improvements

bzr revid: nicolas.vanhoren@openerp.com-20111109110216-p7e2xnckhbs8ojqk
This commit is contained in:
niv-openerp
2011-11-09 12:02:16 +01:00
parent d07f77f62b
commit 13e361920f
+12 -3
View File
@@ -874,8 +874,7 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
}, target);
},
_render_and_insert: function(insertion, target) {
var rendered = this.render();
this.$element = $(rendered);
this.render_element();
if (target instanceof openerp.web.Widget)
target = target.$element;
insertion(target);
@@ -883,6 +882,14 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
return this.start();
},
on_inserted: function(element, widget) {},
/**
* Renders the element and insert the result of the render() method in this.$element.
*/
render_element: function() {
var rendered = this.render();
this.$element = $(rendered);
return this;
},
/**
* Renders the widget using QWeb, `this.template` must be defined.
* The context given to QWeb contains the "widget" key that references `this`.
@@ -890,7 +897,9 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
* @param {Object} additional Additional context arguments to pass to the template.
*/
render: function (additional) {
return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {}));
if (this.template)
return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {}));
return $("<div></div>").append(document.createElement(this.tagName)).html();
},
/**
* Method called after rendering. Mostly used to bind actions, perform asynchronous