h:selectOneMenu, a4j:support and onclick
hgf Oct 8, 2007 6:00 PMHi,
I have an oncklick, oncomplete and status attribute in an a4j:support element which does not work as expected. What l try to do is to show a sandglass while a4j does it's work, but there is no sandglass. The a4j:support element resides in a h:selectOneMenu element, which resides in a a4j:region element. a4j:status is also not repainted. See my coding beneath (search for serviceLevel for an example).
Thank you for any help
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
<f:loadBundle basename="resources" var="msg" />
<ui:composition>
<h:panelGrid id="DLG_CONFIG_PNL_BASIC_PG" columns="3"
columnClasses="gridContent">
<h:panelGroup>
<h:panelGrid id="DLG_CONFIG_PNL_BASIC_PG_SP_ID" columns="2">
<h:panelGroup />
<h:panelGrid>
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_TXT_VPN_ID_ERROR"
for="DLG_CONFIG_PNL_BASIC_TXT_VPN_ID" />
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_TXT_SAP_NO_ERROR"
for="DLG_CONFIG_PNL_BASIC_TXT_SAP_NO" />
</h:panelGrid>
<h:outputText value="#{msg.DLG_CONFIG_PNL_BASIC_LBL_SP_ID}" />
<h:panelGrid columns="3">
<h:inputText id="DLG_CONFIG_PNL_BASIC_TXT_VPN_ID"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_VPN_ID}" size="10"
maxlength="10" title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_VPN_ID}"
value="#{configurationHandler.config.SAP_ID.VPN_ID}"
converter="spims.VpnIdConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_ID-VPN_ID']}"
disabled="!#{configurationHandler.mapEnabled['Configuration-SAP_ID-VPN_ID']}">
<f:validateLength minimum="1" maximum="10" />
<a4j:support event="onblur" reRender="panelError"
ajaxSingle="true" limitToList="true" />
</h:inputText>
<h:outputText value="." />
<h:inputText id="DLG_CONFIG_PNL_BASIC_TXT_SAP_NO"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_SAP_NO}" size="6"
maxlength="6" title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_SAP_NO}"
value="#{configurationHandler.config.SAP_ID.SAP_NO}"
converter="spims.SapNoConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_ID-SAP_NO']}">
<f:validateLength maximum="6" />
<a4j:support event="onblur" reRender="panelError"
ajaxSingle="true" limitToList="true" />
</h:inputText>
</h:panelGrid>
<h:panelGroup />
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_TXT_VPN_NAME_ERROR"
for="DLG_CONFIG_PNL_BASIC_TXT_VPN_NAME" />
<h:outputText id="DLG_CONFIG_PNL_BASIC_LBL_VPN_NAME"
value="#{msg.DLG_CONFIG_PNL_BASIC_LBL_VPN_NAME}" />
<h:inputText id="DLG_CONFIG_PNL_BASIC_TXT_VPN_NAME"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_VPN_NAME}"
title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_VPN_NAME}" maxlength="10"
size="23" value="#{configurationHandler.config.SAP_INFO.VPN_NAME}"
converter="spims.VrfNoConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-VPN_NAME']}">
<f:validateLength maximum="10" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:inputText>
<h:panelGroup />
<h:message styleClass="error" id="techNetNameError"
for="techNetName" />
<h:outputText value="#{msg.DLG_CONFIG_PNL_BASIC_LBL_TECHNICAL_NET}" />
<h:inputText id="techNetName"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_TECHNICAL_NET}"
title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_TECHNICAL_NET}"
value="#{configurationHandler.config.SAP_INFO.TECHNICAL_NET_NAME}"
converter="spims.TechNetNameConverter" size="23" maxlength="14"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-TECHNICAL_NET_NAME']}">
<f:validateLength maximum="14" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:inputText>
</h:panelGrid>
<h:panelGrid columns="1">
<rich:spacer width="1" height="15" />
<rich:spacer width="300" height="0"
style="border:1px solid #{a4jSkin.panelBorderColor}" />
<rich:spacer width="1" height="15" />
</h:panelGrid>
<h:panelGrid columns="2">
<h:panelGroup />
<h:message styleClass="error" id="carError" for="car" />
<h:outputText value="CAR:" />
<h:selectOneMenu id="car" label="CAR" style="width: 150px"
value="#{configurationHandler.config.SAP_INFO.CAR}"
converter="spims.CarConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-CAR']}">
<f:selectItems value="#{selectItemProvider.carList}" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:selectOneMenu>
<h:panelGroup />
<h:message styleClass="error" id="economyError" for="economy" />
<h:outputText value="Economy (in %):" />
<h:inputText id="economy" label="Economy" size="3"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-ECONOMY_BANDWIDTH']}"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-ECONOMY_BANDWIDTH']}"
value="#{configurationHandler.bandwidth.ECONOMY_BANDWIDTH}" />
<h:panelGroup />
<h:message styleClass="error" id="businessError" for="business" />
<h:outputText value="Business (in %):" />
<a4j:region>
<h:inputText id="business" label="Business Bandwidth" size="3"
maxlength="3"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-BUSINESS_BANDWIDTH']}"
value="#{configurationHandler.bandwidth.BUSINESS_BANDWIDTH}">
<a4j:support event="onchange" ajaxSingle="true"
reRender="economy,business,stream,panelError" />
</h:inputText>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error" id="streamError" for="stream" />
<h:outputText value="Stream (in %):" />
<a4j:region>
<h:inputText id="stream" label="Stream Bandwidth" size="3"
maxlength="3"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-STREAM_BANDWIDTH']}"
value="#{configurationHandler.bandwidth.STREAM_BANDWIDTH}">
<a4j:support event="onchange" ajaxSingle="true"
reRender="economy,business,stream,panelError" />
</h:inputText>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error" id="voiceError" for="voice" />
<h:outputText value="Voice (in Channels):" />
<h:inputText id="voice" label="Voice" size="3"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-VOICE_BANDWIDTH']}"
value="#{configurationHandler.config.SAP_INFO.VOICE_BANDWIDTH}">
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:inputText>
</h:panelGrid>
</h:panelGroup>
<h:panelGrid columns="3">
<rich:spacer width="15" height="1" />
<rich:spacer width="0" height="300"
style="vertical-align:middle;border:1px solid #{a4jSkin.panelBorderColor}" />
<rich:spacer width="15" height="1" />
</h:panelGrid>
<h:panelGrid columns="2" id="DLG_CONFIG_PNL_BASIC_PG_INTERFACES">
<h:panelGroup />
<h:message styleClass="error" id="serviceLevelError"
for="serviceLevel" />
<h:outputText value="Service Level:" />
<a4j:region>
<h:selectOneMenu id="serviceLevel" label="Service Level"
style="width: 150px"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-SERVICE_LEVEL']}"
value="#{configurationHandler.config.SAP_INFO.SERVICE_LEVEL}"
converter="spims.ServiceLevelConverter"
validator="spims.ServiceLevelValidator"
valueChangeListener="#{configurationHandler.changedServiceLevel}">
<f:selectItems value="#{selectItemProvider.serviceLevelList}" />
<a4j:support event="onchange" ajaxSingle="true"
focus="serviceLevel" limitToList="true" immediate="true"
onclick="document.getElementsByTagName('body')[0].style.cursor='wait'"
oncomplete="document.getElementsByTagName('body')[0].style.cursor='auto'"
status="DLG_CONFIG_PNL_CONTROL_REGION"
reRender="DLG_CONFIG_PNL_BASIC_PG_INTERFACES,DLG_CONFIG_PNL_CPE_TXT_IP_CROSS_LINK" />
</h:selectOneMenu>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error" id="protocolError" for="protocol" />
<h:outputText value="Protocol:" />
<a4j:region>
<h:selectOneMenu id="protocol" label="protocol" style="width: 150px"
value="#{configurationHandler.PROTOCOL}"
converter="spims.ProtocolConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-PROTOCOL']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-PROTOCOL']}"
valueChangeListener="#{configurationHandler.changedProtocol}">
<f:selectItems value="#{selectItemProvider.protocolList}" />
<a4j:support event="onchange" ajaxSingle="true" focus="protocol"
onclick="document.getElementsByTagName('body')[0].style.cursor='wait'"
oncomplete="document.getElementsByTagName('body')[0].style.cursor='auto'"
status="DLG_CONFIG_PNL_CONTROL_REGION" immediate="true"
limitToList="true" reRender="DLG_CONFIG_PNL_ALL" />
</h:selectOneMenu>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error" id="backupError" for="backup" />
<h:outputText value="Backup:" />
<a4j:region>
<h:selectOneMenu id="backup" label="Backup"
value="#{configurationHandler.config.SAP_INFO.BACKUP_TYPE}"
converter="spims.BackupConverter" validator="spims.BackupValidator"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-BACKUP_TYPE']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-BACKUP_TYPE']}"
valueChangeListener="#{configurationHandler.changedBackup}">
<f:selectItems value="#{selectItemProvider.backupList}" />
<a4j:support event="onchange" ajaxSingle="true" focus="backup"
onclick="document.getElementsByTagName('body')[0].style.cursor='wait'"
oncomplete="document.getElementsByTagName('body')[0].style.cursor='auto'"
status="DLG_CONFIG_PNL_CONTROL_REGION"
reRender="DLG_CONFIG_PNL_ALL" limitToList="true" />
</h:selectOneMenu>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_CMB_CPE_TYPE_ERROR"
for="DLG_CONFIG_PNL_BASIC_CMB_CPE_TYPE" />
<h:outputText value="Type:" />
<a4j:region>
<h:selectOneMenu id="DLG_CONFIG_PNL_BASIC_CMB_CPE_TYPE"
label="CPE Type" style="width: 150px"
value="#{configurationHandler.config.CPE_ROUTER.TYPE}"
converter="spims.CpeTypeConverter"
required="#{configurationHandler.mapMandatory['Configuration-CPE_ROUTER-TYPE']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-CPE_ROUTER-TYPE']}"
valueChangeListener="#{configurationHandler.changedCpeType}">
<f:selectItems value="#{selectItemProvider.cpeTypeList}" />
<a4j:support event="onchange" ajaxSingle="true"
focus="DLG_CONFIG_PNL_BASIC_CMB_CPE_TYPE"
onclick="document.getElementsByTagName('body')[0].style.cursor='wait'"
oncomplete="document.getElementsByTagName('body')[0].style.cursor='auto'"
status="DLG_CONFIG_PNL_CONTROL_REGION"
reRender="DLG_CONFIG_PNL_BASIC_PG_INTERFACES" limitToList="true" />
</h:selectOneMenu>
</a4j:region>
<h:panelGroup />
<h:message styleClass="error" id="loadSharingError" for="loadSharing" />
<h:outputText value="load-sharing:" />
<h:selectOneMenu id="loadSharing" label="load sharing"
value="#{configurationHandler.config.SAP_INFO.LOAD_SHARING}"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-LOAD_SHARING']}"
converter="spims.YesNoConverter">
<f:selectItems value="#{selectItemProvider.yesNoList}" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:selectOneMenu>
<h:panelGroup />
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_LBL_MULTI_VPN_ERROR"
for="DLG_CONFIG_PNL_BASIC_LBL_MULTI_VPN" />
<h:outputText value="#{msg.DLG_CONFIG_PNL_BASIC_LBL_MULTI_VPN}" />
<h:panelGrid columns="2">
<a4j:region>
<h:selectOneMenu id="DLG_CONFIG_PNL_BASIC_LBL_MULTI_VPN"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_MULTI_VPN}"
value="#{configurationHandler.config.SAP_INFO.MULTI_VPN}"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-MULTI_VPN']}"
valueChangeListener="#{configurationHandler.changedMultiVpn}"
converter="spims.YesNoConverter">
<f:selectItems value="#{selectItemProvider.yesNoList}" />
<a4j:support event="onchange" ajaxSingle="true" limitToList="true"
reRender="panelError,DLG_CONFIG_PNL_BASIC_TXT_MASTER_VPN_ID,
DLG_CONFIG_PNL_BASIC_TXT_MASTER_SAP_NO,DLG_CONFIG_PNL_BASIC_LBL_PE_FINAL_TYPE" />
</h:selectOneMenu>
<h:selectOneMenu id="DLG_CONFIG_PNL_BASIC_LBL_PE_FINAL_TYPE"
value="#{configurationHandler.config.SAP_INFO.PE_FINAL_TYPE}"
converter="spims.PEFinalTypeConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-PE_FINAL_TYPE']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-PE_FINAL_TYPE']}"
rendered="#{configurationHandler.mapVisible['Configuration-SAP_INFO-PE_FINAL_TYPE']}">
<f:selectItems
value="#{configurationHandler.selectItemsPEFinalType}" />
<a4j:support event="onchange" ajaxSingle="true" limitToList="true"
reRender="panelError,DLG_CONFIG_PNL_BASIC_TXT_MASTER_VPN_ID,
DLG_CONFIG_PNL_BASIC_TXT_MASTER_SAP_NO" />
</h:selectOneMenu>
</a4j:region>
</h:panelGrid>
<h:panelGroup />
<h:panelGrid>
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_TXT_MASTER_VPN_ID_ERROR"
for="DLG_CONFIG_PNL_BASIC_TXT_MASTER_VPN_ID" />
<h:message styleClass="error"
id="DLG_CONFIG_PNL_BASIC_TXT_MASTER_SAP_NO_ERROR"
for="DLG_CONFIG_PNL_BASIC_TXT_MASTER_SAP_NO" />
</h:panelGrid>
<h:outputText value="#{msg.DLG_CONFIG_PNL_BASIC_LBL_MASTER_SP_ID}" />
<h:panelGrid columns="3">
<h:inputText id="DLG_CONFIG_PNL_BASIC_TXT_MASTER_VPN_ID"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_MASTER_VPN_ID}" size="10"
maxlength="10"
title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_MASTER_VPN_ID}"
value="#{configurationHandler.config.SAP_INFO.MASTER_SAP_ID.VPN_ID}"
converter="spims.VpnIdConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-MASTER_SAP_ID-VPN_ID']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-MASTER_SAP_ID-VPN_ID']}">
<f:validateLength minimum="1" maximum="10" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:inputText>
<h:outputText value="." />
<h:inputText id="DLG_CONFIG_PNL_BASIC_TXT_MASTER_SAP_NO"
label="#{msg.DLG_CONFIG_PNL_BASIC_LAB_MASTER_SAP_NO}" size="6"
maxlength="6" title="#{msg.DLG_CONFIG_PNL_BASIC_TIT_MASTER_SAP_NO}"
value="#{configurationHandler.config.SAP_INFO.MASTER_SAP_ID.SAP_NO}"
converter="spims.SapNoConverter"
required="#{configurationHandler.mapMandatory['Configuration-SAP_INFO-MASTER_SAP_ID-SAP_NO']}"
disabled="#{!configurationHandler.mapEnabled['Configuration-SAP_INFO-MASTER_SAP_ID-SAP_NO']}">
<f:validateLength maximum="6" />
<a4j:support event="onblur" reRender="panelError" ajaxSingle="true"
limitToList="true" />
</h:inputText>
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
</ui:composition>
</html>