X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fwidgets%2Fauth%2FCmsLoginShell.java;h=29a3f54e64990016889add8de4d15c0d440988f3;hb=c873a0359345503b8e3ca07828bd99d525ec7cc0;hp=a1ca970905361ffbb6926c37188286b89f79b84d;hpb=77319330a8dec1f521e78a2df381f66c1b43100d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/widgets/auth/CmsLoginShell.java b/org.argeo.cms/src/org/argeo/cms/widgets/auth/CmsLoginShell.java index a1ca97090..29a3f54e6 100644 --- a/org.argeo.cms/src/org/argeo/cms/widgets/auth/CmsLoginShell.java +++ b/org.argeo.cms/src/org/argeo/cms/widgets/auth/CmsLoginShell.java @@ -1,10 +1,13 @@ package org.argeo.cms.widgets.auth; import org.argeo.cms.CmsView; +import org.argeo.eclipse.ui.dialogs.ErrorFeedback; import org.eclipse.rap.rwt.RWT; import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Widget; /** The site-related user menu */ public class CmsLoginShell extends CmsLogin { @@ -31,10 +34,20 @@ public class CmsLoginShell extends CmsLogin { @Override protected boolean login() { + boolean success = false; try { - return super.login(); + success = super.login(); + return success; } finally { - closeShell(); + if (success) + closeShell(); + else { + for (Control child : shell.getChildren()) + child.dispose(); + createUi(shell); + shell.layout(); + // TODO error message + } } } @@ -45,8 +58,10 @@ public class CmsLoginShell extends CmsLogin { } protected void closeShell() { - shell.close(); - shell.dispose(); + if (!shell.isDisposed()) { + shell.close(); + shell.dispose(); + } } public Shell getShell() {