Hellos!!!

I have the solution you searching for:

check this code: :D

/**
 *
 */
import java.util.Date;

import pt.quantum.padroes.client.services.LoginService;
import pt.quantum.padroes.client.services.LoginServiceAsync;
import pt.quantum.padroes.client.util.LogUtils;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Event.NativePreviewEvent;
import com.google.gwt.user.client.Event.NativePreviewHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * @author brunolopes
 *
 */
public class UserIdleTimeOutControl {

        Timer mInactivityTimer;
        HandlerRegistration mHandlerRegistration;
        int mTimeoutInMillis = 5*60000;//thirty minutes max user inactivity

        public UserIdleTimeOutControl() {

            mInactivityTimer = new Timer() {
                @Override
                public void run() {
                    // Logout
                    mHandlerRegistration.removeHandler();
                    mInactivityTimer.cancel();
                    LoginServiceAsync service =
GWT.create(LoginService.class);
                    service.logout(new AsyncCallback<Void>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            LogUtils.error(caught.getMessage());
                            LogUtils.loggingOut();
                        }

                        @Override
                        public void onSuccess(Void result) {
                            LogUtils.info("User idle for "+
(mTimeoutInMillis/1000)/60 +" minutes" +
                                    " logout occur : " + new Date());
                            LogUtils.loggingOut();
                        }
                    });

                }
            };
            mInactivityTimer.schedule(mTimeoutInMillis);

            NativePreviewHandler handler;
            handler = new NativePreviewHandler() {
                @Override
                public void onPreviewNativeEvent(NativePreviewEvent event) {
                    mInactivityTimer.schedule(mTimeoutInMillis);
                    LogUtils.info("User Event fired occur: " + new Date());

                }
            };
            mHandlerRegistration = Event.addNativePreviewHandler(handler);
        }
    }


Basically it listens all the interface events and if no event occurs in X
minutes session invalidate and logout will be called.

Is something like this you looking for ?

Hope it helps! :

Bruno

On Sat, Jun 26, 2010 at 2:37 PM, andrew_d_mackenzie <
[email protected]> wrote:

> Thanks for posing the question, it seems to be a recurring one and I
> have the same doubts.
>
> I find it slightly surprising that there is no standard answer, or
> tutorial on the subject....
>
> More pointers or descriptions of how others have covered this need
> would I think be appreciated by many!
>
> Google?
>
> --
> 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]<google-web-toolkit%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>

-- 
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.

Reply via email to