]> git.argeo.org Git - gpl/argeo-suite.git/blob - swt/org.argeo.app.ui/src/org/argeo/app/ui/people/ChooseUserDialog.java
Load maintenance resources relative to class
[gpl/argeo-suite.git] / swt / org.argeo.app.ui / src / org / argeo / app / ui / people / 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 public class ChooseUserDialog extends CmsMessageDialog {
20 private ContentSession contentSession;
21 private CmsUserManager cmsUserManager;
22 private HierarchyUnit defaultHierarchyUnit;
23
24 private Content selected;
25
26 public ChooseUserDialog(Shell parentShell, String message, ContentSession contentSession,
27 CmsUserManager cmsUserManager, HierarchyUnit defaultHierarchyUnit) {
28 super(parentShell, message, CmsMessageDialog.QUESTION);
29 this.contentSession = contentSession;
30 this.cmsUserManager = cmsUserManager;
31 this.defaultHierarchyUnit = defaultHierarchyUnit;
32 }
33
34 @Override
35 protected Control createInputArea(Composite parent) {
36 SashForm sashForm = new SashForm(parent, SWT.VERTICAL);
37 CmsSwtUtils.fill(sashForm);
38
39 HierarchyUnitPart hierarchyPart = new HierarchyUnitPart(contentSession, cmsUserManager);
40 SwtTreeView<HierarchyUnit> directoriesView = new SwtTreeView<>(sashForm, SWT.BORDER, hierarchyPart);
41
42 UsersPart usersPart = new UsersPart(contentSession, cmsUserManager);
43
44 SwtTableView<?, ?> usersView = new SwtTableView<>(sashForm, SWT.BORDER, usersPart);
45 usersView.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
46
47 // CONTROLLER
48 hierarchyPart.onSelected((o) -> {
49 if (o instanceof HierarchyUnit) {
50 HierarchyUnit hierarchyUnit = (HierarchyUnit) o;
51 usersPart.setInput(hierarchyUnit);
52 }
53 });
54
55 usersPart.onSelected((o) -> {
56 Content user = (Content) o;
57 selected = user;
58 });
59
60 hierarchyPart.refresh();
61
62 sashForm.setWeights(new int[] { 30, 70 });
63 return sashForm;
64 }
65
66 public Content getSelected() {
67 return selected;
68 }
69
70 @Override
71 protected Point getInitialSize() {
72 return new Point(600, 800);
73 }
74
75 }