Suggestion Box .. ajuda?

Boa tarde ^^’

eu quero fazer uma suggestion box do richfaces …

achei esse exemplo

http://livedemo.exadel.com/richfaces-demo/richfaces/suggestionBox.jsf;jsessionid=6B3BB406D2131A4B2416AC49AD5CCA7D?c=suggestionBox&tab=usage

mas não entendi como fazer pro meu projeto…

gostaria de ligar ajuda em uma tabela do meu banco…

alguem ajuda?

mt obrigado

[]'s

Bom meu Metodo pra Buscar eh assim…


public Collection<Concessionaria> autoCompleteConcessionarias(Object event){
		Map<String, Object> parametros = new HashMap<String, Object>();
		parametros.put("nome", event.toString() + '%');
		Collection<Concessionaria> myList = new HashSet<Concessionaria>();
		myList = new DAOFactory().getConcessionariaDAO().listaPorCriterio("from Concessionaria p where p.nomeFantasia like :nome", parametros);
		return myList;
	}

ele faz uma busca no banco
fazendo um where nome like ’ %’

A proposito n era você q tava com 1 problema d formulario Dinamico???
se for você pode me ajudar :smiley:

valeu colored… estou indo tentar

daki a poko posto reposta xD

intaum… era eu sim… e ainda continuo

^^’

mas qual o seu problema??
talvez eu consiga ajudar… mas nao garanto mt coisa nao

abraços

eU N CONSEGUII FAZER ND KKKK…

O Q VC PUDER ME FALAR TA OTIMO

Colored…

por favor tem coo vc postar esse metodo

"listaPorCriterio(“from Concessionaria p where p.nomeFantasia like :nome”, parametros); "

valeu!

mas oq vc qr dinamico??

inputs?? combobox??

especifica ae… agnt aprende junto

/* Faz uma Listagem por Parametros, (Tem q Escrever a Query)) */
	public List<T> listaPorCriterio(String query, Map<String,Object> parametros){
		Query q = session.createQuery(query);
		
		for(String chave : parametros.keySet()){
			q.setParameter(chave, parametros.get(chave));
		}
		
		return q.list();
	}

então precisava de textbox dinamicos mas tipos uns 3,4 por linha…

Esse metodo ai eh 1 generico :smiley:

blz… indo tentar

intaum eu consegui colocar os inputs… mas não consigo fazer pegar os valores

import javax.faces.component.html.HtmlPanelGrid;
import org.richfaces.component.html.HtmlInputText;
import com.sun.webui.jsf.component.Label;

    public String btnInserir_action() {
        // TODO: Processe a ação. O valor de retorno é um nome de caso
        // de navegação em que nulo retornará à mesma página.
        
        label = new Label();
        label.setText("Alternativa ");
        inputText = new HtmlInputText();
        
        
        
        
        gridAlternativa.getChildren().add(label);
        gridAlternativa.getChildren().add(inputText);
        return null;
    }

esse foi o metodo… tbm consegui por java script… mas eu perdi o script xD

ms dah uma procurada no google que vc encontra facil

valeeu

aff

devo c mt noob em java

não entendi o metodo para escrever a query =/

eu to usando hibernate com spring

meus metodo de acesso tão assim oh

    public List ObterporDescricao(String Descricao) throws DataAccessException
    {
        Query qry = em.createQuery("SELECT u FROM Logradouro u WHERE u.descLogradouro LIKE :Descricao");
        qry.setParameter("Descricao", "%"+Descricao+"%");
        return qry.getResultList();
        
    }

Qual Metodo???

pra obter a lista com o parametro nome

do jeito q vc fez… eu não to conseguindo fazer

/* Faz uma Listagem por Parametros, (Tem q Escrever a Query)) */   
    public List<T> listaPorCriterio(String query, Map<String,Object> parametros){   
        Query q = session.createQuery(query);   // entityManager.oMetodoPraCriarQuery..
           
        for(String chave : parametros.keySet()){   
            q.setParameter(chave, parametros.get(chave));   
        }   
           
        return q.getResultList();
    }

Aki dps é

public Collection<Logradouro> autoCompleteLogradouro(Object event){   
        Map<String, Object> parametros = new HashMap<String, Object>();   
        parametros.put("descricao", event.toString() + '%');   
        Collection<Logradouro> myList = new HashSet<Logradouro>();   
        myList = new DAOFactory().getLogradouroDAO().listaPorCriterio("from Logradouro l where l.descLogradouro like :descricao", parametros);   // new DAOFactory().getLogradouroDAO() você usa seu objeto pra pegar o Metodo ObterporDescricao
        return myList;   
    }  

consegui fazer não =/

vo postar o codigo… não sei oq tah errado =/

complicado isso

    public Collection<Logradouro> autoCompleteLogradouro(Object event)
    {
        Map<String, Object> parametros = new HashMap<String, Object>();
        parametros.put("descricao", event.toString() + '%');
        Collection<Logradouro> myList = new HashSet<Logradouro>();
        myList = logradouroFacade.getLogradouroDao().listaPorCriterio("from Logradouro l where l.descLogradouro like :descricao", parametros);   // new DAOFactory().getLogradouroDAO() você usa seu objeto pra pegar o Metodo ObterporDescricao
        return myList;

    }

isso tah no beam da pagina

    public List ObterporLatitudeLongitude(String latitude, String longitude) throws DataAccessException
    {
        Query qry = em.createQuery("SELECT u FROM Objeto u WHERE u.latitObjeto = :latitude AND u.longitObjeto = :longitude");
        qry.setParameter("latitude", latitude);
        qry.setParameter("longitude", longitude);

        return qry.getResultList();

    }

isso tah no Dao

e meu jsp tah assim

                            <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:a4j="http://richfaces.org/a4j" xmlns:f="http://java.sun.com/jsf/core"
                                xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.org/rich" xmlns:ui="http://java.sun.com/jsf/facelets">
                                <script type="text/javascript">
                                    function printObjectsSelected(output, sgcomponent){
                                        output.innerHTML=sgcomponent.getSelectedItems().pluck('Logradouro');
                                    }
                                </script>
                                <h:form id="form">
                                    <h:panelGrid columns="2">
                                        <h:outputText value="Logradouro: "/>
                                        <h:panelGrid border="0" cellpadding="0" cellspacing="0" columns="2">
                                            <h:inputText id="statesinput" style="margin:0px;"/>
                                        </h:panelGrid>
                                    </h:panelGrid>
                                    <rich:suggestionbox fetchValue="#{ObjetoPage.logradouro.descLogradouro}" for="statesinput" height="200" id="suggestion"
                                        onobjectchange="printObjectsSelected(#{rich:element('Logradouro')}, #{rich:component('suggestion')});"
                                        suggestionAction="#{ObjetoPage.autoCompleteLogradouro}" tokens="," usingSuggestObjects="true" var="cap" width="200">
                                       <h:column>
                                            <h:outputText value="#{ObjetoPage.logradouro.descLogradouro}" />
                                        </h:column>
                                    </rich:suggestionbox>
                                </h:form>
                            </ui:composition>

valeeu!

Que erro dá neh…
seu metodo Obter ta funcionando???

E pq vc n tenta criar um suggestion qse sem parametros e dps vai acrescentando os itens nele…

nen dah erro

simplismente não funciona… como se não tivesse indo pro evento

vo tentar tirar os parametros

valeeu

Intaum eu tentei e tah dando NullPointerExpetion

                    <rich:suggestionbox fetchValue="#{ObjetoPage.logradouro.descLogradouro}" for="inputLogradouro" height="200" id="suggestion"
                                        
                                        suggestionAction="#{ObjetoPage.autoCompleteLogradouro}" tokens="," usingSuggestObjects="true" var="cap" width="200">
                                       <h:column>
                                            <h:outputText value="#{ObjetoPage.logradouro.descLogradouro}" />
                                        </h:column>
                                    </rich:suggestionbox>

Substitui

<h:column>   
                        <h:outputText value="#{ObjetoPage.logradouro.descLogradouro}" />   
                    </h:column>

Por:

<h:column>   
                        <h:outputText value="#{cap.descLogradouro}" />   
                    </h:column>

Test It :smiley: