Arquivo para categoria IDE

Adf 11g, chamar af:commandButton a partir da tecla enter no af:inputText

Trabalhar com Javascript com Adf normalmente não é uma tarefa fácil, pois o Adf 11 trabalha de uma forma diferente com seus componentes, não contendo por exemplo onclick, onblur entre outros, diretamente no componente.
Para realizar essas ações nos componentes é preciso trabalharmos com o Af:clientListener e o componente adf deve estar com a opções clientComponent marcada como True.
Pois bem, baseado nisso, tive alguns problemas para trabalhar com isso, até porque não sou nenhum expert em javascript, e precisava resolver este problema de uma forma simples e rápida.
Vamos a solução então. Como havia dito selecione seu componente af:inputText e marque a opção clientComponent como true, e insira em seu corpo a opção af:clientListener com o nome da função javascript e o evento keypress. Veja no exemplo.


<af:inputText value="#{bindings.nomeInteressado.inputValue}"
id="it7"
clientComponent="true">

<af:clientListener method="executarEnter" type="keyPress"/>
</af:inputText>

Repare que no af:clientListener existe o método executarEnter esta é uma função javascript veja abaixo como declarar ela

<f:facet name="metaContainer">
<af:resource type="javascript">

function executarEnter(event){
 tecla = event.getKeyCode();
 if( tecla == AdfKeyStroke.ENTER_KEY ){
 var button = AdfPage.PAGE.findComponentByAbsoluteId('cb5');
 event.cancel();
 AdfActionEvent.queue(button,true);
 }
 }
 </af:resource>

</f:facet>

Está Facet deve ser colocada dentro da tag <af:document></af:document>, nesta função vemos algumas bibliotecas javascript do Adf. O que está função executa, primeiramente ela obtém a tecla pressionada, após isso verifica se a tecla pressionada é o ENTER.
Depois disso vamos procurar o nosso botão para executar sua ação, no meu caso o id do botão é cb5, obtendo o botão vamos acionar sua ação, mais uma vez utilizando a biblioteca do Adf AdfActionEvent.queue(button,true); isto faz com que o botão seja executado.
o adf tem muitos métodos interessantes em sua biblioteca, vale a pena dar uma olhada na api online http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e12046/oracle/adf/view/js/base/AdfPage.html

, , ,

Deixe um comentário

JDeveloper gerenciando domínio Weblogic externo

Recentemente descobri como configurar o JDeveloper para iniciar e gerenciar uma instância de um domínio externo. Vamos aos passos.
Primeiramente é preciso configurar o servidor no JDeveloper da seguinte forma.
Vá na aba Application Server Navigator e clique com o botão direito. Selecione New Application Server.

Aba Application Servers

Depois no Wizard selecione Integrated Server

Selecionando Integrated Server

Clique em Next, Coloque um nome para o Servidor, Marque também a opção Let JDeveloper manage the lifecycle for this Server Instance. Marcando está opção irá habilitar os dos inputs Domain Directory e Server Instance.

  • Domain Directory: Diretório do domínio o meu no exemplo é: /media/Arquivos/Oracle/Middleware_11_1_1_4/user_projects/domains/bpm_base_domain
  • Server instace: Diretório da instância do servidor o meu no exemplo é: /media/Arquivos/Oracle/Middleware_11_1_1_4/user_projects/domains/bpm_base_domain/servers/AdminServer

Configurando diretório e server instance

Clique em Next,  coloque o usuário e a senha do seu domínio:

Usuário e Senha do domínio

Clique em Next. Agora coloque as configurações do domínio como no screenshot a seguinte:

Configurações do Domínio

Agora clique em Finish. Veja como ficou.

Aba Applciation Server

Agora vamos ao nosso projeto e colocar o nosso servidor integrado como padrão. Vá no menu
Application|Application Properties. Na opção Run selecione o servidor que acabamos de criar e clique em ok.

Configurando o application server no projeto

Agora para podermos iniciar o nosso servidor vamos no menu Run | Start Server Instance agora selecione o servidor criado.

Servidor em execução

Pronto agora nosso servidor weblogic rodando dentro do jdev.

, , ,

Deixe um comentário

Insert complexo com relacionamento no ADF BC 11g

Olá a todos, este post surgiu de uma necessidade minha para uma inserção em mais de uma tabela, existem outras formas de fazer. Agradeço ao meu amigo Caio Gallo por ter me explicado como realizar esse tipo de inserção. O meu exemplo vai ser uma inserção por relacionamento, algo extremamente simples como Autor e seus livros, imagine se você quisesse inserir o autor do livro pelo relacionamento do livro com o autor.
Bom vamos começar com a parte que interessa, primeiramente crie um projeto FusionDeveloper  no JDevelper veja a estrutura:

Após isso vamos criar nosso Application Module e o EO’s e VO’s de nossa aplicação. Para isso clique com o botão direito no Model e depois em New. Na tela selecione Adf Busines Components e depois selecione Business Components from Tables

Clique em ok. Depois selecione a conexão com o banco e clique em ok

Depois disso clique no botão query e selecione as duas tabelas, como na imagem abaixo

feito isso clique em Next, selecione as duas tabelas também para cria os Updatable View Objects das nossas tabelas, este lugar é onde vamos realizar nossas operações de inserts.

clique em Next novamente e crie os Read-Only View Objects como feito nos Updatable View Objects. Na próxima tela dê um nome para nosso Application Moduel.

clique em Next, se você quiser na próxima tela poderá pedir para o JDeveloper criar o diagram, clique em Next novamente e depois em Finsh.
Veja a estrutura do projeto como ficou até agora

Agora selecione o VO, LivroView clique em java, depois clique no lápis em Java Classes selecione

  • Generate View Objec Class e
  • Generate View Row Class

Após isso clique em ok.

no VO AutorView Faça a mesma coisa.

O próximo passo é criar a classe Java do AppModule, abra o AppModule vá em Java e em Java Classes clique no lápis,
e selecione o item Generate Application Module Class e clique em ok.
Outra coisa a se fazer no nosso application module é colocar o nossos VO para ser utilizados, para isso clique na opção Data Model, em Available View Objects selecione LivroView e AutorView e coloque no lado direito DataModel.

Por padrão quando criamos nossos VOs ele já adiciona no AppModule porém, se criarmos outro VO teremos que fazer isso da forma descrita acima.

Agora Abra o LivroViewImpl.java e crie um método no meu caso vou o método vai se chamar inserindoLivro. Vou colocar a inserção como HardCode mesmo só para o exemplo do post, veja o código como ficou.

Para executarmos o nosso exemplo vou fazer de forma bem simples apenas colocar um botão em uma página e fazer a chamada do método pelos bindings do ADF. Mais antes disso é preciso que possa aparecer nosso método na interface do binding. Para isso abra o LivroView vá em Java em Client Interface clique no lápis, aparecerá uma tela com o nosso método, selecione ele e clique na seta para direita e depois clique em ok, veja na imagem abaixo.

Pronto, Agora vamos na aba de Data Controls clicamos no refresh e nosso método aparecerá veja

Clique no inserindoLivro e arraste para a jsp. E selecione a opção de Adf Button.
Depois é só executar a aplicação e testar

Download do Código e Base

, , ,

2 Comentários

%d blogueiros gostam disto: