Here is a sample. It might contain errors but displays what I
basically tried to do.
// Obviously there is an asynchronous version of this interface
public interface MyService extends RemoteService {
public String requestStatusMessage();
public void doLengthyComputation();
}
MyServiceAsync service = (MyServiceAsync) GWT.create(MyService.class);
Timer t = new MyTimer();
public void callMainService() {
t.scheduleRepeating(1000);
ServiceDefTarget endpoint = (ServiceDefTarget) service;
endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() + "mymodule");
AsyncCallback<String> callback = new AsyncCallback<String>() {
// whatever the outcome, stop the polling timer
public void onFailure(Throwable caught) {
t.cancel();
// do something to show failure
}
public void onSuccess(String result) {
t.cancel();
// do something else
}
// start the polling timer right before calling the main service
t.run();
service.doLengthyComputation();
}
public class MyTimer extends Timer {
public void run() {
poll();
}
public void poll() {
ServiceDefTarget endpoint = (ServiceDefTarget) service;
endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() +
"mymodule");
AsyncCallback<String> callback = new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
System.out.println("polling failed");
}
public void onSuccess(String result) {
System.out.println(result);
}
service.requestStatusMessage();
}
}
On 23 Set, 13:17, Lothar Kimmeringer <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Palietta schrieb:
>
> > So I created a client-side Timer which, every second, polls another
> > remote service that simply returns this state variable. This timer is
> > started right before the main service is called, and is halted after
> > the service returns.
>
> > Being these calls asynchronous, this method didn't work. All scheduled
> > Timer calls returned after the main service altogether.
>
> > I know it might be a dumb question, but it would really be helpful for
> > me to be able to provide the user with continued feedback on the state
> > of the service they called.
>
> Can you provide some source how you call the long running task
> and create the timer? I have some ideas why this fails, but
> it's only guessing without knowing more.
>
> Independent from that you might google for "Comet GWT". This
> might be a solution for you as well.
>
> Regards, Lothar
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---