X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FDefaultLoginScreen.java;fp=swt%2Forg.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FDefaultLoginScreen.java;h=c92e3db27865697fa22b607b3620b1f4f5096314;hb=d917d2b10162a29cddaf8c81c362efa37abcaab9;hp=0000000000000000000000000000000000000000;hpb=f1b87af2e0de38f1f49ab8fe68f9988018914811;p=gpl%2Fargeo-suite.git diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java new file mode 100644 index 0000000..c92e3db --- /dev/null +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java @@ -0,0 +1,39 @@ +package org.argeo.app.ui; + +import org.argeo.api.acr.Content; +import org.argeo.api.cms.CmsContext; +import org.argeo.api.cms.ux.CmsView; +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.swt.auth.CmsLogin; +import org.argeo.cms.ui.CmsUiProvider; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +/** Provides a login screen. */ +public class DefaultLoginScreen implements CmsUiProvider { + private CmsContext cmsContext; + + @Override + public Control createUiPart(Composite parent, Content context) { + CmsView cmsView = CmsSwtUtils.getCmsView(parent); + if (!cmsView.isAnonymous()) + throw new IllegalStateException(CurrentUser.getUsername() + " is already logged in"); + + parent.setLayout(new GridLayout()); + Composite loginArea = new Composite(parent, SWT.NONE); + loginArea.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true)); + + CmsLogin cmsLogin = new CmsLogin(cmsView, cmsContext); + cmsLogin.createUi(loginArea); + return cmsLogin.getCredentialsBlock(); + } + + public void setCmsContext(CmsContext cmsContext) { + this.cmsContext = cmsContext; + } + +}