Gwt Suggest Box :
Hi Every One ,
This is my first blog .so please bare me if i need changes.
so what iam going to give you is a code on suggest box , how to make a callback to server for obtaining the suggestions using Suggest.Response and Request
so first let me create the files that are necessary .
On Client Side :
1. a suggestService which extends Remote Service
public interface SuggestService extends RemoteService {
public SuggestOracle.Response getSuggestions(SuggestOracle.Request req);
public static class Util {
public static SuggestServiceAsync getInstance(){
SuggestServiceAsync suggestService= (SuggestServiceAsync)GWT.create(SuggestService.class);
((ServiceDefTarget)suggestService).setServiceEntryPoint(GWT.getModuleBaseURL()+"/suggestions");
return suggestService;
}
}
}
2.an interface for AsyncCallback
public interface SuggestServiceAsync {
public void getSuggestions(SuggestOracle.Request req,AsyncCallback callback);
}
3.a suggestionClass which implements IsSerializable and Suggestion where this will be usefull in obtaining the suggestion supplied from server
public class Suggestions implements IsSerializable, Suggestion
{
private String suggestions; public String getDisplayString() {
return suggestions;
}
public String getReplacementString() {
return suggestions;
}
public Suggestions() { } //Constructor With Suggestion
public Suggestions(String suggestion) {
this.suggestions=suggestion;
}
}
1. a class that implements The SuggestService and extends the RemoteServiceServlet
public class SuggestServiceImpl extends RemoteServiceServlet implements
SuggestService {
public Response getSuggestions(Request req) {
SuggestOracle.Response response=new SuggestOracle.Response();
ArrayList oracle=new ArrayList();
oracle.add("Afghanistan");
oracle.add("Albania");
oracle.add("Algeria");
oracle.add("American Samoa");
oracle.add("Andorra");
oracle.add("Angola");
oracle.add("Anguilla");
oracle.add("Antarctica");
oracle.add("Antigua And Barbuda");
oracle.add("Argentina");
oracle.add("Belgium");
oracle.add("Belize");
oracle.add("China");
oracle.add("Christmas Island");
oracle.add("Cocos (Keeling) Islands");
oracle.add("Colombia");
oracle.add("Comoros");
oracle.add("Congo, The Democratic Republic Of The");
oracle.add("Gabon");
oracle.add("Gambia");
oracle.add("Georgia");
oracle.add("Germany");
oracle.add("Ghana");
List mySuggestions = new ArrayList();
for(int i=0;i <oracle.size();i++){
mySuggestions.add(oracle.get(i).toString());
}
response.setSuggestions(mySuggestions);
return response;
}
}
now from your OnModuleLoad() , call as
OnModuleLoad(){
SuggestionOracle oracle=new SuggestionOracle();
SuggestBox box=new SuggestBox(oracle,new MultipleTextBox());
box.setWidth("300px");
HorizontalPanel hPanel=new HorizontalPanel();
hPanel.add(new Label("Suggest Box"));
hPanel.add(box);
RootPanel.get().add(hPanel);
}
u can check the Image for Demonstration
In My Next Article We Will see how to Create a suggest box which works similarly like the Gmail's "To" Field
Read More
This is my first blog .so please bare me if i need changes.
so what iam going to give you is a code on suggest box , how to make a callback to server for obtaining the suggestions using Suggest.Response and Request
so first let me create the files that are necessary .
On Client Side :
1. a suggestService which extends Remote Service
public interface SuggestService extends RemoteService {
public SuggestOracle.Response getSuggestions(SuggestOracle.Request req);
public static class Util {
public static SuggestServiceAsync getInstance(){
SuggestServiceAsync suggestService= (SuggestServiceAsync)GWT.create(SuggestService.class);
((ServiceDefTarget)suggestService).setServiceEntryPoint(GWT.getModuleBaseURL()+"/suggestions");
return suggestService;
}
}
}
2.an interface for AsyncCallback
public interface SuggestServiceAsync {
public void getSuggestions(SuggestOracle.Request req,AsyncCallback callback);
}
3.a suggestionClass which implements IsSerializable and Suggestion where this will be usefull in obtaining the suggestion supplied from server
public class Suggestions implements IsSerializable, Suggestion
{
private String suggestions; public String getDisplayString() {
return suggestions;
}
public String getReplacementString() {
return suggestions;
}
public Suggestions() { } //Constructor With Suggestion
public Suggestions(String suggestion) {
this.suggestions=suggestion;
}
}
4. The main important class is SuggestionOracle class which extends SuggestOracle .suggestOracle is used to create suggestions associated with a specific query string
public class SuggestionOracle extends SuggestOracle {
public void requestSuggestions(SuggestOracle.Request req,SuggestOracle.Callback callback) {
SuggestService.Util.getInstance().getSuggestions(req,new ItemRequestCallback(req,callback));
}
public boolean isDisplayStringHTML() {
return true;
}
public class ItemRequestCallback implements AsyncCallback{
private SuggestOracle.Request req;
private SuggestOracle.Callback callback;
public void onFailure(Throwable caught) {
callback.onSuggestionsReady(req,new SuggestOracle.Response()); caught.printStackTrace();
}
public void onSuccess(Object result) {
callback.onSuggestionsReady(req,(SuggestOracle.Response) result);
}
public ItemRequestCallback(SuggestOracle.Request _req,SuggestOracle.Callback _callback) {
this.req=_req; this.callback=_callback;
}
}
}
we have written all the files that are necessary on the client side.now we will move to server sidepublic class SuggestionOracle extends SuggestOracle {
public void requestSuggestions(SuggestOracle.Request req,SuggestOracle.Callback callback) {
SuggestService.Util.getInstance().getSuggestions(req,new ItemRequestCallback(req,callback));
}
public boolean isDisplayStringHTML() {
return true;
}
public class ItemRequestCallback implements AsyncCallback{
private SuggestOracle.Request req;
private SuggestOracle.Callback callback;
public void onFailure(Throwable caught) {
callback.onSuggestionsReady(req,new SuggestOracle.Response()); caught.printStackTrace();
}
public void onSuccess(Object result) {
callback.onSuggestionsReady(req,(SuggestOracle.Response) result);
}
public ItemRequestCallback(SuggestOracle.Request _req,SuggestOracle.Callback _callback) {
this.req=_req; this.callback=_callback;
}
}
}
1. a class that implements The SuggestService and extends the RemoteServiceServlet
public class SuggestServiceImpl extends RemoteServiceServlet implements
SuggestService {
public Response getSuggestions(Request req) {
SuggestOracle.Response response=new SuggestOracle.Response();
ArrayList
oracle.add("Afghanistan");
oracle.add("Albania");
oracle.add("Algeria");
oracle.add("American Samoa");
oracle.add("Andorra");
oracle.add("Angola");
oracle.add("Anguilla");
oracle.add("Antarctica");
oracle.add("Antigua And Barbuda");
oracle.add("Argentina");
oracle.add("Belgium");
oracle.add("Belize");
oracle.add("China");
oracle.add("Christmas Island");
oracle.add("Cocos (Keeling) Islands");
oracle.add("Colombia");
oracle.add("Comoros");
oracle.add("Congo, The Democratic Republic Of The");
oracle.add("Gabon");
oracle.add("Gambia");
oracle.add("Georgia");
oracle.add("Germany");
oracle.add("Ghana");
List
for(int i=0;i
mySuggestions.add(oracle.get(i).toString());
response.setSuggestions(mySuggestions);
return response;
}
}
now from your OnModuleLoad() , call as
OnModuleLoad(){
SuggestionOracle oracle=new SuggestionOracle();
SuggestBox box=new SuggestBox(oracle,new MultipleTextBox());
box.setWidth("300px");
HorizontalPanel hPanel=new HorizontalPanel();
hPanel.add(new Label("Suggest Box"));
hPanel.add(box);
RootPanel.get().add(hPanel);
}
u can check the Image for Demonstration
In My Next Article We Will see how to Create a suggest box which works similarly like the Gmail's "To" Field