Estive procurando na web e encontrei vários tutoriais utilizando evento do a4j em componentes próprios através da tag clientBehavior,
porém já tentei de todas as formas e não estou conseguindo passar o evento do a4j para o componente, somente o ajax nativo do jsf.
Alguém tem uma solução ou já passou por isso que possa me dar uma luz?
Segue o código!
Componente básico de teste
<!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:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j">
<composite:interface>
<composite:attribute name="value"
type="java.lang.String"
shortDescription="Valor do input"
required="true"/>
<composite:attribute name="tamanho"
type="java.lang.String"
shortDescription="Tamanho do input"/>
<composite:attribute name="style"
type="java.lang.String"
shortDescription="Estilo do input"/>
<composite:attribute name="onkeydown"
type="java.lang.String"
shortDescription="Evento ao pressionar tecla"/>
<composite:attribute name="title"
type="java.lang.String"
shortDescription="Titulo do input"/>
<composite:attribute name="tamanhoMaximoTexto"
type="java.lang.String"
default="300"
shortDescription="Tamanho máximo de caracteres aceito"/>
<composite:attribute name="bloqueado"
type="boolean"
shortDescription="campo bloqueado"/>
<composite:clientBehavior name="inputchange"
event="change"
targets="#{cc.id}:input" />
<composite:clientBehavior name="inputkeyup"
event="keyup"
targets="#{cc.id}:input"
/>
</composite:interface>
<composite:implementation>
<h:inputText value="#{cc.attrs.value}"
onkeydown="#{cc.attrs.onkeydown}"
title="#{cc.attrs.title}"
autocomplete="off"
onkeyup="this.value = this.value.toUpperCase();"
maxlength="#{cc.attrs.tamanhoMaximoTexto}"
onfocus="this.select();"
disabled="#{cc.attrs.bloqueado}"
id="input"
style="#{cc.attrs.bloqueado ? 'background: #F2F2F2; color: black;': ''} #{cc.attrs.style}"/>
</composite:implementation>
</html>
Utilizando o componente, se usar f:ajax no lugar de a4j:ajax funciona perfeitamente, porém preciso de alguma funcionalidade do a4j!
<inloc:inputText value="#{contaContabilListagem.descricaoFilter}"
onkeydown="return tabOnEnter(this,event,1);"
style="width: 100%;"
title="Descrição da conta contábil"
id="pesquisaDescricao">
<a4j:ajax event="inputkeyup"
execute="@this"
render=":formContaContabilListagem:tabela"/>
</inloc:inputText>