From: Mathieu Baudier Date: Wed, 21 Sep 2022 10:07:31 +0000 (+0200) Subject: Repair switch to post login state X-Git-Tag: v2.3.8~35 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=c3e27ffcb6336ad32ead985306b25e4971fef455 Repair switch to post login state --- diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java index ef4aaff..a8b9b2e 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java @@ -209,6 +209,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { if (cmsView.isAnonymous() && publicBasePath == null) {// internal app, must login ui.logout(); + ui.setLoginScreen(true); if (headerUiProvider != null) refreshPart(headerUiProvider, ui.getHeader(), context); ui.refreshBelowHeader(false); @@ -220,6 +221,12 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } else { if (LOGIN.equals(state)) state = null; + if (ui.isLoginScreen()) { +// if (state == null) +// state = ui.getPostLoginState(); + ui.setLoginScreen(false); +// ui.setPostLoginState(null); + } CmsSession cmsSession = cmsView.getCmsSession(); if (ui.getUserDirNode() == null) { // FIXME NPE on CMSSession when logging in from anonymous @@ -423,6 +430,11 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { return; } SuiteUi suiteUi = (SuiteUi) cmsUi; + if (suiteUi.isLoginScreen()) { +// suiteUi.setPostLoginState(state); + return; + } + Content node = stateToNode(suiteUi, state); if (node == null) { suiteUi.getCmsView().navigateTo(HOME_STATE); @@ -551,7 +563,7 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } } } catch (Exception e) { - CmsFeedback.error("Cannot handle event " + event, e); + CmsFeedback.error("Cannot handle event " + topic + " " + event, e); // log.error("Cannot handle event " + event, e); } }); diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUi.java b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUi.java index de060df..02ff38e 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUi.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUi.java @@ -5,16 +5,15 @@ import java.util.Map; import org.argeo.api.acr.Content; import org.argeo.api.cms.CmsLog; -import org.argeo.api.cms.ux.CmsUi; -import org.argeo.api.cms.ux.CmsView; import org.argeo.cms.Localized; +import org.argeo.cms.swt.CmsSwtUi; import org.argeo.cms.swt.CmsSwtUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Composite; /** The view for the default ergonomics of Argeo Suite. */ -class SuiteUi extends Composite implements CmsUi { +class SuiteUi extends CmsSwtUi { private static final long serialVersionUID = 6207018859086689108L; private final static CmsLog log = CmsLog.getLog(SuiteUi.class); @@ -34,11 +33,11 @@ class SuiteUi extends Composite implements CmsUi { private Map workAreas = new HashMap<>(); private String currentLayerId = null; - private CmsView cmsView; + private boolean loginScreen = false; +// private String postLoginState; public SuiteUi(Composite parent, int style) { super(parent, style); - cmsView = CmsSwtUtils.getCmsView(parent); this.setLayout(CmsSwtUtils.noSpaceGridLayout()); header = new Composite(this, SWT.NONE); @@ -116,7 +115,7 @@ class SuiteUi extends Composite implements CmsUi { return current; } if (context == null) { - if (!cmsView.isAnonymous()) + if (!getCmsView().isAnonymous()) context = getUserDirNode(); } Composite toShow = getLayer(layerId, context); @@ -166,7 +165,7 @@ class SuiteUi extends Composite implements CmsUi { } protected Composite initLayer(String id, SuiteLayer layer, Content context) { - Composite workArea = cmsView.doAs(() -> (Composite) layer.createUiPart(dynamicArea, context)); + Composite workArea = getCmsView().doAs(() -> (Composite) layer.createUiPart(dynamicArea, context)); CmsSwtUtils.style(workArea, SuiteStyle.workArea); workArea.setLayoutData(CmsSwtUtils.coverAll()); workAreas.put(id, workArea); @@ -249,10 +248,6 @@ class SuiteUi extends Composite implements CmsUi { // throw new IllegalArgumentException("Unknown workspace " + workspaceName); // } - public CmsView getCmsView() { - return cmsView; - } - public Localized getTitle() { return title; } @@ -261,4 +256,20 @@ class SuiteUi extends Composite implements CmsUi { this.title = title; } + public boolean isLoginScreen() { + return loginScreen; + } + + public void setLoginScreen(boolean loginScreen) { + this.loginScreen = loginScreen; + } + +// public String getPostLoginState() { +// return postLoginState; +// } +// +// public void setPostLoginState(String postLoginState) { +// this.postLoginState = postLoginState; +// } + }