org.zkoss.zul.ListitemRenderer Maven / Gradle / Ivy
/* ListitemRenderer.java
Purpose:
Description:
History:
Wed Aug 17 17:44:13 2005, Created by tomyeh
Copyright (C) 2005 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zul;
/**
* Identifies components that can be used as "rubber stamps" to paint
* the cells in a {@link Listbox}.
*
* If you need better control, your renderer can also implement
* {@link ListitemRendererExt}.
* If you need better control for generting {@link Listgroup} and
* {@link Listgroupfoot}, your renderer can also implement
* {@link ListgroupRendererExt}.
*
*
In addition, you could also
* implement {@link RendererCtrl}. For example, starts an transaction,
* and uses it to render all items for the same request.
*
* @author tomyeh
* @see ListModel
* @see Listbox
* @see ListitemRendererExt
* @see ListgroupRendererExt
*/
public interface ListitemRenderer {
/** Renders the data to the specified list item.
*
* @param item the listitem to render the result.
* Note: when this method is called, the listitem has no child
* at all, unless you don't return
* {@link ListitemRendererExt#DETACH_ON_RENDER} when
* {@link ListitemRendererExt#getControls} is called.
*
* You can invoke {@link Listitem#setLabel} to create
* {@link Listcell} implicitly, or create one or multiple
* {@link Listcell} explicitly.
*
* @param data that is returned from {@link ListModel#getElementAt}
* @param index the index of the data that is currently being rendered
*/
public void render(Listitem item, T data, int index) throws Exception;
}