1 package org
.argeo
.app
.ui
.people
;
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
;
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
;
25 private Content selected
;
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
;
36 protected Control
createInputArea(Composite parent
) {
37 SashForm sashForm
= new SashForm(parent
, SWT
.HORIZONTAL
);
38 CmsSwtUtils
.fill(sashForm
);
40 HierarchyUnitPart hierarchyPart
= new HierarchyUnitPart(contentSession
, cmsUserManager
);
41 SwtTreeView
<HierarchyUnit
> directoriesView
= new SwtTreeView
<>(sashForm
, SWT
.BORDER
, hierarchyPart
);
43 UsersPart usersPart
= new UsersPart(contentSession
, cmsUserManager
);
45 SwtTableView
<?
, ?
> usersView
= new SwtTableView
<>(sashForm
, SWT
.BORDER
, usersPart
);
46 usersView
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
49 hierarchyPart
.onSelected((o
) -> {
50 if (o
instanceof HierarchyUnit
) {
51 HierarchyUnit hierarchyUnit
= (HierarchyUnit
) o
;
52 usersPart
.setInput(hierarchyUnit
);
56 usersPart
.onSelected((o
) -> {
57 Content user
= (Content
) o
;
61 hierarchyPart
.refresh();
63 sashForm
.setWeights(new int[] { 40, 60 });
67 public Content
getSelected() {
72 protected Point
getInitialSize() {
73 return new Point(800, 600);