UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

90 lines (71 loc) 2.23 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2008 Derrell Lipman License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Derrell Lipman (derrell) ************************************************************************ */ /** * Data Model for Progressive renderer. */ qx.Class.define("qx.ui.progressive.model.Default", { extend: qx.ui.progressive.model.Abstract, construct() { super(); this.__elements = []; }, members: { __elements: null, /** * Add elements to be progressively rendered. Each element must be an * object which contains at least two members: renderer (the renderer * name) and data. * * @param elems {Array} * An array of elements to be added to the element queue */ addElements(elems) { // Add the new elements to our elements queue. this.__elements = this.__elements.concat(elems); // Tell Progressive that data is available this.fireDataEvent("dataAvailable", this.__elements.length); }, /** * Add a single element to be progressively rendered. The element must * be an object which contains at least two members: renderer (the * renderer name) and data. * * @param elem {var} * An element to be added to the element queue */ addElement(elem) { // Add the new elements to our elements queue. this.__elements.push(elem); // Tell Progressive that data is available this.fireDataEvent("dataAvailable", this.__elements.length); }, // overridden getElementCount() { return this.__elements.length; }, // overridden getNextElement() { // Do we have any remaining elements? if (this.__elements.length > 0) { // Yup. Give 'em the first one and remove it from our queue. return { element: this.__elements.shift(), remaining: this.__elements.length }; } return null; } }, destruct() { this.__elements = null; } });