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="../../response/Response.ts" /> /// <reference path="../../Widget.ts" /> /// <reference path="../../../util/DomHelper.ts" /> /// <reference path="../../../util/StringUtils.ts" /> var econda; (function (econda) { var recengine; (function (recengine) { var widget; (function (widget_1) { var renderer; (function (renderer) { /** * Class to render widgets using a javascript function. * @class econda.recengine.widget.renderer.FunctionRenderer * @extends econda.base.BaseClass */ var FunctionRenderer = (function (_super) { __extends(FunctionRenderer, _super); function FunctionRenderer(cfg) { if (cfg === void 0) { cfg = null; } _super.call(this); /** * Widget instance containing response data and target element information * @private */ this.widget = null; /** * Function to call for rendering. * @cfg {Function} rendererFn * @accessor */ this.rendererFn = null; /** * Scope in which to call {@link #rendererFn} * @cfg {Object} scope * @accessor */ this.scope = null; if (cfg instanceof FunctionRenderer) { return cfg; } this.initConfig(cfg); } FunctionRenderer.prototype.getWidget = function () { return this.widget; }; FunctionRenderer.prototype.setWidget = function (widget) { this.widget = widget; }; FunctionRenderer.prototype.getRendererFn = function () { return this.rendererFn; }; FunctionRenderer.prototype.setRendererFn = function (fn) { this.rendererFn = fn; return this; }; FunctionRenderer.prototype.getScope = function () { return this.scope; }; FunctionRenderer.prototype.setScope = function (scope) { this.scope = scope; return this; }; FunctionRenderer.prototype.render = function (result, success) { if (!this.rendererFn) { throw "Widget FunctionRenderer requires a renderer function to be set. No renderer function found. Check widget.renderer.rendererFn."; } // provide target element var targetElement = econda.util.DomHelper.element(this.getWidget().getElement()); // setup helper functions var escapeHelper = econda.util.StringUtils; // do rendering var html = this.rendererFn.call(this.scope || this, result, targetElement, escapeHelper); success(html); }; return FunctionRenderer; }(econda.base.BaseClass)); renderer.FunctionRenderer = FunctionRenderer; // 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