From 2abe036b5278eb36c7302a1d5caaec7a34390c73 Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Wed, 6 Apr 2011 14:36:12 +0000 Subject: [PATCH] [LMS-1719] Never ask user to refresh openBIS. We rely on smart caching (see previous commit). Additionally, we auto-reload openBIS when running in embedded/simple mode, so that users won't have to deal with annoying popups. SVN: 20686 --- .../application/AbstractAsyncCallback.java | 26 ++++++++++++++++--- .../client/web/client/application/Client.java | 8 +++--- .../menu/user/action/LogoutCallback.java | 3 +-- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java index 5efa26acd88..08512daae44 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/AbstractAsyncCallback.java @@ -230,7 +230,7 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> } if (caught instanceof InvalidSessionException) { - showSessionTerminated(msg); + handleSessionTerminated(msg); } else { callbackListener.onFailureOf(viewContext, this, msg, caught); @@ -253,6 +253,25 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> } } + private void refreshPageInBrowser() + { + if (viewContext != null) + { + viewContext.getPageController().reload(true); + } + } + + private void handleSessionTerminated(String msg) + { + if (viewContext.isSimpleOrEmbeddedMode()) + { + refreshPageInBrowser(); + } else + { + showSessionTerminated(msg); + } + } + private void showSessionTerminated(String msg) { Dialog dialog = new Dialog(); @@ -269,10 +288,9 @@ public abstract class AbstractAsyncCallback<T> implements AsyncCallback<T> @Override public void windowHide(WindowEvent we) { - if (viewContext != null && reloadWhenSessionTerminated) + if (reloadWhenSessionTerminated) { - final IPageController pageController = viewContext.getPageController(); - pageController.reload(true); + refreshPageInBrowser(); } } }); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java index d2c0ccfea3f..ee9b77ecfad 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Client.java @@ -96,14 +96,16 @@ public class Client implements EntryPoint, ValueChangeHandler<String> // // IPageController // - public final void reload(final boolean logout) { if (logout) { - initializeControllers(openUrlController); + // refresh the entire page + Window.Location.reload(); + } else + { + onModuleLoad(); } - onModuleLoad(); } }; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutCallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutCallback.java index d9b0944b786..e6c5ff87425 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutCallback.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/user/action/LogoutCallback.java @@ -17,7 +17,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.user.action; import com.google.gwt.user.client.History; -import com.google.gwt.user.client.Window; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; @@ -42,6 +41,6 @@ final class LogoutCallback extends AbstractAsyncCallback<Void> { History.newItem(""); // clears history token in URL GWTUtils.removeConfirmExitMessage(); - Window.Location.reload(); + viewContext.getPageController().reload(true); } } \ No newline at end of file -- GitLab