org.zkoss.zul
Class AbstractListModel<E>

java.lang.Object
  extended by org.zkoss.zul.AbstractListModel<E>
All Implemented Interfaces:
java.io.Serializable, Selectable<E>, ListModel<E>
Direct Known Subclasses:
GroupsListModel, ListModelArray, ListModelList, ListModelMap, ListModelSet, SimpleListModel

public abstract class AbstractListModel<E>
extends java.lang.Object
implements ListModel<E>, Selectable<E>, java.io.Serializable

A skeletal implementation for ListModel and Selectable

Author:
tomyeh
See Also:
Serialized Form

Field Summary
protected  java.util.Set<E> _selection
          The current selection.
 
Constructor Summary
protected AbstractListModel()
           
 
Method Summary
 void addListDataListener(ListDataListener l)
          Adds a listener to the list that's notified each time a change to the data model occurs.
 boolean addToSelection(E obj)
          Add the specified object into selection.
 void clearSelection()
          Change the selection to the empty set.
 java.lang.Object clone()
           
protected  void fireEvent(int type, int index0, int index1)
          Fires a ListDataEvent for all registered listener (thru addListDataListener(org.zkoss.zul.event.ListDataListener).
protected  void fireSelectionEvent(E e)
          Selectable's implementor use only.
 java.util.Set<E> getSelection()
          Returns the current selection.
 boolean isMultiple()
          Returns whether the current selection mode is multiple.
 boolean isSelected(java.lang.Object obj)
          Returns whether an object is selected.
 boolean isSelectionEmpty()
          Returns true if the selection is currently empty.
protected  java.util.Set<E> newEmptySelection()
          Instantiation an empty set of the section.
protected  void readSelection(java.io.ObjectInputStream s)
          Reads back _selection.
protected  void removeAllSelection(java.util.Collection<?> c)
          Removes the selection of the given collection.
 boolean removeFromSelection(java.lang.Object obj)
          Remove the specified object from selection.
 void removeListDataListener(ListDataListener l)
          Removes a listener from the list that's notified each time a change to the data model occurs.
protected  void retainAllSelection(java.util.Collection<?> c)
          Removes the selection that doesn't belong to the given collection.
 void setMultiple(boolean multiple)
          Sets the selection mode to be multiple.
 void setSelection(java.util.Collection<? extends E> selection)
          Replace the current selection with the given set.
protected  void writeSelection(java.io.ObjectOutputStream s)
          Writes _selection.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.zkoss.zul.ListModel
getElementAt, getSize
 

Field Detail

_selection

protected transient java.util.Set<E> _selection
The current selection.

Constructor Detail

AbstractListModel

protected AbstractListModel()
Method Detail

fireEvent

protected void fireEvent(int type,
                         int index0,
                         int index1)
Fires a ListDataEvent for all registered listener (thru addListDataListener(org.zkoss.zul.event.ListDataListener).

Note: you can invoke this method only in an event listener.


addListDataListener

public void addListDataListener(ListDataListener l)
Adds a listener to the list that's notified each time a change to the data model occurs.

Specified by:
addListDataListener in interface ListModel<E>

removeListDataListener

public void removeListDataListener(ListDataListener l)
Removes a listener from the list that's notified each time a change to the data model occurs.

Specified by:
removeListDataListener in interface ListModel<E>

getSelection

public java.util.Set<E> getSelection()
Returns the current selection. It is readonly. Don't modify it directly

Specified by:
getSelection in interface Selectable<E>
Returns:
the current selection.

setSelection

public void setSelection(java.util.Collection<? extends E> selection)
Replace the current selection with the given set.

If this represents a change to the current selection then notify each ListDataListener, including UI.

Specified by:
setSelection in interface Selectable<E>

isSelected

public boolean isSelected(java.lang.Object obj)
Returns whether an object is selected.

Specified by:
isSelected in interface Selectable<E>

isSelectionEmpty

public boolean isSelectionEmpty()
Returns true if the selection is currently empty.

Specified by:
isSelectionEmpty in interface Selectable<E>

addToSelection

public boolean addToSelection(E obj)
Add the specified object into selection.

If this represents a change to the current selection then notify each ListDataListener, including UI.

Specified by:
addToSelection in interface Selectable<E>
Parameters:
obj - the object to be as selection.
Returns:
true if it is added successfully; fasle if obj is not part of the data, or was already selected.

removeFromSelection

public boolean removeFromSelection(java.lang.Object obj)
Remove the specified object from selection.

If this represents a change to the current selection then notify each ListDataListener, including UI.

Specified by:
removeFromSelection in interface Selectable<E>
Parameters:
obj - the object to be remove from selection.
Returns:
whether it is removed successfully

clearSelection

public void clearSelection()
Change the selection to the empty set.

If this represents a change to the current selection then notify each ListDataListener, including UI.

Specified by:
clearSelection in interface Selectable<E>

fireSelectionEvent

protected void fireSelectionEvent(E e)
Selectable's implementor use only.

Fires a selection event for component to scroll into view. The override subclass must put the index0 of 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. addToSelection(Object) and setSelection(Collection).

Parameters:
e - selected object.

removeAllSelection

protected void removeAllSelection(java.util.Collection<?> c)
Removes the selection of the given collection.


retainAllSelection

protected void retainAllSelection(java.util.Collection<?> c)
Removes the selection that doesn't belong to the given collection.


isMultiple

public boolean isMultiple()
Returns whether the current selection mode is multiple.

Specified by:
isMultiple in interface Selectable<E>
See Also:
Selectable.setMultiple(boolean)

setMultiple

public void setMultiple(boolean multiple)
Sets the selection mode to be multiple.

Specified by:
setMultiple in interface Selectable<E>

newEmptySelection

protected java.util.Set<E> newEmptySelection()
Instantiation an empty set of the section. It is used to initialize _selection.

By default, it instantiates an instance of LinkedHashSet. The deriving class might override to instantiate a different class.


writeSelection

protected void writeSelection(java.io.ObjectOutputStream s)
                       throws java.io.IOException
Writes _selection.

Default: write it directly. Override it if E is not serializable.

Throws:
java.io.IOException

readSelection

protected void readSelection(java.io.ObjectInputStream s)
                      throws java.io.IOException,
                             java.lang.ClassNotFoundException
Reads back _selection.

Default: write it directly. Override it if E is not serializable.

Throws:
java.io.IOException
java.lang.ClassNotFoundException

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object


Copyright © 2005-2011 Potix Corporation. All Rights Reserved. SourceForge.net Logo