Package org.zkoss.clientbind
Class ClientBindComposer<T extends Component>
- java.lang.Object
-
- org.zkoss.clientbind.ClientBindComposer<T>
-
- All Implemented Interfaces:
java.io.Serializable,AuService,ComponentActivationListener,Composer<T>,ComposerExt<T>
public class ClientBindComposer<T extends Component> extends java.lang.Object implements Composer<T>, ComposerExt<T>, java.io.Serializable, AuService, ComponentActivationListener
- Author:
- jumperchen
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringBEAN_UIDprotected static java.lang.StringBINDER_ATTRstatic java.lang.StringBINDER_IDprotected static java.lang.StringCHILDREN_ATTRstatic java.lang.StringCLIENT_BINDINGSstatic java.lang.StringCOMMAND_EVENTstatic java.lang.StringCOMMAND_TRACKING_ARGUMENTSstatic java.lang.StringCOMMAND_TRACKING_ARGUMENTS_CHANGESjava.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.Set<java.lang.String>>>dependsOnMapstatic java.lang.StringDISABLE_CLIENT_UPDATEprotected static java.lang.StringFETCH_BEAN_DATA_CMDstatic java.lang.StringFORM_ATTRprotected static java.lang.StringFORM_SAVE_CMDprotected static java.lang.StringGROUP_OPEN_CMDprotected static java.lang.StringID_ANNOstatic java.lang.StringIMMUTABLEprotected static java.lang.StringINIT_ANNOprotected static java.lang.StringLIST_MODEL_SELECTION_CMDprotected static java.lang.StringLIST_SUBMODEL_CMDprotected static java.lang.StringLIST_SUBMODEL_SELECTION_CMDstatic java.lang.StringLOCAL_DATE_POSTFIXstatic java.lang.StringLOCAL_DATE_TIME_POSTFIXstatic java.lang.StringLOCAL_TIME_POSTFIXprotected static org.slf4j.Loggerlogprotected static java.lang.StringMODEL_ATTRjava.util.Map<java.lang.Object,java.lang.Integer>modelRodSizeMapjava.util.Map<java.lang.Object,ListModel>modelToListModeljava.util.Map<java.lang.Object,TreeModel>modelToTreeModelprotected static java.lang.StringQUEUE_NAME_ANNO_ATTRprotected static java.lang.StringQUEUE_SCOPE_ANNO_ATTRprotected static java.lang.StringREMOTE_CLEAR_VALIDATION_MESSAGE_CMDprotected static java.lang.StringREMOTE_CMD_ARGprotected static java.lang.StringREMOTE_CONVERTER_CMDprotected static java.lang.StringREMOTE_EL_CMDstatic java.lang.StringRENDER_ALL_TREE_DATAstatic java.lang.StringROD_SIZEprotected static java.lang.StringTO_STRING_CONVERTERprotected static java.lang.StringTREE_MODEL_SELECTION_CMDprotected static java.lang.StringTREEITEM_OPEN_CMDprotected static java.lang.StringUPDATE_BINDING_CMDprotected static java.lang.StringUPDATE_BINDING_DATAprotected static java.lang.StringUPDATE_SELECTION_DATAprotected static java.lang.StringVALIDATE_BINDING_CMDprotected static java.lang.StringVALIDATE_BINDING_COMPONENT_PROPERTYprotected static java.lang.StringVALIDATE_BINDING_DATAprotected static java.lang.StringVALIDATE_BINDING_PROPERTYprotected static java.lang.StringVALIDATE_SAVE_FORM_BINDINGprotected static java.lang.StringVALIDATION_MESSAGE_IDprotected static java.lang.StringVALIDATION_MESSAGES_ATTRprotected static java.lang.StringVALUE_ANNO_ATTRstatic java.lang.StringVIEW_MODEL_ATTRstatic java.lang.StringVM_IDstatic java.lang.StringWRAPPED_FORMAT_VALUEstatic java.lang.StringWRAPPED_RAW_VALUEstatic java.lang.StringWRAPPED_STRING_VALUEstatic java.lang.StringWRAPPED_TYPEstatic java.lang.StringZONED_DATE_TIME
-
Constructor Summary
Constructors Constructor Description ClientBindComposer()ClientBindComposer(boolean isClientWidgetOnly)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddConverter(java.lang.String name, Converter converter)protected voidclearCachedFormBeans()protected java.lang.ObjectcoerceToBeanProp(java.lang.Object bean, java.lang.String prop, java.lang.Object value)voiddidActivate(Component comp)Called when a session has just been activated (and its value has been deserialized).voiddoAfterCompose(T comp)Invokes after ZK loader creates this component, initializes it and composes all its children, if any.ComponentInfodoBeforeCompose(Page page, Component component, ComponentInfo componentInfo)Invokes before composing a component.voiddoBeforeComposeChildren(T comp)Invokes after the component is instantiated and initialized, but before composing any child.protected voiddoBeforeComposeChildren0(T comp, java.lang.Object vmObject)booleandoCatch(java.lang.Throwable throwable)Called when an exception occurs when composing the component.protected java.lang.ObjectdoConvertCoerceToBean(java.lang.Object origin, Component comp, java.lang.String converterExpr, java.util.Map<java.lang.String,java.lang.Object> coverterParams)voiddoFinally()Called after the component has been composed completely.protected booleandoValidate(java.util.Map<java.lang.String,java.lang.Object> validatorData, java.util.Map<java.lang.String,java.lang.Object> validatorProperty, java.lang.Object bean, Component comp, java.lang.String prop, java.lang.Object value)protected java.lang.ObjectevalExpression(Component target, java.lang.String expression)protected ConverterfindConverter(Component target, java.lang.String expr)java.lang.StringgetBeanUid(java.lang.Object bean)ClientBindergetBinder()protected java.lang.ObjectgetCachedFormBeanById(java.lang.String id)BindEvaluatorXgetEvaluatorX()java.lang.ObjectgetViewModel()voidhandleModel(java.util.Map<java.lang.String,java.lang.Object> allBindings, Component comp, java.lang.String expr, java.util.Map<java.lang.String,java.lang.String[]> converterInfo)protected voidinitCachedFormBeans()protected java.lang.ObjectinitInnerViewModel(BindEvaluatorX evalx, Component comp, java.lang.String vmname, java.lang.Object vm)protected BindContextprepareConverterContext(Component target, java.util.Map<java.lang.String,java.lang.Object> paramsFromClient)static voidprocessPropertyBinding(java.util.Map<java.lang.String,java.lang.Object> allBindings, java.lang.String prop, java.lang.String annot, java.util.Map<java.lang.String,java.lang.String[]> propertyBinding)Internal used onlystatic voidprocessPropertyBinding(java.util.Map<java.lang.String,java.lang.Object> allBindings, java.lang.String prop, java.lang.String annot, java.util.Map<java.lang.String,java.lang.String[]> propertyBinding, boolean multiple)Internal used onlyvoidrenderProperties(ContentRenderer contentRenderer)booleanservice(AuRequest request, boolean everError)Handles an AU request.voidsetCachedBeanById(java.lang.String id, java.lang.Object data)protected voidsetCachedFormBeanById(java.lang.String id, java.lang.Object data)protected voidtraverseComponentBindings(Component comp)voidwillPassivate(Component comp)Called when a session is about to be passivated (and then serialize its value).
-
-
-
Field Detail
-
log
protected static final org.slf4j.Logger log
-
VM_ID
public static final java.lang.String VM_ID
- See Also:
- Constant Field Values
-
BINDER_ID
public static final java.lang.String BINDER_ID
- See Also:
- Constant Field Values
-
VALIDATION_MESSAGE_ID
protected static final java.lang.String VALIDATION_MESSAGE_ID
- See Also:
- Constant Field Values
-
ID_ANNO
protected static final java.lang.String ID_ANNO
- See Also:
- Constant Field Values
-
INIT_ANNO
protected static final java.lang.String INIT_ANNO
- See Also:
- Constant Field Values
-
VALUE_ANNO_ATTR
protected static final java.lang.String VALUE_ANNO_ATTR
- See Also:
- Constant Field Values
-
FORM_ATTR
public static final java.lang.String FORM_ATTR
- See Also:
- Constant Field Values
-
VIEW_MODEL_ATTR
public static final java.lang.String VIEW_MODEL_ATTR
- See Also:
- Constant Field Values
-
BINDER_ATTR
protected static final java.lang.String BINDER_ATTR
- See Also:
- Constant Field Values
-
VALIDATION_MESSAGES_ATTR
protected static final java.lang.String VALIDATION_MESSAGES_ATTR
- See Also:
- Constant Field Values
-
CHILDREN_ATTR
protected static final java.lang.String CHILDREN_ATTR
- See Also:
- Constant Field Values
-
MODEL_ATTR
protected static final java.lang.String MODEL_ATTR
- See Also:
- Constant Field Values
-
QUEUE_NAME_ANNO_ATTR
protected static final java.lang.String QUEUE_NAME_ANNO_ATTR
- See Also:
- Constant Field Values
-
QUEUE_SCOPE_ANNO_ATTR
protected static final java.lang.String QUEUE_SCOPE_ANNO_ATTR
- See Also:
- Constant Field Values
-
UPDATE_BINDING_CMD
protected static final java.lang.String UPDATE_BINDING_CMD
- See Also:
- Constant Field Values
-
UPDATE_BINDING_DATA
protected static final java.lang.String UPDATE_BINDING_DATA
- See Also:
- Constant Field Values
-
UPDATE_SELECTION_DATA
protected static final java.lang.String UPDATE_SELECTION_DATA
- See Also:
- Constant Field Values
-
VALIDATE_BINDING_CMD
protected static final java.lang.String VALIDATE_BINDING_CMD
- See Also:
- Constant Field Values
-
VALIDATE_BINDING_DATA
protected static final java.lang.String VALIDATE_BINDING_DATA
- See Also:
- Constant Field Values
-
VALIDATE_BINDING_PROPERTY
protected static final java.lang.String VALIDATE_BINDING_PROPERTY
- See Also:
- Constant Field Values
-
VALIDATE_BINDING_COMPONENT_PROPERTY
protected static final java.lang.String VALIDATE_BINDING_COMPONENT_PROPERTY
- See Also:
- Constant Field Values
-
VALIDATE_SAVE_FORM_BINDING
protected static final java.lang.String VALIDATE_SAVE_FORM_BINDING
- See Also:
- Constant Field Values
-
REMOTE_EL_CMD
protected static final java.lang.String REMOTE_EL_CMD
- See Also:
- Constant Field Values
-
REMOTE_CONVERTER_CMD
protected static final java.lang.String REMOTE_CONVERTER_CMD
- See Also:
- Constant Field Values
-
REMOTE_CMD_ARG
protected static final java.lang.String REMOTE_CMD_ARG
- See Also:
- Constant Field Values
-
FORM_SAVE_CMD
protected static final java.lang.String FORM_SAVE_CMD
- See Also:
- Constant Field Values
-
FETCH_BEAN_DATA_CMD
protected static final java.lang.String FETCH_BEAN_DATA_CMD
- See Also:
- Constant Field Values
-
REMOTE_CLEAR_VALIDATION_MESSAGE_CMD
protected static final java.lang.String REMOTE_CLEAR_VALIDATION_MESSAGE_CMD
- See Also:
- Constant Field Values
-
TREEITEM_OPEN_CMD
protected static final java.lang.String TREEITEM_OPEN_CMD
- See Also:
- Constant Field Values
-
GROUP_OPEN_CMD
protected static final java.lang.String GROUP_OPEN_CMD
- See Also:
- Constant Field Values
-
TREE_MODEL_SELECTION_CMD
protected static final java.lang.String TREE_MODEL_SELECTION_CMD
- See Also:
- Constant Field Values
-
LIST_MODEL_SELECTION_CMD
protected static final java.lang.String LIST_MODEL_SELECTION_CMD
- See Also:
- Constant Field Values
-
LIST_SUBMODEL_CMD
protected static final java.lang.String LIST_SUBMODEL_CMD
- See Also:
- Constant Field Values
-
LIST_SUBMODEL_SELECTION_CMD
protected static final java.lang.String LIST_SUBMODEL_SELECTION_CMD
- See Also:
- Constant Field Values
-
BEAN_UID
public static final java.lang.String BEAN_UID
- See Also:
- Constant Field Values
-
IMMUTABLE
public static final java.lang.String IMMUTABLE
- See Also:
- Constant Field Values
-
TO_STRING_CONVERTER
protected static final java.lang.String TO_STRING_CONVERTER
- See Also:
- Constant Field Values
-
CLIENT_BINDINGS
public static final java.lang.String CLIENT_BINDINGS
- See Also:
- Constant Field Values
-
ROD_SIZE
public static final java.lang.String ROD_SIZE
- See Also:
- Constant Field Values
-
COMMAND_EVENT
public static final java.lang.String COMMAND_EVENT
- See Also:
- Constant Field Values
-
COMMAND_TRACKING_ARGUMENTS
public static final java.lang.String COMMAND_TRACKING_ARGUMENTS
- See Also:
- Constant Field Values
-
COMMAND_TRACKING_ARGUMENTS_CHANGES
public static final java.lang.String COMMAND_TRACKING_ARGUMENTS_CHANGES
- See Also:
- Constant Field Values
-
WRAPPED_TYPE
public static final java.lang.String WRAPPED_TYPE
- See Also:
- Constant Field Values
-
WRAPPED_RAW_VALUE
public static final java.lang.String WRAPPED_RAW_VALUE
- See Also:
- Constant Field Values
-
WRAPPED_STRING_VALUE
public static final java.lang.String WRAPPED_STRING_VALUE
- See Also:
- Constant Field Values
-
WRAPPED_FORMAT_VALUE
public static final java.lang.String WRAPPED_FORMAT_VALUE
- See Also:
- Constant Field Values
-
LOCAL_DATE_POSTFIX
public static final java.lang.String LOCAL_DATE_POSTFIX
- See Also:
- Constant Field Values
-
LOCAL_DATE_TIME_POSTFIX
public static final java.lang.String LOCAL_DATE_TIME_POSTFIX
- See Also:
- Constant Field Values
-
LOCAL_TIME_POSTFIX
public static final java.lang.String LOCAL_TIME_POSTFIX
- See Also:
- Constant Field Values
-
ZONED_DATE_TIME
public static final java.lang.String ZONED_DATE_TIME
- See Also:
- Constant Field Values
-
DISABLE_CLIENT_UPDATE
public static final java.lang.String DISABLE_CLIENT_UPDATE
- See Also:
- Constant Field Values
-
RENDER_ALL_TREE_DATA
public static final java.lang.String RENDER_ALL_TREE_DATA
- See Also:
- Constant Field Values
-
dependsOnMap
public final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.Set<java.lang.String>>> dependsOnMap
-
modelToListModel
public final java.util.Map<java.lang.Object,ListModel> modelToListModel
-
modelToTreeModel
public final java.util.Map<java.lang.Object,TreeModel> modelToTreeModel
-
modelRodSizeMap
public final java.util.Map<java.lang.Object,java.lang.Integer> modelRodSizeMap
-
-
Method Detail
-
getEvaluatorX
public BindEvaluatorX getEvaluatorX()
-
getBinder
public ClientBinder getBinder()
-
getViewModel
public java.lang.Object getViewModel()
-
addConverter
public void addConverter(java.lang.String name, Converter converter)
-
renderProperties
public void renderProperties(ContentRenderer contentRenderer) throws java.io.IOException
- Throws:
java.io.IOException
-
doAfterCompose
public void doAfterCompose(T comp) throws java.lang.Exception
Description copied from interface:ComposerInvokes after ZK loader creates this component, initializes it and composes all its children, if any.- Specified by:
doAfterComposein interfaceComposer<T extends Component>- Parameters:
comp- the component has been composed- Throws:
java.lang.Exception
-
traverseComponentBindings
protected void traverseComponentBindings(Component comp)
-
processPropertyBinding
public static void processPropertyBinding(java.util.Map<java.lang.String,java.lang.Object> allBindings, java.lang.String prop, java.lang.String annot, java.util.Map<java.lang.String,java.lang.String[]> propertyBinding)Internal used only
-
processPropertyBinding
public static void processPropertyBinding(java.util.Map<java.lang.String,java.lang.Object> allBindings, java.lang.String prop, java.lang.String annot, java.util.Map<java.lang.String,java.lang.String[]> propertyBinding, boolean multiple)Internal used only
-
handleModel
public void handleModel(java.util.Map<java.lang.String,java.lang.Object> allBindings, Component comp, java.lang.String expr, java.util.Map<java.lang.String,java.lang.String[]> converterInfo)
-
doBeforeCompose
public ComponentInfo doBeforeCompose(Page page, Component component, ComponentInfo componentInfo) throws java.lang.Exception
Description copied from interface:ComposerExtInvokes before composing a component. If you want to manipulate the specified component info, you can useComponentInfo.duplicate()to make a copy and then modify it such that it won't affect the default behavior.- Specified by:
doBeforeComposein interfaceComposerExt<T extends Component>- Parameters:
page- the page for composing this component.component- the parent component, or null if it is the root component.componentInfo- the component info used to instantiate the component. Notice that it is null if the page is rendered as ZK JSP, sinceComponentInfois not available under ZK JSP.- Returns:
- the component info used to instantiate the component. In most case, it shall return compInfo. If null is returned, the component won't be instantiated. In other words, it is ignored.
- Throws:
java.lang.Exception
-
doBeforeComposeChildren
public void doBeforeComposeChildren(T comp) throws java.lang.Exception
Description copied from interface:ComposerExtInvokes after the component is instantiated and initialized, but before composing any child.- Specified by:
doBeforeComposeChildrenin interfaceComposerExt<T extends Component>- Parameters:
comp- the component being composed- Throws:
java.lang.Exception
-
doBeforeComposeChildren0
protected void doBeforeComposeChildren0(T comp, java.lang.Object vmObject) throws java.lang.Exception
- Throws:
java.lang.Exception
-
initInnerViewModel
protected java.lang.Object initInnerViewModel(BindEvaluatorX evalx, Component comp, java.lang.String vmname, java.lang.Object vm)
-
doCatch
public boolean doCatch(java.lang.Throwable throwable) throws java.lang.ExceptionDescription copied from interface:ComposerExtCalled when an exception occurs when composing the component.If you don't want to handle the exception, simply returns false.
boolean doCatch(Throwable ex) {return false;}An exception thrown in this method is simply logged. It has no effect on the execution. If you want to ignore the exception, just return true.
- Specified by:
doCatchin interfaceComposerExt<T extends Component>- Parameters:
throwable- the exception being thrown- Returns:
- whether to ignore the exception. If false is returned, the exception will be re-thrown. Note: once a composer's doCatch returns true, the exception will be ignored and it means doCatch of the following composers won't be called.
- Throws:
java.lang.Exception
-
doFinally
public void doFinally() throws java.lang.ExceptionDescription copied from interface:ComposerExtCalled after the component has been composed completely. It is the last step of the composing.Note: it is always called even if
ComposerExt.doCatch(java.lang.Throwable),ComposerExt.doBeforeComposeChildren(T)orComposer.doAfterCompose(T)is not called (due to exceptions).Note: it is called after the onCreate event is posted, but before the onCreate and any other events are handled.
An exception thrown in this method is simply logged. It has no effect on the execution.
- Specified by:
doFinallyin interfaceComposerExt<T extends Component>- Throws:
java.lang.Exception
-
service
public boolean service(AuRequest request, boolean everError)
Description copied from interface:AuServiceHandles an AU request.- Specified by:
servicein interfaceAuService- Parameters:
request- the request sent from the client.everError- whether any error ever occurred before processing this request.- Returns:
- whether the request has been processed. If false is returned, the default process (handled by the component) will take place.
-
evalExpression
protected java.lang.Object evalExpression(Component target, java.lang.String expression)
-
prepareConverterContext
protected BindContext prepareConverterContext(Component target, java.util.Map<java.lang.String,java.lang.Object> paramsFromClient)
-
doConvertCoerceToBean
protected java.lang.Object doConvertCoerceToBean(java.lang.Object origin, Component comp, java.lang.String converterExpr, java.util.Map<java.lang.String,java.lang.Object> coverterParams)
-
coerceToBeanProp
protected java.lang.Object coerceToBeanProp(java.lang.Object bean, java.lang.String prop, java.lang.Object value)
-
doValidate
protected boolean doValidate(java.util.Map<java.lang.String,java.lang.Object> validatorData, java.util.Map<java.lang.String,java.lang.Object> validatorProperty, java.lang.Object bean, Component comp, java.lang.String prop, java.lang.Object value)
-
setCachedBeanById
public void setCachedBeanById(java.lang.String id, java.lang.Object data)
-
getCachedFormBeanById
protected java.lang.Object getCachedFormBeanById(java.lang.String id)
-
setCachedFormBeanById
protected void setCachedFormBeanById(java.lang.String id, java.lang.Object data)
-
clearCachedFormBeans
protected void clearCachedFormBeans()
-
initCachedFormBeans
protected void initCachedFormBeans()
-
getBeanUid
public java.lang.String getBeanUid(java.lang.Object bean)
-
didActivate
public void didActivate(Component comp)
Description copied from interface:ComponentActivationListenerCalled when a session has just been activated (and its value has been deserialized).- Specified by:
didActivatein interfaceComponentActivationListener
-
willPassivate
public void willPassivate(Component comp)
Description copied from interface:ComponentActivationListenerCalled when a session is about to be passivated (and then serialize its value).- Specified by:
willPassivatein interfaceComponentActivationListener
-
-