Hi Nikolay, both calls are done in the RENDER_RESPONSE(6) Phase.
With help of your instructions now I can see, that the second call is done from rich:tooltip.
This behaviour is reproducable.
I've tried some attributes of rich:tooltip e.g. mode in both variants(ajax/client) and attached(true/false). No effect on the doubled output in the logfile.
To fasten up the bugsearch I've marked the three tooltips inside of the page-code
regards roland
Output from catalina.log:
17.02.2009 21:58:47 core.hibernate.HibernateFilter doFilter
INFO: HibernateFilter.doFilter started...
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE RESTORE_VIEW(1)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER RESTORE_VIEW(1)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE APPLY_REQUEST_VALUES(2)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER APPLY_REQUEST_VALUES(2)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE PROCESS_VALIDATIONS(3)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER PROCESS_VALIDATIONS(3)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE UPDATE_MODEL_VALUES(4)
17.02.2009 21:58:47 core.rm.handler.MappingHandler setSelectedIdentifier
INFO: GenericMappingHandler - switch selectedIdentifier from null to Pressenliste Breite
17.02.2009 21:58:47 core.rm.dao.GenericMappingDAO listAll
INFO: Aufruf von GenericMappingDAO.listAll with identifier: Pressenliste Breite
17.02.2009 21:58:47 core.rm.dao.GenericMappingDAO listAll
INFO: GenericMappingDAO.getByQuery successfully finished, with size: 5
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER UPDATE_MODEL_VALUES(4)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE INVOKE_APPLICATION(5)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER INVOKE_APPLICATION(5)
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE RENDER_RESPONSE(6)
==>
==> FIRST CALL of getResult
==>
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: result: 1714722318
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: getResult called....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: getResult called....after....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
==>
==> SECOND CALL of getResult
==>
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: result: 1714722318
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: getResult called....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: getResult called....after....result: [core.rm.model.GenericMapping@19bdb65, core.rm.model.GenericMapping@1046822, core.rm.model.GenericMapping@509bfc, core.rm.model.GenericMapping@30cefd, core.rm.model.GenericMapping@65724d] selectedIdentifier: Pressenliste Breite
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO: NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
17.02.2009 21:58:47 core.rm.handler.MappingHandler getResult
INFO:
17.02.2009 21:58:47 org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER RENDER_RESPONSE(6)
17.02.2009 21:58:47 core.hibernate.HibernateFilter doFilter
INFO: HibernateFilter.doFilter sucessfully finished...
Output from stdout.log:
Hibernate: select genericmap0_.oid as oid7_, genericmap0_.identifier as identifier7_, genericmap0_.value as value7_ from pps_mappingtable genericmap0_ where genericmap0_.identifier=? order by genericmap0_.identifier asc, genericmap0_.value asc
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Unknown Source)
at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
at javax.faces.component.UIData.getValue(UIData.java:1054)
at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
at org.ajax4jsf.component.UIDataAdaptor.getRowIndex(UIDataAdaptor.java:311)
at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
at org.ajax4jsf.renderkit.RendererUtils.findComponentFor(RendererUtils.java:877)
at org.ajax4jsf.context.AjaxContextImpl.convertId(AjaxContextImpl.java:391)
at org.ajax4jsf.context.AjaxContextImpl.addRegionsFromComponent(AjaxContextImpl.java:331)
at org.ajax4jsf.component.AjaxActionComponent.setupReRender(AjaxActionComponent.java:96)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:60)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
at org.ajax4jsf.component.AjaxViewRoot.broadcastAjaxEvents(AjaxViewRoot.java:340)
at org.ajax4jsf.application.AjaxViewHandler.processAjaxEvents(AjaxViewHandler.java:216)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:169)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)
FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Unknown Source)
at core.rm.handler.MappingHandler.getResult(MappingHandler.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
at org.apache.el.parser.AstValue.getValue(AstValue.java:114)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
at javax.faces.component.UIData.getValue(UIData.java:1054)
at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1644)
at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:65)
at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:59)
at org.richfaces.component.UIDataTable.createDataModel(UIDataTable.java:125)
at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:621)
at org.ajax4jsf.component.UIDataAdaptor.getRowIndex(UIDataAdaptor.java:311)
at javax.faces.component._ComponentUtils.idsAreEqual(_ComponentUtils.java:134)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:110)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
at javax.faces.component._ComponentUtils.findComponent(_ComponentUtils.java:107)
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:449)
at org.ajax4jsf.renderkit.RendererUtils.findComponentFor(RendererUtils.java:877)
at org.richfaces.renderkit.html.ToolTipRenderer.getTargetId(ToolTipRenderer.java:250)
at org.richfaces.renderkit.html.ToolTipRenderer.constructJSVariable(ToolTipRenderer.java:263)
at org.richfaces.renderkit.html.ToolTipRenderer.insertScript(ToolTipRenderer.java:221)
at org.richfaces.renderkit.html.HtmlToolTipRenderer.doEncodeEnd(HtmlToolTipRenderer.java:163)
at org.richfaces.renderkit.html.HtmlToolTipRenderer.doEncodeEnd(HtmlToolTipRenderer.java:172)
at org.richfaces.renderkit.html.ToolTipRenderer.doEncodeEnd(ToolTipRenderer.java:408)
at org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:135)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:522)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:231)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:102)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:286)
at org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:61)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:611)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:124)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:67)
at org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:115)
at org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
at org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:267)
at org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:489)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:163)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:172)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:293)
at org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:543)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:250)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:427)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:383)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at core.hibernate.HibernateFilter.doFilter(HibernateFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at core.rm.utils.CharsetFilter.doFilter(CharsetFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)
FacesContext.getCurrentInstance():org.apache.myfaces.context.servlet.FacesContextImpl@333b2e
The used JAVA-SRC:
public List<GenericMapping> getResult() {
log.info("");
log.info("result: "+ (this.result==null ? "RESULT-EMTPY" : this.result.hashCode()));
log.info("");
log.info("");
log.info("getResult called....result: "+ this.result + " selectedIdentifier: "+ this.selectedIdentifier);
log.info("");
//case 1: no result exists and nothing selected
if(this.result == null && this.selectedIdentifier == null) {
result = new ArrayList<GenericMapping>();
log.info("");
log.info("FIRST CASE - empty....");
log.info("");
}
if(this.result == null && this.selectedIdentifier != null){
//case 3: no result exists
result = new GenericMappingDAO().listAll(this.selectedIdentifier);
log.info("");
log.info("SECOND CASE - empty but id-set....");
log.info("");
}
log.info("");
log.info("getResult called....after....result: "+ this.result + " selectedIdentifier: "+ this.selectedIdentifier);
log.info("");
log.info("");
log.info("NIKOLAY WANTS THIS:::::: ==> FacesContext.getCurrentInstance(): "+ FacesContext.getCurrentInstance());
log.info("");
Thread.dumpStack();
System.out.println("FacesContext.getCurrentInstance():" + FacesContext.getCurrentInstance());
return this.result;
}
Page-code:
<a4j:region id="outside" renderRegionOnly="true">
<a4j:region id="combo_region">
<a4j:outputPanel id="combo_placeholder" layout="none">
<h:panelGrid id="id_combo" columns="8" styleClass="standardTableBordered">
<h:outputLabel value="#{msgs.mapping_identifier_label}: " for="idList" />
<rich:comboBox id="idList" value="#{mappingHandler.selectedIdentifier}" suggestionValues="#{mappingHandler.allIdentifiers}"
directInputSuggestions="true" defaultLabel="#{msgs.mapping_combo_default}">
<a4j:support event="onselect" reRender="list_of_mappings,button_placeholder,combo_placeholder" ajaxSingle="true" />
</rich:comboBox>
<rich:spacer width="50" height="10" title="Here is a spacer..."/>
<a4j:commandLink ajaxSingle="true" id="newKeyLink"
oncomplete="#{rich:component('newKeyPanel')}.show()">
<h:graphicImage value="/images/edit.gif" style="border:0"/>
</a4j:commandLink>
<rich:toolTip id="toolNewKey" for="newKeyLink" value="#{msgs.tooltip_create_new_mappingkey}" mode="client" attached="false"/>
<a4j:commandLink ajaxSingle="true" id="deleteKeylink"
oncomplete="#{rich:component('deleteKeyPanel')}.show()"
rendered="#{mappingHandler.selectedIdentifier != null}">
<h:graphicImage value="/images/delete.gif" style="border:0"/>
<f:setPropertyActionListener value="#{mappingHandler.selectedIdentifier}"
target="#{mappingHandler.deletableIdentifier}" />
</a4j:commandLink>
<rich:toolTip id="toolDeleteKey" for="deletelink" value="#{msgs.tooltip_delete_mappingkey}" mode="client" attached="false"/>
<rich:message for="idList" />
</h:panelGrid>
</a4j:outputPanel>
</a4j:region> <!-- id is combo_region-->
<br/>
<a4j:region id="table_region" renderRegionOnly="true">
<rich:dataTable id="list_of_mappings" rows="10"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
cellpadding="0" cellspacing="0"
width="1000" border="0" var="record" value="#{mappingHandler.result}">
<f:facet name="header">
<h:outputText value="#{msgs.mapping_selected_header} #{mappingHandler.selectedIdentifier}"/>
</f:facet>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.mapping_oid}" />
</f:facet>
<h:outputText value="#{record.oid}" />
</rich:column>
<rich:column filterBy="#{record.value}" filterEvent="onkeyup" sortBy="#{record.value}">
<f:facet name="header">
<h:outputText value="#{msgs.mapping_value}" />
</f:facet>
<h:inputText id="mapping_value" value="#{record.value}" label="#{msgs.mapping_value}" required="true">
<f:validateLength minimum="1" />
</h:inputText>
<rich:message for="mapping_value">
<f:facet name="passedMarker">
<h:graphicImage value="/images/passed.gif" />
</f:facet>
<f:facet name="errorMarker">
<h:graphicImage value="/images/error.gif" />
</f:facet>
</rich:message>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="#{msgs.mapping_actions}" />
</f:facet>
<a4j:commandLink id="deletelink" action="#{mappingHandler.deleteMapping}" reRender="list_of_mappings"
onclick="if(!confirm('#{msgs.js_delete_mapping}')){return false;};" ajaxSingle="true">
<h:graphicImage value="/images/delete.gif" style="border:0"/>
<f:setPropertyActionListener value="#{record.oid}" target="#{mappingHandler.oidForDeletion}" />
</a4j:commandLink>
<rich:toolTip id="toolTable" for="deletelink" value="#{msgs.tooltip_delete_mapping}" mode="client" attached="false"/>
</rich:column>
</rich:dataTable>
</a4j:region> <!-- id is table_region-->
<br/>
<a4j:region id="button_region_all">
<a4j:outputPanel id="button_placeholder" layout="none">
<h:panelGrid id="buttons_all" columns="2" styleClass="standardTableBordered" rendered="#{mappingHandler.selectedIdentifier != null}">
<a4j:commandButton value="#{msgs.button_label_new_mapping}" onclick="this.disabled=true;" action="#{mappingHandler.createNewMapping}"
reRender="list_of_mappings,buttons_all" ajaxSingle="true" />
<h:commandButton value="#{msgs.button_label_save}" action="#{mappingHandler.save}" />
</h:panelGrid>
</a4j:outputPanel>
</a4j:region>
</a4j:region> <!-- id is outside -->