Package org.zkoss.zul.impl
Class ListboxDataLoader
- java.lang.Object
-
- org.zkoss.zul.impl.ListboxDataLoader
-
- All Implemented Interfaces:
Cropper
,DataLoader
- Direct Known Subclasses:
LiveListboxDataLoader
public class ListboxDataLoader extends java.lang.Object implements DataLoader, Cropper
GenericListbox
data loader.- Since:
- 5.0.0
- Author:
- henrichen
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ListboxDataLoader.DeferredRedraw
-
Constructor Summary
Constructors Constructor Description ListboxDataLoader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doGroupsDataChange(GroupsDataEvent event)
updates the status of the changed group.void
doListDataChange(ListDataEvent event)
Handle event when ListDataEvent is fired from owner component.java.util.Set<? extends Component>
getAvailableAtClient()
Retrieves the children available at client.protected java.util.Set<? extends Component>
getAvailableAtClient(boolean itemOnly)
Retrieves the children available at client with more control.protected java.util.Set<? extends Component>
getAvailableAtClient(int offset, int limit, boolean itemOnly)
Retrieves the children available at the client within the given range.Component
getCropOwner()
Returns the owner of the cropping scope.int
getLimit()
Returns the required visible limit size of the current loaded data chunk to be shown on the screen.int
getOffset()
Returns the requested visible offset of the current loaded data chunk.Component
getOwner()
Returns the associated owner component of this DataLoader.java.lang.Object
getRealRenderer()
Return the renderer to do rendering.int
getTotalSize()
Returns the total size of the data.void
init(Component owner, int offset, int limit)
Callback from the owner component and give a chance to initialize things.protected boolean
inPagingMold()
protected boolean
inSelectMold()
boolean
isCropper()
Returns whether it is a cropper, i.e., cropping is applied.protected Listitem
newUnloadedItem(ListitemRenderer renderer, int index)
Creates an new and unloaded listitem.void
reset()
Callback from the owner component and give a chance to reset things.void
setLoadAll(boolean b)
Sets whether to always load all items from ListModel.void
syncModel(int offset, int limit)
Synchronizes the owner component to be consistent with the specified model.void
updateModelInfo()
Used to update some extra control information to the client.
-
-
-
Method Detail
-
init
public void init(Component owner, int offset, int limit)
Description copied from interface:DataLoader
Callback from the owner component and give a chance to initialize things.- Specified by:
init
in interfaceDataLoader
- Parameters:
owner
- the owner component of this DataLoader.
-
reset
public void reset()
Description copied from interface:DataLoader
Callback from the owner component and give a chance to reset things.- Specified by:
reset
in interfaceDataLoader
-
getOwner
public final Component getOwner()
Description copied from interface:DataLoader
Returns the associated owner component of this DataLoader.- Specified by:
getOwner
in interfaceDataLoader
-
getOffset
public int getOffset()
Description copied from interface:DataLoader
Returns the requested visible offset of the current loaded data chunk.- Specified by:
getOffset
in interfaceDataLoader
- Returns:
- the requested visible offset of the current loaded data chunk.
-
getLimit
public int getLimit()
Description copied from interface:DataLoader
Returns the required visible limit size of the current loaded data chunk to be shown on the screen.- Specified by:
getLimit
in interfaceDataLoader
- Returns:
- the required visible limit size of the current loaded data chunk to be shown on the screen.
-
getTotalSize
public int getTotalSize()
Description copied from interface:DataLoader
Returns the total size of the data.- Specified by:
getTotalSize
in interfaceDataLoader
- Returns:
- the total size of the data.
-
doGroupsDataChange
public void doGroupsDataChange(GroupsDataEvent event)
updates the status of the changed group.- Specified by:
doGroupsDataChange
in interfaceDataLoader
- Parameters:
event
-- Since:
- 8.0.4
-
doListDataChange
public void doListDataChange(ListDataEvent event)
Description copied from interface:DataLoader
Handle event when ListDataEvent is fired from owner component.- Specified by:
doListDataChange
in interfaceDataLoader
-
newUnloadedItem
protected final Listitem newUnloadedItem(ListitemRenderer renderer, int index)
Creates an new and unloaded listitem.
-
getRealRenderer
public java.lang.Object getRealRenderer()
Description copied from interface:DataLoader
Return the renderer to do rendering.- Specified by:
getRealRenderer
in interfaceDataLoader
-
syncModel
public void syncModel(int offset, int limit)
Description copied from interface:DataLoader
Synchronizes the owner component to be consistent with the specified model.- Specified by:
syncModel
in interfaceDataLoader
- Parameters:
offset
- the starting index of the range to do data synchronize.limit
- the size of the range to do data synchronize. -1 means the current range.
-
inPagingMold
protected boolean inPagingMold()
-
inSelectMold
protected boolean inSelectMold()
-
updateModelInfo
public void updateModelInfo()
Description copied from interface:DataLoader
Used to update some extra control information to the client.- Specified by:
updateModelInfo
in interfaceDataLoader
-
setLoadAll
public void setLoadAll(boolean b)
Description copied from interface:DataLoader
Sets whether to always load all items from ListModel.- Specified by:
setLoadAll
in interfaceDataLoader
-
isCropper
public boolean isCropper()
Description copied from interface:Cropper
Returns whether it is a cropper, i.e., cropping is applied.Note: this method is called when an child is detached, so you have to count one more for the total number of children. Example <= must be used, not <:
getChildCount() <= getPageSize()
The result of returning false is the same as not declaring with
Cropper
.
-
getAvailableAtClient
public final java.util.Set<? extends Component> getAvailableAtClient()
Retrieves the children available at client.It can not be overridden. Rather, override
getAvailableAtClient(boolean)
instead.- Specified by:
getAvailableAtClient
in interfaceCropper
-
getAvailableAtClient
protected java.util.Set<? extends Component> getAvailableAtClient(boolean itemOnly)
Retrieves the children available at client with more control.Derived class shall override this method rather than
getAvailableAtClient()
.- Parameters:
itemOnly
- whether to return onlyListitem
and derives.- Since:
- 5.0.10
-
getAvailableAtClient
protected java.util.Set<? extends Component> getAvailableAtClient(int offset, int limit, boolean itemOnly)
Retrieves the children available at the client within the given range.- Parameters:
itemOnly
- whether to return onlyListitem
and derives.- Since:
- 5.0.10
-
getCropOwner
public Component getCropOwner()
Description copied from interface:Cropper
Returns the owner of the cropping scope. In most cases,Cropper.getAvailableAtClient()
returns only the available direct children of this component, and this method returns this component. It is so-called a single-level cropping, such as listbox and tree.If you want to implement multi-level cropping, such as tree, you can consider the whole tree as a cropping scope. And,
Cropper.getAvailableAtClient()
returns all available items, not just the child of this component. In additions, this method returns the tree.- Specified by:
getCropOwner
in interfaceCropper
-
-