@qooxdoo/framework
Version:
The JS Framework for Coders
87 lines (75 loc) • 2.98 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2009 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Fabian Jakobs (fjakobs)
************************************************************************ */
/**
* EXPERIMENTAL!
*
* A layer is responsible to render one aspect of a virtual pane. The pane tells
* each layer to render/update a specific window of the virtual grid.
*/
qx.Interface.define("qx.ui.virtual.core.ILayer",
{
members :
{
/**
* Do a complete update of the layer. All cached data should be discarded.
* This method is called e.g. after changes to the grid geometry
* (row/column sizes, row/column count, ...).
*
* Note: This method can only be called after the widgets initial appear
* event has been fired because it may work with the widget's DOM elements.
*
* @param firstRow {Integer} Index of the first row to display.
* @param firstColumn {Integer} Index of the first column to display.
* @param rowSizes {Integer[]} Array of heights for each row to display.
* @param columnSizes {Integer[]} Array of widths for each column to display.
*/
fullUpdate : function(
firstRow, firstColumn,
rowSizes, columnSizes
) {
this.assertArgumentsCount(arguments, 6, 6);
this.assertPositiveInteger(firstRow);
this.assertPositiveInteger(firstColumn);
this.assertArray(rowSizes);
this.assertArray(columnSizes);
},
/**
* Update the layer to display a different window of the virtual grid.
* This method is called if the pane is scrolled, resized or cells
* are prefetched. The implementation can assume that no other grid
* data has been changed since the last "fullUpdate" of "updateLayerWindow"
* call.
*
* Note: This method can only be called after the widgets initial appear
* event has been fired because it may work with the widget's DOM elements.
*
* @param firstRow {Integer} Index of the first row to display.
* @param firstColumn {Integer} Index of the first column to display.
* @param rowSizes {Integer[]} Array of heights for each row to display.
* @param columnSizes {Integer[]} Array of widths for each column to display.
*/
updateLayerWindow : function(
firstRow, firstColumn,
rowSizes, columnSizes
) {
this.assertArgumentsCount(arguments, 6, 6);
this.assertPositiveInteger(firstRow);
this.assertPositiveInteger(firstColumn);
this.assertArray(rowSizes);
this.assertArray(columnSizes);
},
/**
* Update the layer to reflect changes in the data the layer displays.
*/
updateLayerData : function() {}
}
});