@qooxdoo/framework
Version:
The JS Framework for Coders
87 lines (67 loc) • 2.09 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2008 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:
* Sebastian Werner (wpbasti)
************************************************************************ */
/**
* This is the root element for a set of {@link qx.html.Element}s.
*
* To make other elements visible these elements must be inserted
* into an root element at any level.
*
* A root element uses an existing DOM element where is assumed that
* this element is always visible. In the easiest case, the root element
* is identical to the document's body.
*/
qx.Class.define("qx.html.Root",
{
extend : qx.html.Element,
/*
*****************************************************************************
CONSTRUCTOR
*****************************************************************************
*/
/**
* Creates a root element
*
* @param elem {Element?null} DOM element to use
*/
construct : function(elem)
{
this.base(arguments);
if (elem != null) {
this.useElement(elem);
}
},
/*
*****************************************************************************
MEMBERS
*****************************************************************************
*/
members :
{
/**
* Sets the element to an already existing node. It will be
* assumed that this DOM element is already visible e.g.
* like a normal displayed element in the document's body.
*
* @param elem {Element} the dom element to set
* @throws {Error} if the element is assigned again
*/
useElement : function(elem)
{
// Base call
this.base(arguments, elem);
// Mark as root
this.setRoot(true);
// Register for synchronization
qx.html.Element._modified[this.$$hash] = this;
}
}
});