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:
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:
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.
Aparecera a seguinte tela, para você setar o conjunto de itens que irá conter essa sugestão.
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:
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.
É isso ai pessoal fica a dica. e bons códigos.
Abaixo o download do projeto.
Obrigado!
Marcadores: java, JDeveloper 11g
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.
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
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
Abaixo está o fonte do projeto, divirta-se :D
Marcadores: java, JDeveloper 11g
Assinar Postagens [Atom]