]> git.argeo.org Git - gpl/argeo-suite.git/blob - ChooseUserDialog.java
99c78726acd5e5c3a676260d81e7b03afe1e70b4
[gpl/argeo-suite.git] / ChooseUserDialog.java
1 package org.argeo.app.ui.people;
2
3 import org.argeo.api.acr.Content;
4 import org.argeo.api.acr.ContentSession;
5 import org.argeo.api.cms.directory.CmsUserManager;
6 import org.argeo.api.cms.directory.HierarchyUnit;
7 import org.argeo.cms.swt.CmsSwtUtils;
8 import org.argeo.cms.swt.dialogs.CmsMessageDialog;
9 import org.argeo.cms.swt.widgets.SwtTableView;
10 import org.argeo.cms.swt.widgets.SwtTreeView;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.custom.SashForm;
13 import org.eclipse.swt.graphics.Point;
14 import org.eclipse.swt.layout.GridData;
15 import org.eclipse.swt.widgets.Composite;
16 import org.eclipse.swt.widgets.Control;
17 import org.eclipse.swt.widgets.Shell;
18
19 /** Pick up a user within a hierarchy. */
20 public class ChooseUserDialog extends CmsMessageDialog {
21 private ContentSession contentSession;
22 private CmsUserManager cmsUserManager;
23 private HierarchyUnit defaultHierarchyUnit;
24
25 private Content selected;
26
27 public ChooseUserDialog(Shell parentShell, String message, ContentSession contentSession,
28 CmsUserManager cmsUserManager, HierarchyUnit defaultHierarchyUnit) {
29 super(parentShell, message, CmsMessageDialog.QUESTION);
30 this.contentSession = contentSession;
31 this.cmsUserManager = cmsUserManager;
32 this.defaultHierarchyUnit = defaultHierarchyUnit;
33 }
34
35 @Override
36 protected Control createInputArea(Composite parent) {
37 SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL);
38 CmsSwtUtils.fill(sashForm);
39
40 HierarchyUnitPart hierarchyPart = new HierarchyUnitPart(contentSession, cmsUserManager);
41 SwtTreeView<HierarchyUnit> directoriesView = new SwtTreeView<>(sashForm, SWT.BORDER, hierarchyPart);
42
43 UsersPart usersPart = new UsersPart(contentSession, cmsUserManager);
44
45 SwtTableView<?, ?> usersView = new SwtTableView<>(sashForm, SWT.BORDER, usersPart);
46 usersView.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
47
48 // CONTROLLER
49 hierarchyPart.onSelected((o) -> {
50 if (o instanceof HierarchyUnit) {
51 HierarchyUnit hierarchyUnit = (HierarchyUnit) o;
52 usersPart.setInput(hierarchyUnit);
53 }
54 });
55
56 usersPart.onSelected((o) -> {
57 Content user = (Content) o;
58 selected = user;
59 });
60
61 hierarchyPart.refresh();
62
63 sashForm.setWeights(new int[] { 40, 60 });
64 return sashForm;
65 }
66
67 public Content getSelected() {
68 return selected;
69 }
70
71 @Override
72 protected Point getInitialSize() {
73 return new Point(800, 600);
74 }
75
76 }