org.zkoss.zul
Class Listheader

java.lang.Object
  extended by org.zkoss.zk.ui.AbstractComponent
      extended by org.zkoss.zk.ui.HtmlBasedComponent
          extended by org.zkoss.zul.impl.XulElement
              extended by org.zkoss.zul.impl.LabelElement
                  extended by org.zkoss.zul.impl.LabelImageElement
                      extended by org.zkoss.zul.impl.HeaderElement
                          extended by org.zkoss.zul.Listheader
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Component, Scope, ComponentCtrl

public class Listheader
extends HeaderElement

The list header which defines the attributes and header of a column of a list box. Its parent must be Listhead.

Difference from XUL:

  1. There is no listcol in ZUL because it is merged into Listheader. Reason: easier to write Listbox.

Default getZclass(): z-listheader.(since 5.0.0)

Author:
tomyeh
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.zkoss.zul.impl.LabelImageElement
LabelImageElement.ExtraCtrl
 
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
AbstractComponent.Children
 
Field Summary
 
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclass
 
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
 
Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
 
Constructor Summary
Listheader()
           
Listheader(java.lang.String label)
           
Listheader(java.lang.String label, java.lang.String src)
           
Listheader(java.lang.String label, java.lang.String src, java.lang.String width)
           
 
Method Summary
 void beforeParentChanged(Component parent)
          Default: does nothing.
 java.lang.Object clone()
          Clones the component.
 int getColumnIndex()
          Returns the column index, starting from 0.
 Listbox getListbox()
          Returns the listbox that this belongs to.
 int getMaxlength()
          Returns the maximal length of each item's label.
 java.util.Comparator getSortAscending()
          Returns the ascending sorter, or null if not available.
 java.util.Comparator getSortDescending()
          Returns the descending sorter, or null if not available.
 java.lang.String getSortDirection()
          Returns the sort direction.
<T> T
getValue()
          Returns the value.
 java.lang.String getZclass()
          Returns the ZK Cascading Style class(es) for this component.
 boolean group(boolean ascending)
          Groups and sorts the items (Listitem) based on getSortAscending().
 void onGroupLater(SortEvent event)
          Internal use only.
 void onSort()
          Deprecated. As of release 6.5.0, use or override onSort(SortEvent) instead.
 void onSort(SortEvent event)
          Invokes a sorting action based on a SortEvent and maintains getSortDirection().
protected  void renderProperties(ContentRenderer renderer)
          Renders the content of this component, excluding the enclosing tags and children.
 void service(AuRequest request, boolean everError)
          Processes an AU request.
 void setMaxlength(int maxlength)
          Sets the maximal length of each item's label.
 void setSort(java.lang.String type)
          Sets the type of the sorter.
 void setSortAscending(java.util.Comparator sorter)
          Sets the ascending sorter, or null for no sorter for the ascending order.
 void setSortAscending(java.lang.String clsnm)
          Sets the ascending sorter with the class name, or null for no sorter for the ascending order.
 void setSortDescending(java.util.Comparator sorter)
          Sets the descending sorter, or null for no sorter for the descending order.
 void setSortDescending(java.lang.String clsnm)
          Sets the descending sorter with the class name, or null for no sorter for the descending order.
 void setSortDirection(java.lang.String sortDir)
          Sets the sort direction.
<T> void
setValue(T value)
          Sets the value.
 boolean sort(boolean ascending)
          Sorts the list items based on getSortAscending() and getSortDescending(), if getSortDirection() doesn't matches the ascending argument.
 boolean sort(boolean ascending, boolean force)
          Sorts the list items based on getSortAscending() and getSortDescending().
 void ungroup(boolean ascending)
          Ungroups and sorts the items (Listitem) based on the ascending.
 
Methods inherited from class org.zkoss.zul.impl.HeaderElement
getAlign, getValign, setAlign, setValign
 
Methods inherited from class org.zkoss.zul.impl.LabelImageElement
getExtraCtrl, getHoverImage, getHoverImageContent, getImage, getImageContent, getSrc, isImageAssigned, setHoverImage, setHoverImageContent, setHoverImageContent, setImage, setImageContent, setImageContent, setSrc
 
Methods inherited from class org.zkoss.zul.impl.LabelElement
getLabel, renderCrawlable, setLabel
 
Methods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeightDirectly, setHflex, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTooltiptext, setTop, setTopDirectly, setVflex, setWidth, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
 
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addScopeListener, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableClientUpdate, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getChildren, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getStubonly, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasFellow, hasFellow, insertBefore, invalidate, isChildable, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, removeScopeListener, render, render, render, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setTemplate, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, willPassivate, willPassivate, willSerialize, willSerialize
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Listheader

public Listheader()

Listheader

public Listheader(java.lang.String label)

Listheader

public Listheader(java.lang.String label,
                  java.lang.String src)

Listheader

public Listheader(java.lang.String label,
                  java.lang.String src,
                  java.lang.String width)
Method Detail

getListbox

public Listbox getListbox()
Returns the listbox that this belongs to.


getValue

public <T> T getValue()
Returns the value.

Default: null.

Note: the value is application dependent, you can place whatever value you want.

Since:
3.6.0

setValue

public <T> void setValue(T value)
Sets the value.

Parameters:
value - the value.

Note: the value is application dependent, you can place whatever value you want.

Since:
3.6.0

getSortDirection

public java.lang.String getSortDirection()
Returns the sort direction.

Default: "natural".


setSortDirection

public void setSortDirection(java.lang.String sortDir)
                      throws WrongValueException
Sets the sort direction. This does not sort the data, it only serves as an indicator as to how the list is sorted. (unless the listbox has "autosort" attribute)

If you use sort(boolean) to sort list items, the sort direction is maintained automatically. If you want to sort it in customized way, you have to set the sort direction manually.

Parameters:
sortDir - one of "ascending", "descending" and "natural"
Throws:
WrongValueException

setSort

public void setSort(java.lang.String type)
Sets the type of the sorter. You might specify either "auto", "auto(FIELD_NAME1[,FIELD_NAME2] ...)"(since 3.5.3), "auto(number)" (since 5.0.6) or "none".

If "client" or "client(number)" is specified, the sort functionality will be done by Javascript at client without notifying to server, that is, the order of the component in the row is out of sync.

Note: client sorting cannot work in model case. (since 5.0.0)

If "auto" is specified, setSortAscending(java.util.Comparator) and/or setSortDescending(java.util.Comparator) are called with ListitemComparator, if getSortDescending() and/or getSortAscending() are null. If you assigned a comparator to them, it won't be affected. The auto created comparator is case-insensitive.

If "auto(FIELD_NAME1, FIELD_NAME2, ...)" is specified, setSortAscending(java.util.Comparator) and/or setSortDescending(java.util.Comparator) are called with FieldComparator, if getSortDescending() and/or getSortAscending() are null. If you assigned a comparator to them, it won't be affected. The auto created comparator is case-insensitive.

If "auto(number)" is specified, setSortAscending(java.util.Comparator) and/or setSortDescending(java.util.Comparator) are called with ArrayComparator. Notice that the data must be an array and the number-th element must be comparable (Comparable).

If "none" is specified, both setSortAscending(java.util.Comparator) and setSortDescending(java.util.Comparator) are called with null. Therefore, no more sorting is available to users for this column.


getSortAscending

public java.util.Comparator getSortAscending()
Returns the ascending sorter, or null if not available.


setSortAscending

public void setSortAscending(java.util.Comparator sorter)
Sets the ascending sorter, or null for no sorter for the ascending order.

Parameters:
sorter - the comparator used to sort the ascending order. If you are using the group feature, you can pass an instance of GroupComparator to have a better control. If an instance of GroupComparator is passed, GroupComparator.compareGroup(D, D) is used to group elements, and Comparator.compare(T, T) is used to sort elements with a group. Otherwise, Comparator.compare(T, T) is used to group elements and sort elements within a group.

setSortAscending

public void setSortAscending(java.lang.String clsnm)
                      throws java.lang.ClassNotFoundException,
                             java.lang.InstantiationException,
                             java.lang.IllegalAccessException
Sets the ascending sorter with the class name, or null for no sorter for the ascending order.

Throws:
java.lang.ClassNotFoundException
java.lang.InstantiationException
java.lang.IllegalAccessException

getSortDescending

public java.util.Comparator getSortDescending()
Returns the descending sorter, or null if not available.


setSortDescending

public void setSortDescending(java.util.Comparator sorter)
Sets the descending sorter, or null for no sorter for the descending order.

Parameters:
sorter - the comparator used to sort the ascending order. If you are using the group feature, you can pass an instance of GroupComparator to have a better control. If an instance of GroupComparator is passed, GroupComparator.compareGroup(D, D) is used to group elements, and Comparator.compare(T, T) is used to sort elements with a group. Otherwise, Comparator.compare(T, T) is used to group elements and sort elements within a group.

setSortDescending

public void setSortDescending(java.lang.String clsnm)
                       throws java.lang.ClassNotFoundException,
                              java.lang.InstantiationException,
                              java.lang.IllegalAccessException
Sets the descending sorter with the class name, or null for no sorter for the descending order.

Throws:
java.lang.ClassNotFoundException
java.lang.InstantiationException
java.lang.IllegalAccessException

getMaxlength

public int getMaxlength()
Returns the maximal length of each item's label.

Default: 0 (no limit).


setMaxlength

public void setMaxlength(int maxlength)
Sets the maximal length of each item's label.

Default: 0 (no limit).

Notice that maxlength will be applied to this header and all listcell of the same column.


getColumnIndex

public int getColumnIndex()
Returns the column index, starting from 0.


sort

public boolean sort(boolean ascending)
Sorts the list items based on getSortAscending() and getSortDescending(), if getSortDirection() doesn't matches the ascending argument.

It checks getSortDirection() to see whether sorting is required, and update setSortDirection(java.lang.String) after sorted. For example, if getSortDirection() returns "ascending" and the ascending argument is false, nothing happens. To enforce the sorting, you can invoke setSortDirection(java.lang.String) with "natural" before invoking this method. Alternatively, you can invoke sort(boolean, boolean) instead.

It sorts the listitem by use of Components.sort(java.util.List, java.util.Comparator) data (i.e., Grid.getModel() is null).

On the other hand, it invokes Sortable.sort(java.util.Comparator, boolean) to sort the list item, if live data (i.e., Listbox.getModel() is not null). In other words, if you use the live data, you have to implement Sortable to sort the live data explicitly.

Parameters:
ascending - whether to use getSortAscending(). If the corresponding comparator is not set, it returns false and does nothing.
Returns:
whether the list items are sorted.
Throws:
UiException - if Listbox.getModel() is not null but Sortable is not implemented.

group

public boolean group(boolean ascending)
Groups and sorts the items (Listitem) based on getSortAscending(). If the corresponding comparator is not set, it returns false and does nothing.

Parameters:
ascending - whether to use getSortAscending(). If the corresponding comparator is not set, it returns false and does nothing.
Returns:
whether the rows are grouped.
Since:
6.5.0

sort

public boolean sort(boolean ascending,
                    boolean force)
Sorts the list items based on getSortAscending() and getSortDescending().

Parameters:
ascending - whether to use getSortAscending(). If the corresponding comparator is not set, it returns false and does nothing.
force - whether to enforce the sorting no matter what the sort direction (getSortDirection()) is. If false, this method is the same as sort(boolean).
Returns:
whether the rows are sorted.

onSort

public void onSort(SortEvent event)
Invokes a sorting action based on a SortEvent and maintains getSortDirection().

Since:
6.5.0

onSort

public void onSort()
Deprecated. As of release 6.5.0, use or override onSort(SortEvent) instead.

It invokes sort(boolean) to sort list items and maintain getSortDirection().


onGroupLater

public void onGroupLater(SortEvent event)
Internal use only.

Since:
6.5.0

ungroup

public void ungroup(boolean ascending)
Ungroups and sorts the items (Listitem) based on the ascending. If the corresponding comparator is not set, it returns false and does nothing.

Parameters:
ascending - whether to use getSortAscending(). If the corresponding comparator is not set, it returns false and does nothing.
Since:
6.5.0

getZclass

public java.lang.String getZclass()
Description copied from class: HtmlBasedComponent
Returns the ZK Cascading Style class(es) for this component. It usually depends on the implementation of the mold (@{link #getMold}).

Default: null (the default value depends on element).

HtmlBasedComponent.setZclass(java.lang.String)) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value of HtmlBasedComponent.getZclass(). Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use HtmlBasedComponent.setSclass(java.lang.String) instead.

Overrides:
getZclass in class HtmlBasedComponent
See Also:
HtmlBasedComponent.getSclass()

beforeParentChanged

public void beforeParentChanged(Component parent)
Description copied from class: AbstractComponent
Default: does nothing.

Specified by:
beforeParentChanged in interface ComponentCtrl
Overrides:
beforeParentChanged in class AbstractComponent
Parameters:
parent - the new parent. If null, it means detachment.
See Also:
ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)

service

public void service(AuRequest request,
                    boolean everError)
Processes an AU request.

Default: in addition to what are handled by its superclass, it also handles onSort.

Specified by:
service in interface ComponentCtrl
Overrides:
service in class HtmlBasedComponent
everError - whether any error ever occurred before processing this request.
Since:
6.5.0
See Also:
AbstractComponent.setAuService(org.zkoss.zk.au.AuService)

renderProperties

protected void renderProperties(ContentRenderer renderer)
                         throws java.io.IOException
Description copied from class: HtmlBasedComponent
Renders the content of this component, excluding the enclosing tags and children.

See also ZK Client-side Reference: Property Rendering

Overrides:
renderProperties in class HeaderElement
Throws:
java.io.IOException

clone

public java.lang.Object clone()
Description copied from interface: Component
Clones the component. All of its children and descendants are cloned. Also, ID are preserved.

Specified by:
clone in interface Component
Overrides:
clone in class LabelImageElement
Returns:
the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.


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