X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.rap%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Frap%2FWorkbenchLogin.java;h=a074ed956dc1f0ad033356a9a87bb4b7a8cc42ca;hb=a1d862e4ef6221ebc91fcccea688d66504020365;hp=e7a5c0c35d31fc4227112ebfb1686cb969d86883;hpb=94c0a695c972463b613d919f615f3d92642c75d5;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/WorkbenchLogin.java b/org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/WorkbenchLogin.java index e7a5c0c35..a074ed956 100644 --- a/org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/WorkbenchLogin.java +++ b/org.argeo.security.ui.rap/src/org/argeo/security/ui/rap/WorkbenchLogin.java @@ -1,6 +1,7 @@ package org.argeo.security.ui.rap; import java.security.PrivilegedAction; +import java.util.Locale; import javax.security.auth.Subject; import javax.security.auth.login.CredentialNotFoundException; @@ -17,9 +18,11 @@ import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.auth.HttpRequestCallbackHandler; import org.argeo.cms.widgets.auth.CmsLogin; import org.argeo.cms.widgets.auth.CmsLoginShell; +import org.argeo.eclipse.ui.dialogs.ErrorFeedback; import org.argeo.eclipse.ui.specific.UiContext; import org.eclipse.rap.rwt.RWT; import org.eclipse.rap.rwt.application.EntryPoint; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; @@ -42,8 +45,17 @@ abstract class WorkbenchLogin implements EntryPoint, CmsView { CmsLoginShell loginShell = createCmsLoginShell(); loginShell.open(); while (!loginShell.getShell().isDisposed()) { - if (!display.readAndDispatch()) { - display.sleep(); + try { + if (!display.readAndDispatch()) + display.sleep(); + } catch (Exception e1) { + try { + Thread.sleep(3000); + } catch (InterruptedException e2) { + // silent + } + ErrorFeedback.show("Login failed", e1); + return -1; } } } catch (LoginException e) { @@ -81,8 +93,17 @@ abstract class WorkbenchLogin implements EntryPoint, CmsView { @Override public void createContents(Composite parent) { - createLoginPage(parent, this); + WorkbenchLogin.this.createLoginPage(parent, this); } + + @Override + protected void extendsCredentialsBlock(Composite credentialsBlock, + Locale selectedLocale, + SelectionListener loginSelectionListener) { + WorkbenchLogin.this.extendsCredentialsBlock(credentialsBlock, + selectedLocale, loginSelectionListener); + } + }; } @@ -96,6 +117,11 @@ abstract class WorkbenchLogin implements EntryPoint, CmsView { login.defaultCreateContents(parent); } + protected void extendsCredentialsBlock(Composite credentialsBlock, + Locale selectedLocale, SelectionListener loginSelectionListener) { + + } + @Override public void navigateTo(String state) { // TODO Auto-generated method stub