egroupware_official/etemplate/js/et2_dataview_interfaces.js

82 lines
1.7 KiB
JavaScript

/**
* eGroupWare eTemplate2 - Contains the dataview base object.
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @subpackage dataview
* @link http://www.egroupware.org
* @author Andreas Stöckel
* @copyright Stylite 2011
* @version $Id$
*/
"use strict"
/*egw:uses
et2_core_inheritance;
*/
var et2_dataview_IInvalidatable = new Interface({
invalidate: function() {}
});
var et2_dataview_IDataRow = new Interface({
updateData: function(_data) {}
});
var et2_dataview_IViewRange = new Interface({
setViewRange: function(_range) {}
});
/**
* Interface which objects have to implement, that want to act as low level
* datasource.
*/
var et2_IRowFetcher = new Interface({
/**
* @param _fetchList is an array consisting of objects whith the entries
* "startIdx" and "count"
* @param _callback is the callback which is called when the data is ready
* (may be immediately or deferred). The callback has the following
* signature:
* function (_rows)
* where _rows is an associative array which contains the data for that row.
* @param _context is the context in which the callback should run.
*/
getRows: function(_fetchList, _callback, _context) {}
});
/**
* Interface the data provider has to implement
*/
var et2_IDataProvider = new Interface({
/**
* Returns the total count of grid elements
*/
getCount: function() {},
/**
* Registers the given dataRow for the given index. Calls _dataRow.updateData
* as soon as data is available for that row.
*/
registerDataRow: function(_dataRow, _idx) {},
/**
* Stops calling _dataRow.updateData for the dataRow registered for the given
* index.
*/
unregisterDataRow: function(_idx) {}
});