Just commiting current state of my work on the 'dataview' (grid), does NOT do anything usefull right now

This commit is contained in:
Andreas Stöckel
2011-08-29 15:04:10 +00:00
parent 6a2d5d8b36
commit 97418ebbbb
8 changed files with 1349 additions and 1 deletions

View File

@ -0,0 +1,90 @@
/**
* eGroupWare eTemplate2 - Class which contains a factory method for rows
*
* @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$
*/
/*egw:uses
jquery.jquery;
et2_core_inheritance;
*/
/**
* The row provider contains prototypes (full clonable dom-trees)
* for all registered row types.
*/
var et2_dataview_rowProvider = Class.extend({
init: function(_gridId, _columnIds) {
// Copy the given parameters
this._dataProvider = _dataProvider;
this._gridId = _gridId;
this._columnIds = _columnIds;
this._prototypes = {};
// Create the default row "prototypes"
this._createFullRowPrototype();
this._createDefaultPrototype();
},
/**
* Returns a clone of the prototype with the given name. If the generator
* callback function is given, this function is called if the prototype
* does not yet registered.
*/
getPrototype: function(_name, _generator, _context) {
if (typeof this._prototypes[_name] == "undefined")
{
if (typeof _generator != "undefined")
{
this._prototypes[_name] = _generator.call(_context, _gridId,
_columnIds);
}
else
{
return null;
}
}
return this._prototypes[_name].clone();
},
/* ---- PRIVATE FUNCTIONS ---- */
_createFullRowPrototype: function() {
var tr = $j(document.createElement("tr"));
var td = $j(document.createElement("td"))
.attr("span", this._columnIds.length)
.appendTo(tr);
var div = $j(document.createElement("div"))
.addClass(this._gridId + "_div_fullRow")
.appendTo(td);
this._prototypes["fullRow"] = tr;
},
_createDefaultPrototype: function() {
var tr = $j(document.createElement("tr"));
// Append a td for each column
for (var i = 0; i < this._columnIds.length; i++)
{
var td = $j(document.createElement("td"))
.addClass(this._gridId + "_td_" + this._columnIds[i])
.appendTo(tr);
var div = $j(document.createElement("div"))
.addClass(this._gridId + "_div_" + this._columnIds[i])
.appendTo(td);
}
this._prototypes["default"] = tr;
}
});