/* ListModel.java
Purpose:
Description:
History:
Wed Aug 17 17:44:08 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;
import org.zkoss.zul.event.ListDataListener;
import org.zkoss.zul.ext.Selectable;
/**
* This interface defines the methods that components like {@link Listbox}
* and {@link Grid} use to get the content of items.
*
* <p>If the list model is used with sortable listbox or grid,
* the developer must also implement {@link org.zkoss.zul.ext.Sortable}.
*
* <p>To use with {@link Listbox} and other components that
* supports the selection, {@link Selectable} must be implemented too.
*
* <p>For more information, please refer to
* <a href="http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/MVC/Model/List_Model">ZK Developer's Reference: List Model</a>
*
* @author tomyeh
* @see Grid
* @see Listbox
* @see ListitemRenderer
* @see org.zkoss.zul.ext.Sortable
* @see Selectable
*/
public interface ListModel<E> {
/** Returns the value at the specified index.
*/
public E getElementAt(int index);
/** Returns the length of the list.
*/
public int getSize();
/** Adds a listener to the list that's notified each time a change
* to the data model occurs.
*/
public void addListDataListener(ListDataListener l);
/** Removes a listener from the list that's notified each time
* a change to the data model occurs.
*/
public void removeListDataListener(ListDataListener l);
}