Package org.zkoss.zul

Class ListModelArray<E>

java.lang.Object
org.zkoss.zul.AbstractListModel<E>
org.zkoss.zul.ListModelArray<E>
All Implemented Interfaces:
Serializable, Pageable, Selectable<E>, Sortable<E>, ListModel<E>, PageableModel

public class ListModelArray<E> extends AbstractListModel<E> implements Sortable<E>, Serializable

This is the ListModel as an Object array to be used with Listbox. Change the contents of this model as an Object array would cause the associated Listbox to change accordingly.

The class implements the Selectable interface, updating the selection status after sorted. (since 6.0.0)

Author:
Henri Chen
See Also:
  • Field Details

    • _array

      protected Object[] _array
  • Constructor Details

    • ListModelArray

      public ListModelArray(E[] array, boolean live)
      Constructor
      Parameters:
      array - the array to represent
      live - whether to have a 'live' ListModel on top of the specified array. If false, the content of the specified array is copied. If true, this object is a 'facade' of the specified array, i.e., when you add or remove items from this ListModelArray, the inner "live" array would be changed accordingly. However, it is not a good idea to modify array if it is passed to this method with live is true, since Listbox is not smart enough to handle it. Instead, modify it thru this object.
      Since:
      2.4.0
    • ListModelArray

      public ListModelArray(E[] array)
      Constructor. It makes a copy of the specified array (i.e., not live).

      Notice that if the data is static or not shared, it is better to use ListModelArray(array, true) instead, since making a copy is slower.

    • ListModelArray

      public ListModelArray(int size)
      Constructor.
      Parameters:
      size - the array size.
    • ListModelArray

      public ListModelArray(List<? extends E> list)
      Constructor. It mades a copy of the specified list (i.e., not live).
      Since:
      2.4.1
  • Method Details

    • get

      public E get(int index)
      Get the value of this ListModelArray at specified index.
      Parameters:
      index - the array index to be get value.
    • set

      public void set(int index, E value)
      Change content of the Array at specified index.
      Parameters:
      index - the array index to be set the new value.
    • getInnerArray

      public Object[] getInnerArray()
      Get the inner real Object[].
      Since:
      2.4.0
    • indexOf

      public int indexOf(Object elm)
      Returns the index of the specified element.
    • notifyChange

      public boolean notifyChange(E element)
      Notifies a change of the same element to trigger an event of ListDataEvent.CONTENTS_CHANGED.
      Parameters:
      element -
      Returns:
      true if the element exists
      Since:
      8.0.0
    • getSize

      public int getSize()
      Description copied from interface: ListModel
      Returns the length of the list.
      Specified by:
      getSize in interface ListModel<E>
    • getElementAt

      public E getElementAt(int j)
      Description copied from interface: ListModel
      Returns the value at the specified index.
      Specified by:
      getElementAt in interface ListModel<E>
    • sort

      public void sort(Comparator<E> cmpr, boolean ascending)
      Sorts the data.
      Specified by:
      sort in interface Sortable<E>
      Parameters:
      cmpr - the comparator.
      ascending - whether to sort in the ascending order. It is ignored since this implementation uses cmpr to compare.
    • sort

      public void sort()
      Description copied from interface: Sortable
      Sort the data model by default or assigned comparator. Notice that the default implementation does nothing, the model which implements Sortable need to implement this method.
      Specified by:
      sort in interface Sortable<E>
      See Also:
    • getSortDirection

      public String getSortDirection(Comparator<E> cmpr)
      Description copied from interface: Sortable
      Returns the sort direction of this model for the given comparator. It must be one of "ascending", "descending" and "natural".

      Default: "natural".

      Specified by:
      getSortDirection in interface Sortable<E>
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class AbstractListModel<E>
    • fireSelectionEvent

      protected void fireSelectionEvent(E e)
      Description copied from class: AbstractListModel
      Selectable's implementor use only.

      Fires a selection event for component to scroll into view. The override subclass must put the index0 of AbstractListModel.fireEvent(int, int, int) as the view index to scroll. By default, the value -1 is assumed which means no scroll into view.

      The method is invoked when both methods are invoked. AbstractListModel.addToSelection(Object) and AbstractListModel.setSelection(Collection).

      Overrides:
      fireSelectionEvent in class AbstractListModel<E>
      Parameters:
      e - selected object.