]> git.argeo.org Git - lgpl/argeo-commons.git/blob - users/UserPage.java
Prepare next development cycle
[lgpl/argeo-commons.git] / users / UserPage.java
1 package org.argeo.cms.users;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.cms.CmsEditable;
7 import org.argeo.cms.CmsUiProvider;
8 import org.argeo.cms.util.CmsUtils;
9 import org.argeo.cms.viewers.JcrVersionCmsEditable;
10 import org.argeo.cms.widgets.ScrolledPage;
11 import org.argeo.security.UserAdminService;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.widgets.Composite;
14 import org.eclipse.swt.widgets.Control;
15
16 /** Enable management of a given user */
17 public class UserPage implements CmsUiProvider {
18
19 /* DEPENDENCY INJECTION */
20 private UserAdminService userAdminService;
21
22 @Override
23 public Control createUi(Composite parent, Node context)
24 throws RepositoryException {
25 CmsEditable cmsEditable = new JcrVersionCmsEditable(context);
26 Composite page = createPage(parent);
27 UserViewer userViewer = new UserViewer(page, SWT.NONE, context,
28 cmsEditable);
29
30 Control control = userViewer.getControl();
31
32 // FIXME not satisfying.
33 if (control instanceof UserPart)
34 ((UserPart) control).setUserAdminService(userAdminService);
35
36 Composite par = control.getParent();
37
38 UserRolesPart rolesPart = new UserRolesPart(par, SWT.NO_FOCUS, context,
39 true);
40 rolesPart.setUserAdminService(userAdminService);
41 rolesPart.setUserAdminService(userAdminService);
42 rolesPart.createControl(rolesPart, UserStyles.USER_FORM_TEXT);
43 rolesPart.refresh();
44 rolesPart.setLayoutData(CmsUtils.fillWidth());
45
46 return page;
47 }
48
49 protected Composite createPage(Composite parent) {
50 parent.setLayout(CmsUtils.noSpaceGridLayout());
51 ScrolledPage scrolled = new ScrolledPage(parent, SWT.NONE);
52 scrolled.setLayoutData(CmsUtils.fillAll());
53 scrolled.setLayout(CmsUtils.noSpaceGridLayout());
54 // TODO manage style
55 // CmsUtils.style(scrolled, "maintenance_user_form");
56
57 Composite page = new Composite(scrolled, SWT.NONE);
58 page.setLayout(CmsUtils.noSpaceGridLayout());
59 page.setBackgroundMode(SWT.INHERIT_NONE);
60 page.setLayoutData(CmsUtils.fillAll());
61 return page;
62 }
63
64 public void setUserAdminService(UserAdminService userAdminService) {
65 this.userAdminService = userAdminService;
66 }
67 }