segunda-feira, 25 de janeiro de 2010

ADF 11g adicionando auto sugestão em um input

ADF 11g adicionando auto sugestão em um input no ADF 11g é muito simples criar, o auto complementar para campos inputText, vejamos um exemplo.
Crie um projeto ADF Faces no JDeveloper 11g.

Clique em New Application, coloque um nome para o projeto, selecione Generic Application e clique em next.
Na caixa Avaliable selecione ADF Faces em clique no Add(ALT+D) veja:

image

Coloque um nome em seu projeto, clique em next se quiser alterar o nome padrão do primeiro pacote. Senão clique em Finish.

 

 

 



Crie uma nova página JSF.
Adicione à página que acabou de criar um componente af:inputText veja:

image

Com o botão direito clique sobre o inputText
Vá em Insert inside input text e clique em ADF Faces.

 

 

Na Janela que se abriu selecione Auto Suggest Behavior e clique em ok.image

Aparecera a seguinte tela, para você setar o conjunto de itens que irá conter essa sugestão.
image 

Bom ainda não criamos nenhum bean para esse projeto, teremos que criar agora vejamos:
Clique na seta para baixo na tela acima, aparecerá uma nova janela, clique em Edit.
Aparecerá outra janela em Managed Bean clique no botão New...
Crie seu Managed Bean.
Em Method clique em New... e de um nome para o método.
Ufaa =D
Veja:

image 

Agora clique em OK e depois OK novamente.
Para demonstração vou colocar alguns itens fixo. Veja a implementação do nosso método.

   1: /**
   2:  *
   3:  * @param parâmetro contém o texto passado pelo value no nosso input text
   4:  * @return
   5:  */
   6: public List autoSugestao(String parametro) {
   7:     //array de nomes para o exemplo
   8:     String[] itensNomes = {"Abreu","Gonçalves","Junior","Alexandre","Andrade"};
   9:     
  10:     //Criando uma lista de SelectItem para o retorno que serão associados ao suggest
  11:     List<SelectItem> listNomesEncontrados = new ArrayList<SelectItem>();
  12:     for (String s : itensNomes) {
  13:         if(s.startsWith(parametro) || s.endsWith(parametro))
  14:             listNomesEncontrados.add(new SelectItem(s));
  15:     }
  16:     return listNomesEncontrados;
  17: }


Muito simples não =), veja o exemplo, abaixo funcionando.


image
É isso ai pessoal fica a dica. e bons códigos.
Abaixo o download do projeto.


 
Obrigado!

Marcadores: ,


sexta-feira, 22 de janeiro de 2010

ADF 11g gerenciando Popup via ManagedBean

Uma das características do ADF 11g, é poder gerenciar um Popup, por um ManagedBean.
Crie um projeto no JDeveloper 11G
Como exemplo vou criar um projeto simples somente com um view, um bean e uma Página jsp.

Nesta Página insira um componente popup, dentro do popup insira um componente Dialog, para termos os botões ok e cancel por default.Set a propriedade  contentDelivery como lazy assim garantimos um “refresh” nos componentes.
Insira também um componente OutputText, para vermos as modificações.

JDeveloper com a Página do Popup

Agora criaremos um ManagedBean para a nossa aplicação, insira também um botão ou qualquer outro componente que gere um evento na página jsp. Defina sua propriedade PartialSubmit como true veja

image

Crie um Action para o botão e defina como corpo do método como abaixo

   1: public String actionChamaPopup() {
   2:     FacesContext context = FacesContext.getCurrentInstance();
   3:  
   4:     StringBuilder script = new StringBuilder();
   5:     script.append("var popup = AdfPage.PAGE.findComponent('").append("popID").append("'); ").append("if (!popup.isPopupVisible()) { ").append("var hints = {}; \n" +
   6:             " hints[AdfRichPopup.HINT_ALIGN] = AdfRichPopup.ALIGN_AFTER_START;\n" +
   7:             " hints[AdfRichPopup.HINT_ALIGN_ID] = 'botaoID';\n ").append("popup.show(hints);}");
   8:     ExtendedRenderKitService erks =
   9:         Service.getService(context.getRenderKit(),
  10:                            ExtendedRenderKitService.class);
  11:     erks.addScript(context, script.toString());
  12:     setTexto("Exemplo");
  13:     return null;
  14: }

Neste método você descreve o script para chamar a popup,  define o alinhamento, e quem a popup deve pegar como base para se alinhar


Posições de alinhamento
ALIGN_AFTER_START
ALIGN_AFTER_END
ALIGN_BEFORE_START
ALIGN_BEFORE_END
ALIGN_END_AFTER
ALIGN_END_BEFORE
ALIGN_START_AFTER
ALIGN_START_BEFORE


Agora o projeto em execução


image


Abaixo está o fonte do projeto, divirta-se :D

Marcadores: ,


This page is powered by Blogger. Isn't yours?

Assinar Postagens [Atom]