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=2fd1756750023e3e611818d9e14fcf41bed95d42;hp=a1ca970905361ffbb6926c37188286b89f79b84d;hpb=b7469a692d23890986d5c4880acabcf1f4f27027;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() {