org.zkoss.zul
Class Selectbox

java.lang.Object
  extended by org.zkoss.zk.ui.AbstractComponent
      extended by org.zkoss.zk.ui.HtmlBasedComponent
          extended by org.zkoss.zul.Selectbox
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Component, Scope, ComponentCtrl

public class Selectbox
extends HtmlBasedComponent

A light weight dropdown list.

Default getZclass(): z-selectbox. It does not create child widgets for each data, so the memory usage is much lower at the server. However, the implementation is based on HTML SELECT and OPTION tags, so the functionality is not as rich as Listbox.

Since:
6.0.0
Author:
jumperchen
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
HtmlBasedComponent.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
Selectbox()
           
 
Method Summary
 java.lang.Object clone()
          Clones the component.
<T> ItemRenderer<T>
getItemRenderer()
          Returns the renderer to render each item, or null if the default renderer is used.
<T> ListModel<T>
getModel()
          Returns the model associated with this selectbox, or null if this selectbox is not associated with any list data model.
 java.lang.String getName()
          Returns the name of this component.
<T> ItemRenderer<T>
getRealRenderer()
           
 int getSelectedIndex()
          Returns the index of the selected item (-1 if no one is selected).
 int getTabindex()
          Returns the tab order of this component.
 java.lang.String getZclass()
          Returns the ZK Cascading Style class(es) for this component.
 void invalidate()
          Invalidates this component by setting the dirty flag such that it will be redraw the whole content of this component and its dependences later.
protected  boolean isChildable()
          Returns whether this component can have a child.
 boolean isDisabled()
          Returns whether it is disabled.
 void onInitRender()
           
 void onPageAttached(Page newpage, Page oldpage)
          Default: handles special event listeners.
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 sessionDidActivate(Page page)
          Notification that the session, which owns this component, has just been activated (aka., deserialized).
 void sessionWillPassivate(Page page)
          Notification that the session, which owns this component, is about to be passivated (aka., serialized).
 void setDisabled(boolean disabled)
          Sets whether it is disabled.
 void setItemRenderer(ItemRenderer<?> renderer)
          Sets the renderer which is used to render each item if getModel() is not null.
 void setItemRenderer(java.lang.String clsnm)
          Sets the renderer by use of a class name.
 void setModel(ListModel<?> model)
          Sets the list model associated with this selectbox.
 void setName(java.lang.String name)
          Sets the name of this component.
 void setParent(Component parent)
          Sets the parent component.
 void setSelectedIndex(int jsel)
          Selects the item with the given index.
 void setTabindex(int tabindex)
          Sets the tab order of this component.
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getAction, getDraggable, getDroppable, getExtraCtrl, 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, beforeParentChanged, 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, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageDetached, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, removeScopeListener, render, render, render, replace, response, response, response, service, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, 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

Selectbox

public Selectbox()
Method Detail

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()

getSelectedIndex

public int getSelectedIndex()
Returns the index of the selected item (-1 if no one is selected).


setSelectedIndex

public void setSelectedIndex(int jsel)
Selects the item with the given index.


getTabindex

public int getTabindex()
Returns the tab order of this component.

Default: 0 (means the same as browser's default).


setTabindex

public void setTabindex(int tabindex)
                 throws WrongValueException
Sets the tab order of this component.

Throws:
WrongValueException

getItemRenderer

public <T> ItemRenderer<T> getItemRenderer()
Returns the renderer to render each item, or null if the default renderer is used.


setItemRenderer

public void setItemRenderer(ItemRenderer<?> renderer)
Sets the renderer which is used to render each item if getModel() is not null.

Note: changing a render will not cause the selectbox to re-render. If you want it to re-render, you could assign the same model again (i.e., setModel(getModel())), or fire an ListDataEvent event.

Parameters:
renderer - the renderer, or null to use the default.
Throws:
UiException - if failed to initialize with the model

setItemRenderer

public void setItemRenderer(java.lang.String clsnm)
                     throws java.lang.ClassNotFoundException,
                            java.lang.NoSuchMethodException,
                            java.lang.IllegalAccessException,
                            java.lang.InstantiationException,
                            java.lang.reflect.InvocationTargetException
Sets the renderer by use of a class name. It creates an instance automatically.

Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.reflect.InvocationTargetException

isDisabled

public boolean isDisabled()
Returns whether it is disabled.

Default: false.


isChildable

protected boolean isChildable()
Description copied from class: AbstractComponent
Returns whether this component can have a child.

Default: return true (means it can have children).

Overrides:
isChildable in class AbstractComponent

setDisabled

public void setDisabled(boolean disabled)
Sets whether it is disabled.


getName

public java.lang.String getName()
Returns the name of this component.

Default: null.

The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.

Don't use this method if your application is purely based on ZK's event-driven model.


setName

public void setName(java.lang.String name)
Sets the name of this component.

The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.

Don't use this method if your application is purely based on ZK's event-driven model.

Parameters:
name - the name of this component.

setModel

public void setModel(ListModel<?> model)
Sets the list model associated with this selectbox. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render.

Parameters:
model - the list model to associate, or null to dis-associate any previous model.
Throws:
UiException - if failed to initialize with the model

onInitRender

public void onInitRender()

getModel

public <T> ListModel<T> getModel()
Returns the model associated with this selectbox, or null if this selectbox is not associated with any list data model.


getRealRenderer

public <T> ItemRenderer<T> getRealRenderer()

invalidate

public void invalidate()
Description copied from interface: Component
Invalidates this component by setting the dirty flag such that it will be redraw the whole content of this component and its dependences later. And, the widget associated with this component and all its descendant at the client will be deleted and recreated, too.

If the application is totally controlled by the server side (i.e., you don't write client codes), you rarely need to access this method.

It can be called only in the request-processing and event-processing phases. However, it is NOT allowed in the rendering phase.

Specified by:
invalidate in interface Component
Overrides:
invalidate in class AbstractComponent

setParent

public void setParent(Component parent)
Description copied from interface: Component
Sets the parent component.

Note: Component.setParent(org.zkoss.zk.ui.Component) always calls back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and/or Component.removeChild(org.zkoss.zk.ui.Component), while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.removeChild(org.zkoss.zk.ui.Component) always calls back Component.setParent(org.zkoss.zk.ui.Component), if the parent is changed. Thus, you don't need to override both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.setParent(org.zkoss.zk.ui.Component), if you want to customize the behavior.

Specified by:
setParent in interface Component
Overrides:
setParent in class AbstractComponent

onPageAttached

public void onPageAttached(Page newpage,
                           Page oldpage)
Description copied from class: AbstractComponent
Default: handles special event listeners.

Specified by:
onPageAttached in interface ComponentCtrl
Overrides:
onPageAttached in class AbstractComponent
Parameters:
newpage - the new page (never null).
oldpage - the previous page, if any, or null if it didn't belong to any page.
See Also:
ComponentCtrl.onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page)

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 HtmlBasedComponent
Throws:
java.io.IOException

service

public void service(AuRequest request,
                    boolean everError)
Description copied from class: HtmlBasedComponent
Processes an AU request.

Default: it handles onClick, onDoubleClick, onRightClick onMove, onSize, onZIndex.

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

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 HtmlBasedComponent
Returns:
the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.

sessionWillPassivate

public void sessionWillPassivate(Page page)
Description copied from interface: ComponentCtrl
Notification that the session, which owns this component, is about to be passivated (aka., serialized).

Note: only root components are notified by this method.

Specified by:
sessionWillPassivate in interface ComponentCtrl
Overrides:
sessionWillPassivate in class AbstractComponent

sessionDidActivate

public void sessionDidActivate(Page page)
Description copied from interface: ComponentCtrl
Notification that the session, which owns this component, has just been activated (aka., deserialized).

Note: only root components are notified by this method.

Specified by:
sessionDidActivate in interface ComponentCtrl
Overrides:
sessionDidActivate in class AbstractComponent


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