Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 26th, 2012  |  syntax: None  |  size: 2.43 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. GWT AutoSuggest In JSP
  2. vendorSuggestBox = new SuggestBox(new SuggestionOracle()); //client package
  3.  
  4. public class SuggestionOracle extends SuggestOracle { //shared package
  5.  
  6. public boolean isDisplayStringHTML() {
  7.     return true;
  8. }
  9.  
  10. @SuppressWarnings("unchecked")
  11. public void requestSuggestions(Request request, Callback callback) {
  12.     ItemMovementRemoteServiceAsync service=GWT.create(ItemMovementRemoteService.class);
  13.     service.getVendors(request, new SuggestionCallback(request,callback));
  14. }
  15.  
  16. @SuppressWarnings("unchecked")
  17. class SuggestionCallback implements AsyncCallback {
  18.     private SuggestOracle.Request req;
  19.     private SuggestOracle.Callback callback;
  20.  
  21.     public SuggestionCallback(SuggestOracle.Request _req, SuggestOracle.Callback _callback) {
  22.         req=_req;
  23.         callback=_callback;
  24.     }
  25.  
  26.     public void onFailure(Throwable caught) {
  27.         callback.onSuggestionsReady(req, new SuggestOracle.Response());
  28.     }
  29.  
  30.     public void onSuccess(Object result) {
  31.         callback.onSuggestionsReady(req, (SuggestOracle.Response) result);
  32.     }
  33.  
  34. }
  35.  
  36.  
  37.  
  38. public SuggestOracle.Response getVendors(Request req) { //server package
  39.     Connection db=null;
  40.     PreparedStatement ps=null;
  41.     ResultSet rs=null;
  42.     SuggestOracle.Response resp = new SuggestOracle.Response();
  43.     List<Suggestion> suggestions=new ArrayList<Suggestion>();
  44.     int count=0;
  45.  
  46.     try {
  47.         db=Database.open("ACM0");
  48.         ps=db.prepareStatement(
  49.             " SELECT VE_CD,upper(VE_NAME) VE_NAME" +
  50.             " FROM AP.VE_WEB " +
  51.             " WHERE (VE_NAME NOT LIKE 'AC Moore%') " +
  52.             "   AND (lower(VE_NAME) LIKE ? OR VE_CD LIKE ?)" +
  53.             " ORDER BY VE_NAME");
  54.         ps.setString(1, "%"+req.getQuery().toLowerCase()+"%");
  55.         ps.setString(2, "%"+req.getQuery().toLowerCase()+"%");
  56.         rs=ps.executeQuery();
  57.         while(rs.next() && count < 25) {
  58.             suggestions.add(new ASuggestion(rs.getString("VE_NAME").trim()+"-"+rs.getString("VE_CD").trim()));
  59.             count++;
  60.         }
  61.         resp.setSuggestions(suggestions);
  62.     } catch (Exception ex) {
  63.         ex.printStackTrace();
  64.     } finally {
  65.         Database.close(db);
  66.     }
  67.     return resp;
  68. }
  69.  
  70.  
  71.  
  72. public class ASuggestion implements IsSerializable, Suggestion { //shared package model object
  73.  
  74. private String s;
  75.  
  76. public ASuggestion(){}
  77. public ASuggestion(String s) {
  78.     this.s=s;
  79. }
  80.  
  81. public String getDisplayString() {
  82.     return s;
  83. }
  84.  
  85. public String getReplacementString() {
  86.     return s;
  87. }