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;
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;
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) {
@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);
+ }
+
};
}
login.defaultCreateContents(parent);
}
+ protected void extendsCredentialsBlock(Composite credentialsBlock,
+ Locale selectedLocale, SelectionListener loginSelectionListener) {
+
+ }
+
@Override
public void navigateTo(String state) {
// TODO Auto-generated method stub