Alterar propriedade de componente (JSF)

9 respostas
Giulliano

Eu gostaria de saber se é possível alterar a propriedade de um component da minha app…

tipo assim:

public void alteraRegistro(ActionEvent evento){ 

UIParameter param=null;
param = (UIParameter) evento.getComponent().findComponent("editar");
FacesContext face = null;
face = FacesContext.getCurrentInstance();
UIComponent botao = null;
botao = face.getViewRoot().findComponent("Cadastrar");
botao.setRendered(false); 
}

não sei se é assim q se faz…mas não consigo achar nada na net…

querm tiver uma luz eu agradeço…

[/]'s

9 Respostas

Leozin

Olá

Faça um cast pro tipo do teu componente, por exemplo (HtmlCommandButton) findComponent( “xxx” );

Depois disso basta modificar a propriedade desejada, tal como: botao.setDisabled( true );

Giulliano

Fazer um cast pra onde vc diz ???

Leozin

Aqui ó

Giulliano

Leozin

desculpe a ignorância se eu estiver dizendo besteira…mas por que eu deveria dar um cast se BOTAO é do tipo UIComponent e a propriedade setRendered(false) é aceita por qualquer tipo de componente ?

Leozin

Giulliano:
Leozin

desculpe a ignorância se eu estiver dizendo besteira…mas por que eu deveria dar um cast se BOTAO é do tipo UIComponent e a propriedade setRendered(false) é aceita por qualquer tipo de componente ?

Mas você disse que queria mudar uma propriedade certo? Se for só o Rendered eu acredito que não vai precisar de cast

Se ele é um UIComponent, você vai poder usar o setRendered(false). Caso tu queira mudar o text do botao por exemplo, tu pode dar o cast e depois um setValue( “OI SOU O BOTAO” ) :slight_smile:

nicholas.bittencourt

E no caso de eu alterar a propriedade de um componente “pai”?

Por exemplo…

<h:form id="enquete" onsubmit="updateRTEs();"> <h:outputLabel id="comentatioLabel" value="Comentário:" for="votoHtml"/> <custom:inputHtml id="votoHtml" value="#{enquetes.voto}" /> <h:commandButton id="btnVotar" value="Enviar Comentário" action="#{enquetes.votar}"/> </h:form>

Gostaria que, sempre que eu colocasse o custom:inputHtml/ dentro de um form, ele atualizasse o onSubmit do form que a função javascript sem que o desenvolvedor tivesse que se preocupar com isso. Alguem faz alguma ideia de como tratar isso?

O processo de findComponent e setOnSubmit eh tranquilo, mas como o encodeBegin do UIForm já teria sido executado, em que momento eu teria que me preocupar com esse set?

Leozin

meuForm = (HtmlForm) meuComponente.getParent();
meuForm.setOnSubmit( "alert(‘vc ganhou 1 milhao de reais’) " );

Giulliano

Eu deixei essa necessidade de lado…mas não consegui mexer na árvore direito…mais pra frente irei tentar novamente

valews mesmo assim…

nicholas.bittencourt

Leozin:
meuForm = (HtmlForm) meuComponente.getParent();
meuForm.setOnSubmit( "alert(‘vc ganhou 1 milhao de reais’) " );

E onde eu coloco isso? No encodeBegin? Porque nesse ponto o encodeBegin do Form já tera executado e, consequentemente, o onSubmit terá sido escrito.

Criado 23 de julho de 2007
Ultima resposta 25 de jul. de 2007
Respostas 9
Participantes 3