]> git.argeo.org Git - gpl/argeo-suite.git/blob - app/ui/DefaultLoginScreen.java
Prepare next development cycle
[gpl/argeo-suite.git] / app / ui / DefaultLoginScreen.java
1 package org.argeo.app.ui;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.api.cms.CmsContext;
7 import org.argeo.api.cms.CmsView;
8 import org.argeo.cms.auth.CurrentUser;
9 import org.argeo.cms.swt.CmsSwtUtils;
10 import org.argeo.cms.swt.auth.CmsLogin;
11 import org.argeo.cms.ui.CmsUiProvider;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.layout.GridData;
14 import org.eclipse.swt.layout.GridLayout;
15 import org.eclipse.swt.widgets.Composite;
16 import org.eclipse.swt.widgets.Control;
17
18 /** Provides a login screen. */
19 public class DefaultLoginScreen implements CmsUiProvider {
20 private CmsContext cmsContext;
21
22 @Override
23 public Control createUi(Composite parent, Node context) throws RepositoryException {
24 CmsView cmsView = CmsSwtUtils.getCmsView(parent);
25 if (!cmsView.isAnonymous())
26 throw new IllegalStateException(CurrentUser.getUsername() + " is already logged in");
27
28 parent.setLayout(new GridLayout());
29 Composite loginArea = new Composite(parent, SWT.NONE);
30 loginArea.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true));
31
32 CmsLogin cmsLogin = new CmsLogin(cmsView, cmsContext);
33 cmsLogin.createUi(loginArea);
34 return cmsLogin.getCredentialsBlock();
35 }
36
37 public void setCmsContext(CmsContext cmsContext) {
38 this.cmsContext = cmsContext;
39 }
40
41 }