Author: dongxu
Date: Thu Sep 12 04:22:25 2013
New Revision: 1522338
URL: http://svn.apache.org/r1522338
Log:
fixed issue#48, and add the original IdleTimer
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java?rev=1522338&r1=1522337&r2=1522338&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
Thu Sep 12 04:22:25 2013
@@ -31,6 +31,7 @@ import org.apache.hupa.client.mapper.Act
import org.apache.hupa.client.place.ComposePlace;
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
import org.apache.hupa.client.place.ContactPlace;
import org.apache.hupa.client.place.FolderPlace;
import org.apache.hupa.client.place.HupaPlace;
@@ -67,13 +68,18 @@ import org.apache.hupa.client.bundles.Hu
>>>>>>> could change main panel dynamically currently by clicking the compose
>>>>>>> button
=======
import org.apache.hupa.client.place.DefaultPlace;
+=======
+>>>>>>> fixed issue#48, and add the original IdleTimer
import org.apache.hupa.client.place.MailFolderPlace;
>>>>>>> prepare to make composeView's reload work
import org.apache.hupa.client.rf.CheckSessionRequest;
import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.rf.IdleRequest;
import org.apache.hupa.client.ui.HupaLayoutable;
import org.apache.hupa.client.ui.LoginLayoutable;
import org.apache.hupa.client.ui.LoginView;
+import org.apache.hupa.shared.domain.IdleAction;
+import org.apache.hupa.shared.domain.IdleResult;
import org.apache.hupa.shared.domain.User;
import org.apache.hupa.shared.events.LoginEvent;
@@ -85,6 +91,7 @@ import com.google.gwt.place.shared.Place
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.place.shared.PlaceHistoryHandler;
<<<<<<< HEAD
+<<<<<<< HEAD
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.inject.Inject;
@@ -113,6 +120,9 @@ public class HupaController {
this.placeHistoryHandler = placeHistoryHandler;
this.eventBus = eventBus;
=======
+=======
+import com.google.gwt.user.client.Timer;
+>>>>>>> fixed issue#48, and add the original IdleTimer
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.inject.Inject;
import com.google.web.bindery.requestfactory.shared.Receiver;
@@ -120,6 +130,7 @@ import com.google.web.bindery.requestfac
public class HupaController {
+ private static final int IDLE_INTERVAL = 15000;
private PlaceController placeController;
private PlaceHistoryHandler placeHistoryHandler;
@Inject private HupaLayoutable hupaLayout;
@@ -127,9 +138,12 @@ public class HupaController {
@Inject private LoginLayoutable loginLayout;
private EventBus eventBus;
+ private Timer noopTimer = new IdleTimer();
+
@Inject
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
public HupaController(EventBus eventBus) {
>>>>>>> move new theme ui from experiment to hupa evo
=======
@@ -144,6 +158,9 @@ public class HupaController {
public HupaController(PlaceController placeController,
PlaceHistoryHandler placeHistoryHandler,
EventBus eventBus,
+=======
+ public HupaController(PlaceController placeController,
PlaceHistoryHandler placeHistoryHandler, EventBus eventBus,
+>>>>>>> fixed issue#48, and add the original IdleTimer
ActivityManagerInitializer
initializeActivityManagerByGin) {
this.placeController = placeController;
this.placeHistoryHandler = placeHistoryHandler;
@@ -290,8 +307,7 @@ public class HupaController {
private void bindCss() {
// TODO:replace with a more gentle approach
- StyleInjector.inject(LoginView.Resources.INSTANCE.stylesheet()
- .getText());
+
StyleInjector.inject(LoginView.Resources.INSTANCE.stylesheet().getText());
}
private final class PlaceChangHandler implements
PlaceChangeEvent.Handler {
@@ -304,11 +320,11 @@ public class HupaController {
private void adjustLayout(PlaceChangeEvent event) {
Place place = event.getNewPlace();
-
+
if (place instanceof ComposePlace) {
- if(((ComposePlace)place).getParameters() != null){
- hupaLayout.switchToCompose();
- }else{
+ if (((ComposePlace) place).getParameters() != null) {
+ hupaLayout.switchToCompose();
+ } else {
this.placeController.goTo(new
MailFolderPlace("Mock-Inbox"));
}
} else {
@@ -318,25 +334,29 @@ public class HupaController {
<<<<<<< HEAD
<<<<<<< HEAD
+<<<<<<< HEAD
>>>>>>> move new theme ui from experiment to hupa evo
=======
=======
private User user;
>>>>>>> prepare to make composeView's reload work
+=======
+>>>>>>> fixed issue#48, and add the original IdleTimer
private void checkSession() {
CheckSessionRequest checkSession =
requestFactory.sessionRequest();
checkSession.getUser().fire(new Receiver<User>() {
@Override
public void onSuccess(User user) {
- HupaController.this.user = user;
if (user == null) {
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(loginLayout.get());
+ noopTimer.cancel();
} else {
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(hupaLayout.get());
- eventBus.fireEvent(new LoginEvent(user));
+ eventBus.fireEvent(new
LoginEvent(user));
+
noopTimer.scheduleRepeating(IDLE_INTERVAL);
}
}
@@ -344,26 +364,35 @@ public class HupaController {
public void onFailure(ServerFailure error) {
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(loginLayout.get());
+ noopTimer.cancel();
}
});
-// checkSession.isValid().fire(new Receiver<Boolean>() {
-// @Override
-// public void onSuccess(Boolean sessionValid) {
-// if (!sessionValid) {
-// RootLayoutPanel.get().clear();
-//
RootLayoutPanel.get().add(loginLayout.get());
-// } else {
-// RootLayoutPanel.get().clear();
-//
RootLayoutPanel.get().add(hupaLayout.get());
-// }
-// }
-//
-// @Override
-// public void onFailure(ServerFailure error) {
-// RootLayoutPanel.get().clear();
-// RootLayoutPanel.get().add(loginLayout.get());
-// }
-// });
+ }
+
+ private class IdleTimer extends Timer {
+ boolean running = false;
+
+ public void run() {
+ if (!running) {
+ running = true;
+ IdleRequest idle = requestFactory.idleRequest();
+ IdleAction action =
idle.create(IdleAction.class);
+ idle.idle(action).fire(new
Receiver<IdleResult>() {
+ @Override
+ public void onSuccess(IdleResult
response) {
+ running = false;
+ // check if the server is not
supporting the Idle
+ // command. if so cancel this
Timer
+ if (response.isSupported() ==
false) {
+ IdleTimer.this.cancel();
+ }
+ // Noop
+ // TODO: put code here to read
new events from server
+ // (new messages ...)
+ }
+ });
+ }
+ }
}
>>>>>>> integrate them as a whole one - first: make the default place work
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]