forked from extern/egroupware
95 lines
1.9 KiB
JavaScript
95 lines
1.9 KiB
JavaScript
|
/**
|
||
|
* eGroupWare eTemplate2 - Class which contains the "row" base class
|
||
|
*
|
||
|
* @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_dataview_interfaces;
|
||
|
*/
|
||
|
|
||
|
var et2_dataview_container = Class.extend({
|
||
|
|
||
|
init: function(_data, _invalidationElem) {
|
||
|
this._dataProvider = _data;
|
||
|
this._invalidationElem = _invalidationElem;
|
||
|
|
||
|
this._node = null;
|
||
|
},
|
||
|
|
||
|
setJNode: function(_node) {
|
||
|
// Replace the old node with the new one
|
||
|
if (this._node[0].parent)
|
||
|
{
|
||
|
this._node.replaceWith(_node);
|
||
|
}
|
||
|
|
||
|
this._node = _node;
|
||
|
},
|
||
|
|
||
|
getJNode: function() {
|
||
|
return this._node;
|
||
|
},
|
||
|
|
||
|
invalidate: function() {
|
||
|
this._invalidationElem.invalidate();
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Returns the height of the container in pixels and zero if the element is not
|
||
|
* visible. The height is clamped to positive values.
|
||
|
* The browser switch is placed at this position as the getHeight function is one
|
||
|
* of the mostly called functions in the whole grid code and should stay
|
||
|
* quite fast.
|
||
|
*/
|
||
|
if ($j.browser.mozilla)
|
||
|
{
|
||
|
et2_dataview_container.prototype.getHeight = function()
|
||
|
{
|
||
|
if (this.node)
|
||
|
{
|
||
|
// Firefox sometimes provides fractional pixel values - we are
|
||
|
// forced to use those - we can obtain the fractional pixel height
|
||
|
// by using the window.getComputedStyle function
|
||
|
var compStyle = getComputedStyle(this._node, null);
|
||
|
if (compStyle)
|
||
|
{
|
||
|
var styleHeightStr = compStyle.getPropertyValue("height");
|
||
|
var height = parseFloat(styleHeightStr.substr(0, styleHeightStr.length - 2));
|
||
|
|
||
|
if (isNaN(height) || height < 1)
|
||
|
{
|
||
|
height = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return height;
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
et2_dataview_container.prototype.getHeight = function()
|
||
|
{
|
||
|
if (this.node)
|
||
|
{
|
||
|
return this._node.offsetHeight;
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
|