@qooxdoo/framework
Version:
The JS Framework for Coders
81 lines (68 loc) • 2.57 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:
* Martin Wittemann (martinwittemann)
* Fabian Jakobs (fjakobs)
************************************************************************ */
/**
* Objects, which are used as delegates for a data binding controller may
* implement any of the methods described in this interface. The delegate does
* not need implement all of the methods of this interface. If a method is not
* implemented the controller provides a default implementation.
*
* Note: This interface is meant to document the delegate but should not be
* listed in the <code>implement</code> key of a class unless all methods are
* really implemented.
*/
qx.Interface.define("qx.data.controller.IControllerDelegate",
{
members :
{
/**
* Gives the user the opportunity to set individual styles and properties
* on the by the controller created widgets.
*
* @param item {var} Item to modify.
*/
configureItem : function(item) {},
/**
* Filter checks the current data and returns a boolean if the data should
* appear in the filtered data set or not.
*
* The filter currently works only with the {@link qx.data.controller.List}
* controller!
*
* @param data {var} The data which will be checked.
* @return {Boolean} True, if the data passes the filter, false otherwise.
*/
filter : function(data) {},
/**
* Creates an item which will be added to the target as child. Be sure to
* implement the {@link #bindItem} function as well to get the needed
* properties bound.
*
* @return {qx.ui.core.Widget} A new created widget.
*/
createItem : function() {},
/**
* Sets up the binding for the given item and index.
*
* For every property you want to bind, use
* {@link qx.data.controller.List#bindProperty} like this:
* <code>
* controller.bindProperty("path.in.the.model", "label", options, item, id);
* </code>
*
* @param controller {var} The currently used controller.
* @param item {qx.ui.core.Widget} The created and used item.
* @param id {var} The id for the binding.
*/
bindItem : function(controller, item, id) {}
}
});