2014-05-07 2 views
0

Je veux avoir l'événement de recherche comme le google + .Comme lorsque nous recherchons l'ami, le premier bloc est mis en évidence et lorsque nous entrons dans la clé, sa valeur vient dans la zone de texte .J'ai atteint jusqu'à la recherche de la valeur et rend la lettre en italique qui est en train de taper.pour mettre en surbrillance le premier bloc dans la liste déroulante pendant la recherche

public class AlphaKeyPress implements KeyUpHandler 
{ 
    public void onKeyUp(KeyUpEvent event) 
    { 
     String ab =textbox.getText(); 

     if(ab.length()>0) 
     { 
      greetingService.server(ab,new AsyncCallback<String>() 
      { 
       @Override 
       public void onFailure(Throwable caught) 
       { 
        Window.alert("Invalid"); 
       } 

       @Override 
       public void onSuccess(String result) 
       { 
        System.out.println("At the client side..."+result); 

        if(result.isEmpty()) 
        { 
         System.out.println("result"); 

         p.clear(); 

         Label lii = new Label("not found"); 

         p.setVisible(true); 
         p.setBorderWidth(1); 
         p.add(lii); 

         RootPanel.get().add(p); 
        } 
        else 
        { 
         p.clear(); 
         p.setVisible(false); 
         p.setVisible(true); 
         p.setBorderWidth(1); 

         int l=0; 
         int count=0; 

         for (String retval: result.split("/")) 
         { 
          String match=textbox.getText(); 
          String html = retval.replace(match, "<b><i>" + match + "</i></b>"); 

          final HTML htm=new HTML(html); 

          htm.setStyleName("green"); 

          if(retval.contains(match)) 
          { 
           if(l==0) 
           { 
            htm.setHTML(html); 
            if(count==0) 
            { 
             htm.addStyleName("add"); 
             count++; 
            } 
            else 



            p.add(htm); 

            l++; 


           } 
           else 
           { 
            htm.setHTML(html); 

            p.add(htm); 

            l--; 
           } 
          } 
          RootPanel.get().add(p); 

          htm.addClickHandler(new ClickHandler() 
          { 
           public void onClick(ClickEvent event) 
           { 
            String str=htm.getText(); 
            textbox.setText(str); 
           } 
          }); 
         } 
        } 
       } 

Répondre

0

Lorsque vous itérez les résultats, au lieu de faire for (String retval: result.split("/")), vous pouvez faire:

String[] results = title.split("/"); 
for (int i=0; i<results.length; i++) { 
    if (i==0) { 
    //add result with highlighted html 
    } else { 
    //add result normally 
    } 
} 

Si vous voulez avoir une idée sur le html, cliquez sur le bouton droit sur Google+ , puis "Inspecter l'élément".

UPDATE (basé sur les commentaires):

Pour ajouter la souris sur les contrôles, il suffit de suivre le même chemin que vous avez fait avec le clickHandler:

htm.addMouseOverHandler(new MouseOverHandler() { 

    @Override 
    public void onMouseOver(MouseOverEvent event) { 
    //add your css 
    } 
}); 

htm.addMouseOutHandler(new MouseOutHandler() { 

    @Override 
    public void onMouseOut(MouseOutEvent event) { 
    // remove your css   
    } 
}); 
+0

merci, mais je veux supprimer ou mettre css sur la souris sur l'événement. –

+0

Mis à jour le commentaire. Merci! – apanizo

+0

désolé mais ne fonctionne pas dedans, je veux chercher comme dans google + .my premier bloc de txt ci-dessous la zone de texte par défaut en surbrillance mais si nous passons la souris sur les blocs de texte ou appuyez sur la touche fléchée déplacer la souris ou arrêter la touche fléchée en appuyant sur, puis css coller sur le dernier bloc .... –

Questions connexes