var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; /// <reference path="IRenderer.ts" /> /// <reference path="../../../base/BaseClass.ts" /> /// <reference path="../../../net/Uri.ts" /> /// <reference path="../../../templating/Template.ts" /> var econda; (function (econda) { var recengine; (function (recengine) { var widget; (function (widget_1) { var renderer; (function (renderer) { var Uri = econda.net.Uri; /** * Renderer for template based rendering. Do not use this class directly, * see {@link econda.recengine.Widget} for details. * * var widget = new econda.recengine.Widget({ * [...] * element: '#id-of-element', * renderer: { * type: 'template', * uri: '/path/to/template.html' * } * }); * widget.render(); * * @class econda.recengine.widget.renderer.TemplateRenderer * @extends econda.base.BaseClass */ var TemplateRenderer = (function (_super) { __extends(TemplateRenderer, _super); function TemplateRenderer(cfg) { _super.call(this); /** * Widget reference * @cfg {econda.recengine.Widget} widget * @private * @accessor */ this._widget = null; /** * Absolute or relative uri of template file * @cfg {econda.net.Uri/String} uri * @accessor */ this._uri = null; /** * Template source code * @cfg {String} template * @accessor */ this._template = null; if (cfg instanceof TemplateRenderer) { return cfg; } this.initConfig(cfg); } TemplateRenderer.prototype.setWidget = function (widget) { this._widget = widget; }; TemplateRenderer.prototype.setUri = function (uri) { this._uri = (uri == null) ? null : new Uri(uri); return this; }; TemplateRenderer.prototype.getUri = function () { return this._uri; }; TemplateRenderer.prototype.getTemplate = function () { return this._template; }; TemplateRenderer.prototype.setTemplate = function (html) { this._template = html; return this; }; TemplateRenderer.prototype.getElement = function () { return this._element; }; TemplateRenderer.prototype.setElement = function (element) { this._element = element; return this; }; /** * Render response using specified template. * @method */ TemplateRenderer.prototype.render = function (response, success) { var _this = this; var uri = this.getUri(); var template = this.getTemplate(); var element = this.getElement(); var t = new econda.templating.Template({ uri: uri, template: template, element: element }); // execute errFn if exception in Template try { t.render(response, success, function (err) { var errorFn = _this._widget.getError(); if (errorFn) { errorFn(); } }); } catch (exception) { var errorFn = this._widget.getError(); if (errorFn) { errorFn(); } } }; return TemplateRenderer; }(econda.base.BaseClass)); renderer.TemplateRenderer = TemplateRenderer; // end of class })(renderer = widget_1.renderer || (widget_1.renderer = {})); })(widget = recengine.widget || (recengine.widget = {})); })(recengine = econda.recengine || (econda.recengine = {})); })(econda || (econda = {})); // end of module