Pessoal, estou tentando montar um componente para ser um teclado virtual, sendo assim, as minhas telas irão implementar esse componente e conforme clicado nos botões, irá preencher os inputtext. Mas nesta tela, tenho vários inputtext, e eu preciso saber para qual input vou enviar os dados do teclado virtual.
Não estou conseguindo encontrar nada para capturar qual input está com foco. Lembrando que, não sei o nome deste input, pois cada tela tem nomes variados.
Minha dúvida é como capturar o input que está com foco, e enviar para ele os valores do teclado virtual.
O teclado virtual foi feito com commandButton do primefaces 2.2.
Teclado:
<ui:define name="body">
<p:panel id="display" header="Teclado" style="margin-top:10px;">
<br/>
<h:inputText id="campo" value="#{teclado.campo}"/>
<h:inputText id="campo1" value="#{teclado.campo2}"/>
</p:panel>
<p:panel>
<p:commandButton value="7" action="#{teclado.preencher('7')}" update="bodyForm:display"/>
<p:commandButton value="8" action="#{teclado.preencher('8')}" update="bodyForm:display"/>
<p:commandButton value="9" action="#{teclado.preencher('9')}" update="bodyForm:display"/>
...
Bean:
@ManagedBean(name = "teclado")
@SessionScoped
public class Teclado {
private String campo;
private String campo2;
public String getCampo() {
return campo;
}
public void setCampo(String campo) {
this.campo = campo;
}
public String getCampo2() {
return campo2;
}
public void setCampo2(String campo2) {
this.campo2 = campo2;
}
public void preencher(String campo) {
this.campo += campo;
}
Neste caso, estou preenchendo apenas o um campo, mas preciso de algo genérico, pois saberei o nome do campo somente quando capturar quem está com o foco.