public class Listheader extends HeaderElement
Listhead
.
Difference from XUL:
Listheader
.
Reason: easier to write Listbox.Default getZclass()
: z-listheader.(since 5.0.0)
LabelImageElement.ExtraCtrl
AbstractComponent.Children
_zclass
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
Constructor and Description |
---|
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) |
Modifier and Type | Method and Description |
---|---|
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. |
protected void |
updateByClient(java.lang.String name,
java.lang.Object value)
Called when the widget running at the client asks the server
to update a value.
|
getAlign, getValign, setAlign, setValign
getExtraCtrl, getHoverImage, getHoverImageContent, getIconSclass, getImage, getImageContent, getPropertyAccess, getSrc, isImageAssigned, setHoverImage, setHoverImageContent, setHoverImageContent, setIconSclass, setImage, setImageContent, setImageContent, setSrc
getLabel, renderCrawlable, setLabel
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
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
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowRoots, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, insertBefore, invalidate, isChildable, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
public Listheader()
public Listheader(java.lang.String label)
public Listheader(java.lang.String label, java.lang.String src)
public Listheader(java.lang.String label, java.lang.String src, java.lang.String width)
public Listbox getListbox()
public <T> T getValue()
Default: null.
Note: the value is application dependent, you can place whatever value you want.
public <T> void setValue(T value)
value
- the value.
Note: the value is application dependent, you can place whatever value you want.
public java.lang.String getSortDirection()
Default: "natural".
public void setSortDirection(java.lang.String sortDir) throws WrongValueException
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.
sortDir
- one of "ascending", "descending" and "natural"WrongValueException
public void setSort(java.lang.String type)
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-sensitive.
If "auto(LOWER(FIELD_NAME))" or "auto(UPPER(FIELD_NAME))" 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.
public java.util.Comparator getSortAscending()
public void setSortAscending(java.util.Comparator sorter)
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.public void setSortAscending(java.lang.String clsnm) throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException
java.lang.ClassNotFoundException
java.lang.InstantiationException
java.lang.IllegalAccessException
public java.util.Comparator getSortDescending()
public void setSortDescending(java.util.Comparator sorter)
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.public void setSortDescending(java.lang.String clsnm) throws java.lang.ClassNotFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException
java.lang.ClassNotFoundException
java.lang.InstantiationException
java.lang.IllegalAccessException
public int getMaxlength()
Default: 0 (no limit).
public void setMaxlength(int maxlength)
Default: 0 (no limit).
Notice that maxlength will be applied to this header and all listcell of the same column.
public int getColumnIndex()
public boolean sort(boolean ascending)
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<? extends org.zkoss.zk.ui.Component>, java.util.Comparator<? super org.zkoss.zk.ui.Component>)
data (i.e., Grid.getModel()
is null).
On the other hand, it invokes Sortable.sort(java.util.Comparator<T>, 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.
ascending
- whether to use getSortAscending()
.
If the corresponding comparator is not set, it returns false
and does nothing.UiException
- if Listbox.getModel()
is not
null but Sortable
is not implemented.public boolean group(boolean ascending)
Listitem
) based on
getSortAscending()
.
If the corresponding comparator is not set, it returns false
and does nothing.ascending
- whether to use getSortAscending()
.
If the corresponding comparator is not set, it returns false
and does nothing.public boolean sort(boolean ascending, boolean force)
getSortAscending()
and getSortDescending()
.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)
.public void onSort(SortEvent event)
SortEvent
and maintains
getSortDirection()
.public void onSort()
onSort(SortEvent)
instead.sort(boolean)
to sort list items and maintain
getSortDirection()
.public void onGroupLater(SortEvent event)
public void ungroup(boolean ascending)
Listitem
) based on the ascending.
If the corresponding comparator is not set, it returns false
and does nothing.ascending
- whether to use getSortAscending()
.
If the corresponding comparator is not set, it returns false
and does nothing.public java.lang.String getZclass()
HtmlBasedComponent
AbstractComponent.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.
getZclass
in class HtmlBasedComponent
HtmlBasedComponent.getSclass()
public void beforeParentChanged(Component parent)
AbstractComponent
beforeParentChanged
in interface ComponentCtrl
beforeParentChanged
in class AbstractComponent
parent
- the new parent. If null, it means detachment.ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
public void service(AuRequest request, boolean everError)
Default: in addition to what are handled by its superclass, it also handles onSort.
service
in interface ComponentCtrl
service
in class HtmlBasedComponent
everError
- whether any error ever occurred before
processing this request.AbstractComponent.setAuService(org.zkoss.zk.au.AuService)
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
HtmlBasedComponent
renderProperties
in class HeaderElement
java.io.IOException
public java.lang.Object clone()
Component
clone
in interface Component
clone
in class LabelImageElement
protected void updateByClient(java.lang.String name, java.lang.Object value)
AbstractComponent
setAttr
(by invoking zk.Widget's smartUpdate at client).
By default, it does nothing but log a warning message, since it is not safe to allow the client to update a field arbitrary.
However, if you'd like to allow the update for a particular component you could do one of the following
protected void updateByClient(String name, Object value) {
if ("disabled".equals(name))
setDisabled(name, ((Boolean)value).booleanValue());
else
super.updateByClient(name, value);
org.zkoss.zk.ui.updateByClient
to be true.
Then, this method will use reflection to find out the setter to update
the value. Nothing happens if the method is not found.Notice: this method will invoke AbstractComponent.disableClientUpdate(boolean)
to
disable any update to the client, when calling the setter.
If you want to enable the client update for all instances of a given component (though not recommended for the security reason), you could refer to here.
See also zk.Widget.smartUpdate().
updateByClient
in class AbstractComponent
Copyright © 2005-2011 Potix Corporation. All Rights Reserved.