[RESOLVIDO] a4j:support não funciona com h:graphicImage

Boa Tarde, tenho um modal panel e quando ele clicar no botão de fechar (uma imagem) gostaria que o a4j chamasse um método no meu MB onde esse método so faz\ pessoa = new Pessoa();

mas não funciona, se eu coloco o a4j dentro do h:graphicImage ele simplesmente não fecha o modal panel. Alguém pode ajudar?

O A4j support e a imagem estão dentro do F:FACET

<%@include file="../include/tagLibs.jsp"%>

<rich:modalPanel id="mpTermosEditar" width="500" autosized="true"
	moveable="true" resizeable="false">
	<a4j:keepAlive ajaxOnly="true" beanName="MenuFiscalizacaoRegistroView" />
	<f:facet name="header">
		<h:outputText value="Termos Editar" />
	</f:facet>
	<f:facet name="controls">
		<h:graphicImage onclick="#{rich:component('mpTermosEditar')}.hide()"
			value="images/close.png" styleClass="hidelinks" >
			<a4j:support event="onclick" action="#{MenuFiscalizacaoRegistroView.novaPessoa}" ></a4j:support>
		</h:graphicImage>
	</f:facet>
	<h:form id="formVisualizarTermosEditar">
		
		<h:panelGroup id="panelGroupVisualizarTermosEditar">

			<h:outputText 	id="outTipoDeTermoEditar"
							value="Tipo do Termo: #{MenuFiscalizacaoRegistroView.termo.tipoTermo.tipoTermoDescricao}"
							rendered="#{MenuFiscalizacaoRegistroView.termo.documento.doctoStatus == 4}">
			</h:outputText>
			<br>
				<rich:listShuttle 	id="selListShuttleBemApreendidoEditar" 
									sourceValue="#{MenuFiscalizacaoRegistroView.arrayListBemApreendidos}"
									targetValue="#{MenuFiscalizacaoRegistroView.arrayListBemApreendidosSalvar}"
									var="tipoBemApreendido" converter="converteTipoBemApreendido"
									sourceCaptionLabel="Tipos de Bens Apreendidos"
									targetCaptionLabel="Tipos de Bens Apreendidos para Salvar"
									copyControlLabel="Copiar"
									removeControlLabel="Remover"
									copyAllControlLabel="Copiar Tudo"
									removeAllControlLabel="Remover Tudo"
									fastOrderControlsVisible="false"
									orderControlsVisible="false"
									rendered="#{MenuFiscalizacaoRegistroView.termo.tipoTermo.tipoTermoCodigo==1}"
									requiredMessage="Campo Bens Apreendidos obrigatório" >
				<rich:column width="100%">
					<h:outputText value="#{tipoBemApreendido.tipoBemApreendidoDescricao} "/>
				</rich:column>
        	</rich:listShuttle>
			<br>
			
			<rich:listShuttle 	id="selListShuttleNaturezaEditar" 
								sourceValue="#{MenuFiscalizacaoRegistroView.arrayListTipoNatureza}"
								targetValue="#{MenuFiscalizacaoRegistroView.arrayListTipoNaturezaSalvar}"
								var="tipoNatureza" converter="converteTipoNatureza"
								sourceCaptionLabel="Tipos Natureza"
								targetCaptionLabel="Tipos Natureza para Salvar"
								copyControlLabel="Copiar"
								removeControlLabel="Remover"
								copyAllControlLabel="Copiar Tudo"
								removeAllControlLabel="Remover Tudo"
								fastOrderControlsVisible="false"
								orderControlsVisible="false"				
								rendered="#{MenuFiscalizacaoRegistroView.termo.tipoTermo.tipoTermoCodigo==2}"			
							 	requiredMessage="Campo Tipo Natureza obrigatório">
					<rich:column width="100%">
						<h:outputText value="#{tipoNatureza.tipoNaturezaDescricao} "/>
					</rich:column>
        		</rich:listShuttle>
        
		<br>
			
			<h:outputLabel 	id="outNumeroTermoEditar"
							value="Nº Termo" >
			</h:outputLabel>
			<h:inputText 	id="inNumeroTermoEditar"
							value="#{MenuFiscalizacaoRegistroView.termo.termoNumero}" 
							required="true"
							requiredMessage="Campo Nº Termo obrigatório">
			</h:inputText>
			<br>
			
			<h:outputLabel 	id="outNomeEditar"
							value="Nome" >
			</h:outputLabel>
			<h:inputText 	id="inNomeEditar"
							value="#{MenuFiscalizacaoRegistroView.labelPessoa}"
							required="true"
							requiredMessage="Campo Nome obrigatório">
				<a4j:support	oncomplete="#{rich:component('mpPessoa')}.show()"
								event="onclick"
								reRender="mpPessoa"
								ajaxSingle="true"
								focus="inCPFCNPJ">
				</a4j:support>		
			</h:inputText>
			<a4j:commandLink 	id="cbBuscarNomeEditar"
								oncomplete="#{rich:component('mpPessoa')}.show()"
								reRender="mpPessoa"
								ajaxSingle="true"
								ignoreDupResponses="true"
								focus="inCPFCNPJ">
									<h:graphicImage style="cursor:pointer" 
													value="images/lupa.png" >
									</h:graphicImage>
			</a4j:commandLink>
			<br>
			
			<h:outputLabel 	id="outEnderecoEditar"
							value="Endereço" >
			</h:outputLabel>
			<h:inputText 	id="inEnderecoEditar"
							value="#{MenuFiscalizacaoRegistroView.labelEndereco}"
							required="true"
							requiredMessage="Campo Endereço obrigatório">
				<a4j:support	oncomplete="#{rich:component('mpEndereco')}.show()"
								event="onclick"
								reRender="mpEndereco"
								ajaxSingle="true"
								focus="inCEP">
				</a4j:support>		
			</h:inputText>
			<a4j:commandLink 	id="cbBuscarEnderecoEditar"
								oncomplete="#{rich:component('mpEndereco')}.show()"
								reRender="mpEndereco"
								ajaxSingle="true"
								ignoreDupResponses="true"
								focus="inCEP">
									<h:graphicImage style="cursor:pointer" 
													value="images/lupa.png" >
									</h:graphicImage>
			</a4j:commandLink>
			<br>
			
			<h:outputLabel 	id="outDataHoraEditar" 
							value="Data/Hora" >
			</h:outputLabel>
			<rich:calendar	id="inDataHoraEditar"
							value="#{MenuFiscalizacaoRegistroView.termo.termoDataHora}" 
							datePattern="dd/MM/yyyy HH:mm" 
							showApplyButton="true"
							required="true"
							requiredMessage="Campo Data/Hora obrigatório">
			</rich:calendar>
			<br>
			
			<h:outputLabel 	id="outDescricaoEditar"
							value="Descrição" >
			</h:outputLabel>
			<h:inputTextarea 	id="inDescricaoEditar" 
								value="#{MenuFiscalizacaoRegistroView.termo.termoDescricao}" 
								required="true"
								requiredMessage="Campo Descrição obrigatório">
			</h:inputTextarea>
			<br>
			
			<a4j:region >			
				<h:panelGroup id="panelGroupEnquadramentoEditar">
					<h:outputLabel 	id="outArtigoEditar"
									value="Artigo" >
					</h:outputLabel>
					<h:selectOneMenu	id="selArtigoEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.artigo.enquadramentoArtigoCodigo}"
										required="false"
										requiredMessage="Campo Artigo obrigatório">
						<f:selectItem 	itemValue="" itemLabel="Selecione..."/>
						<f:selectItems 	value="#{MenuFiscalizacaoRegistroView.retornarArtigo}"/>							
					</h:selectOneMenu>
								
					<h:outputLabel 	id="outItemEditar"
									value="Item" >
					</h:outputLabel>
					<h:selectOneMenu 	id="selItemEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.item.enquadramentoItemCodigo}"
										required="false"
										requiredMessage="Campo Item obrigatório">
						<f:selectItem itemValue="" itemLabel="Selecione..."/>
						<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarItem}"/>								
					</h:selectOneMenu>
								
					<h:outputLabel 	id="outParagrafoEditar"
									value="Parágrafo" >
					</h:outputLabel>
					<h:selectOneMenu 	id="selParagrafoEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.paragrafo.enquadramentoParagrafoCodigo}"
										required="false"
										requiredMessage="Campo Parágrafo obrigatório">
						<f:selectItem itemValue="" itemLabel="Selecione..."/>
						<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarParagrafo}"/>
					</h:selectOneMenu>
								
					<h:outputLabel 	id="outIncisoEditar" 
									value="Inciso" >
					</h:outputLabel>
					<h:selectOneMenu 	id="inIncisoEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.inciso.enquadramentoIncisoCodigo}"
										required="false"
										requiredMessage="Campo Inciso obrigatório">
						<f:selectItem itemValue="" itemLabel="Selecione..."/>
						<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarInciso}"/>
					</h:selectOneMenu>
								
					<h:outputLabel 	id="outAlineaEditar"
									value="Alinea" >
					</h:outputLabel>
					<h:selectOneMenu	id="selAlineaEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.alinea.enquadramentoAlineCodigo}"
										required="false"
										requiredMessage="Campo Alinea obrigatório">
						<f:selectItem itemValue="" itemLabel="Selecione..."/>
						<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarAlinea}"/>
					</h:selectOneMenu>
								
					<h:outputLabel 	id="outLeiEditar"
									value="Lei" >
					</h:outputLabel>
					<h:selectOneMenu 	id="selLeiEditar"
										value="#{MenuFiscalizacaoRegistroView.enq.tipoLei.tipoLeiCodigo}"
										required="false"
										requiredMessage="Campo Lei obrigatório">
						<f:selectItem itemValue="" itemLabel="Selecione..."/>
						<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarTipoLei}"/>
					</h:selectOneMenu>
					<a4j:commandButton	id="cbAdicionarEditar"
										value="Adicionar"
										action="#{MenuFiscalizacaoRegistroView.adicionarEnquadramento}"
										reRender="panelGroupEnquadramentoEditar, mpMensagem">
					</a4j:commandButton>
							
					<rich:dataTable	id="dataTableEditar"
									var="enq"
									value="#{MenuFiscalizacaoRegistroView.termo.termoEnquadramentos}"
									rowClasses="linha1,linha2"
									rows="10"
									width="100%">
						<f:facet name="header">
							<h:outputText value="Enquadramentos" />
						</f:facet>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Artigo" />
							</f:facet>
							<h:outputText value="#{enq.artigo.enquadramentoArtigoDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Item" />
							</f:facet>
							<h:outputText value="#{enq.item.enquadramentoItemDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Parágrafo" />
							</f:facet>
							<h:outputText value="#{enq.paragrafo.enquadramentoParagrafoDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Inciso" />
							</f:facet>
							<h:outputText value="#{enq.inciso.enquadramentoIncisoDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Alínea" />
							</f:facet>
							<h:outputText value="#{enq.alinea.enquadramentoAlineDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Lei" />
							</f:facet>
							<h:outputText value="#{enq.tipoLei.tipoLeiDescricao}" />
						</rich:column>
						<rich:column>
							<f:facet name="header">
								<h:outputText value="Remover" />
							</f:facet>
                			<a4j:commandLink 	id="btRemoverEditar" 
                								action="#{MenuFiscalizacaoRegistroView.removerDaListaEditar}"
                        					 	reRender="dataTableEditar" 
                        					 	ajaxSingle="true">
                    			<h:graphicImage style="cursor:pointer,vertical-align:bottom" value="images/delete.png" />
                    			<f:setPropertyActionListener value="#{enq}" target="#{MenuFiscalizacaoRegistroView.enq}" />
                			</a4j:commandLink>	                												
						</rich:column>
					</rich:dataTable>
					<rich:datascroller align="center" for="dataTableEditar" maxPages="10" page="1"
								                           renderIfSinglePage="false"/>
				</h:panelGroup>
			</a4j:region>
			<br>
			
			<h:outputLabel 	id="outLocalDeposito" 
							value="Local do Depósito" >
			</h:outputLabel>
			<h:inputText 	id="inLocalDeposito"
							value="#{MenuFiscalizacaoRegistroView.labelEnderecoDeposito}"
							required="true"
							requiredMessage="Campo Local do Depósito obrigatório">
				<a4j:support	oncomplete="#{rich:component('mpLocalDeposito')}.show()"
								event="onclick"
								reRender="mpLocalDeposito"
								ajaxSingle="true"
								focus="inCEP">
				</a4j:support>		
			</h:inputText>
			<a4j:commandLink 	id="cbBuscarLocalDeposito"
								oncomplete="#{rich:component('mpLocalDeposito')}.show()"
								reRender="mpLocalDeposito"
								ajaxSingle="true"
								ignoreDupResponses="true"
								focus="inCEP">
									<h:graphicImage style="cursor:pointer" 
													value="images/lupa.png" >
									</h:graphicImage>
			</a4j:commandLink>
			<br>
						
			<h:outputLabel 	id="outAgenteFiscal" 
							value="Agente Fiscal" >
			</h:outputLabel>
			<h:selectOneMenu 	id="selAgenteFiscal" 
								value="#{MenuFiscalizacaoRegistroView.termo.termoAgenteFiscal.colaborador.pessoCodigo}"
								required="true"
								requiredMessage="Campo Agente Fiscal obrigatório">
				<f:selectItem itemValue="" itemLabel="Selecione..."/>
				<f:selectItems value="#{MenuFiscalizacaoRegistroView.retornarColaborador}"/>
			</h:selectOneMenu>
			<br>
			
			<a4j:commandButton	id="cButtonSalvarRascunho"
								value="Salvar Rascunho!"
								action="#{MenuFiscalizacaoRegistroView.salvarTermoRascunho}"
								oncomplete="#{rich:component('mpMensagem')}.show()"
								reRender="formVisualizarTermosEditar, mpMensagem, dataTableTermos">
			</a4j:commandButton>
						
			<a4j:commandButton 	id="cButtonSalvarDefinitivamente"
								value="Salvar Definitivamente!"
								action="#{MenuFiscalizacaoRegistroView.salvarTermoDefinitivamente}"
								oncomplete="#{rich:component('mpMensagem')}.show()"
								reRender="formVisualizarTermosEditar, mpMensagem, dataTableTermos">
			</a4j:commandButton>
			
			
		</h:panelGroup>
		
	</h:form>
</rich:modalPanel>

Boa tarde,

observe que seu graphicImage já utiliza o evento onclick e vc está tentando colocar o a4j no evento onclick. Deve estar provocando algum conflito.
Tente assim:

<f:facet name="controls">  
   <h:graphicImage value="images/close.png" styleClass="hidelinks" >  
      <a4j:support event="onclick" action="#{MenuFiscalizacaoRegistroView.novaPessoa}" oncomplete="#{rich:component('mpTermosEditar')}.hide()"></a4j:support>  
   </h:graphicImage>  
</f:facet> 

funciona :?:

Não funciona, quando clico no botão para fechar ele não faz nada.

Tentei colocar um a4j:commandButton e chamar a action mas no modo DEBUG nem aparece chamando a ACTION

	<f:facet name="controls">

		<a4j:commandButton 	image="images/close.png" 
							action="#{MenuFiscalizacaoRegistroView.novaPessoa}" 
							onclick="#{rich:component('mpTermosEditar')}.hide()"
							styleClass="hidelinks">
		</a4j:commandButton>
	</f:facet>

EDITADO

Valeu pela ajuda ROCK, fiz assim e funcionou tanto pro CommandButton tanto pra sua solução, acabei utilizando a sua que ja era o padrao que estavamos utilizando, era só colocar dentro de um form, como segue abaixo:

	<f:facet name="controls">    
   		<h:form> 
   			<h:graphicImage value="images/close.png" styleClass="hidelinks" >    
      			<a4j:support event="onclick" action="#{MenuFiscalizacaoRegistroView.novoTermo}" oncomplete="#{rich:component('mpTermosEditar')}.hide()"></a4j:support>    
   			</h:graphicImage>    
   		</h:form>   		
	</f:facet>

ótimo :!: :thumbup:

respondi o primeiro problema q percebi e não vi que também estava fora do form… :roll: