quarta-feira, 5 de setembro de 2007

Atualizando componentes com actionListeners

Esse é um assunto que eu devo ter demorado uns 3 dias para descobrir como fazia.

O meu problema era: Eu tinha dois faces com componentes diferentes e eu simplesmente não conseguia colocar partialTriggers nos componentes (que estavam em facets separados).

O jeito foi então, colocar um ActionListener (ou um SelectionListener, dependendo do componente) e pelo actionListener forçar a atualização pelo código... mas como fazer?

Exemplo do componente:

<af:commandButton text="Botao atualizavel" actionnListenter="#{managedBeanTest.processAction}"

Já o componente que vai ser atualizado, é colocado normalmente na pagina jspx -- a única diferença é que você terá que bindar o componente pai (o painelLayout ou qualquer outro) e o componente que vai ser atualizado no managedBean.

o código do proccessAction é mais ou menos assim:

public void proccessAction(ActionEvent event){
//componente a ser atualizado
outputText.setValue("Esse componente foi atualizado via codigo!");
//parentComponet = componente pai
AdfFacesContext.getCurrentInstance().addPartialTarget(parentComponet);
}



O único truque é pegar a instanciá do adffaces e adicionar o componente pai para ser atualizado. =D
(Eu tentei colocar o componente diretamente, mas não deu certo =( )

Lembrando de colocar o componente que vai ativar a atualização como partialSubmit=true para que não haja um refresh total da página.

terça-feira, 4 de setembro de 2007

O que é ADF?

Primeiro, é necessário explicar o que é JSF, já que o ADF é uma implementação do JSF.

JSF é um framework Java que auxilia o desenvolvedor a criar interfaces de usuários (UI - User Interfaces).
Ao contrário de outros framework, que são orientados pelo modelo MVC (Model-View-Controller -- onde cada
parte da aplicação é separada e só sabe fazer a sua parte o Controller controla o acesso aos componentes View;
Model contem as regras de negocio; View só contem as interfaces) o JSF é component-driven ("orientado a componentes": onde o
estado dos componentes são salvos na sessão a cada request e são restaurados depois do request).

Usando esse framework, a Oracle criou seu ADF Rich Client, que nada mais é que os componentes JSF (botões, tabelas...) remodelados
e potencializados para as tecnologias Oracle -- usando além do component-driven, o MVC.

Em 2006 a Oracle doou o ADF Faces para a Apache, pelos seguintes motivos:

"(...)Oracle believes in Java, our middleware and tools strategy relies heavily on the Java platform. We also believe JSF is the most promisingusertechnology. Java needs to have a good component based UI framework to compete with .Net. In order for JSF to be successful andaccelerate itsadoption, Oracle decided to provide (free of charge) a rich set of UI components to help web application developers who chooseJavaServer Faces. Therefore we decided to get behind JSF and MyFaces by making the ADF Faces donation to Apache. Moving forward, we are hoping that this opensource contribution will spark additional interest and that more vendors are going to join the MyFaces project and strengthenthe Faces community.(...)"

Então, o ADF virou MyFaces Trinidad.

Mas isso não quis dizer que o ADF morreu. Até porque, segundo a propria Oracle: "O ADF é extremamente importante para as tecnologias Oracle, já que nossas UI são baseados nele".

Então a Oracle, usando da licença da Apache, criou suas novas versões do ADF -- incluindo o 11g que utiliza, além do JSF, o Ajax e toda tecnologia da Web 2.0.