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 {
}
@Override
- protected void login() {
- super.login();
- closeShell();
+ protected boolean login() {
+ boolean success = false;
+ try {
+ success = super.login();
+ return success;
+ } finally {
+ if (success)
+ closeShell();
+ else {
+ for (Control child : shell.getChildren())
+ child.dispose();
+ createUi(shell);
+ shell.layout();
+ // TODO error message
+ }
+ }
}
@Override
}
protected void closeShell() {
- shell.close();
- shell.dispose();
+ if (!shell.isDisposed()) {
+ shell.close();
+ shell.dispose();
+ }
}
public Shell getShell() {