1 package org
.argeo
.app
.ui
.people
;
6 import javax
.jcr
.RepositoryException
;
8 import org
.argeo
.api
.acr
.Content
;
9 import org
.argeo
.api
.cms
.CmsTheme
;
10 import org
.argeo
.api
.cms
.CmsView
;
11 import org
.argeo
.app
.ui
.SuiteEvent
;
12 import org
.argeo
.app
.ui
.SuiteIcon
;
13 import org
.argeo
.app
.ui
.dialogs
.NewUserWizard
;
14 import org
.argeo
.cms
.CmsUserManager
;
15 import org
.argeo
.cms
.jcr
.acr
.JcrContent
;
16 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
17 import org
.argeo
.cms
.swt
.Selected
;
18 import org
.argeo
.cms
.swt
.acr
.SwtUiProvider
;
19 import org
.argeo
.cms
.swt
.dialogs
.CmsWizardDialog
;
20 import org
.argeo
.cms
.swt
.widgets
.SwtHierarchicalPart
;
21 import org
.argeo
.cms
.ui
.CmsUiProvider
;
22 import org
.eclipse
.jface
.window
.Window
;
23 import org
.eclipse
.jface
.wizard
.Wizard
;
24 import org
.eclipse
.swt
.SWT
;
25 import org
.eclipse
.swt
.layout
.GridData
;
26 import org
.eclipse
.swt
.layout
.GridLayout
;
27 import org
.eclipse
.swt
.widgets
.Composite
;
28 import org
.eclipse
.swt
.widgets
.Control
;
29 import org
.eclipse
.swt
.widgets
.ToolBar
;
30 import org
.eclipse
.swt
.widgets
.ToolItem
;
31 import org
.eclipse
.swt
.widgets
.TreeItem
;
32 import org
.osgi
.service
.useradmin
.User
;
34 /** Entry to the admin area. */
35 public class UsersEntryArea
implements SwtUiProvider
, CmsUiProvider
{
37 private CmsUserManager cmsUserManager
;
40 public Control
createUiPart(Composite parent
, Content context
) {
41 CmsTheme theme
= CmsSwtUtils
.getCmsTheme(parent
);
42 CmsView cmsView
= CmsSwtUtils
.getCmsView(parent
);
43 parent
.setLayout(new GridLayout());
45 List
<User
> orgs
= cmsUserManager
.listGroups(null, true, false);
47 SwtHierarchicalPart tree
= new SwtHierarchicalPart(parent
, SWT
.NONE
) {
50 protected void refreshRootItem(TreeItem item
) {
51 int index
= getTree().indexOf(item
);
52 User org
= (User
) orgs
.get(index
);
54 item
.setText(org
.getName());
56 item
.setItemCount(10);
60 protected void refreshItem(TreeItem parentItem
, TreeItem item
) {
61 String text
= parentItem
.getText() + " - " + parentItem
.indexOf(item
);
63 item
.setItemCount(10);
67 protected int getRootItemCount() {
73 // final Tree tree = new Tree(parent, SWT.VIRTUAL | SWT.BORDER);
74 // tree.addListener(SWT.SetData, event -> {
75 // TreeItem item = (TreeItem) event.item;
76 // TreeItem parentItem = item.getParentItem();
77 // String text = null;
78 // if (parentItem == null) {
79 // int index = tree.indexOf(item);
80 // User org = (User) orgs.get(index);
82 // text = org.getName();
84 // text = parentItem.getText() + " - " + parentItem.indexOf(item);
86 // item.setText(text);
87 // item.setItemCount(10);
89 // tree.setItemCount(orgs.size());
90 // tree.setLayoutData(CmsSwtUtils.fillAll());
91 CmsSwtUtils
.fill(tree
);
93 Composite bottom
= new Composite(parent
, SWT
.NONE
);
94 bottom
.setLayoutData(CmsSwtUtils
.fillWidth());
95 bottom
.setLayout(CmsSwtUtils
.noSpaceGridLayout());
96 ToolBar bottomToolBar
= new ToolBar(bottom
, SWT
.NONE
);
97 bottomToolBar
.setLayoutData(new GridData(SWT
.END
, SWT
.FILL
, true, false));
98 ToolItem deleteItem
= new ToolItem(bottomToolBar
, SWT
.FLAT
);
99 deleteItem
.setEnabled(false);
100 // CmsUiUtils.style(deleteItem, SuiteStyle.recentItems);
101 deleteItem
.setImage(SuiteIcon
.delete
.getSmallIcon(theme
));
102 ToolItem addItem
= new ToolItem(bottomToolBar
, SWT
.FLAT
);
103 addItem
.setImage(SuiteIcon
.add
.getSmallIcon(theme
));
105 // tree.addSelectionListener((Selected) (e) -> {
106 // User user = (User) e.item.getData();
107 // if (user != null) {
108 // CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
109 // SuiteEvent.eventProperties(user));
110 // deleteItem.setEnabled(true);
112 // deleteItem.setEnabled(false);
115 // tree.addListener(SWT.MouseDoubleClick, (e) -> {
116 // User user = (User) e.item.getData();
117 // if (user != null) {
118 // CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
119 // SuiteEvent.eventProperties(user));
124 tree
.onSelected((o
) -> {
125 User user
= (User
) o
;
127 cmsView
.sendEvent(SuiteEvent
.refreshPart
.topic(), SuiteEvent
.eventProperties(user
));
128 deleteItem
.setEnabled(true);
130 deleteItem
.setEnabled(false);
134 tree
.onAction((o
) -> {
135 User user
= (User
) o
;
137 cmsView
.sendEvent(SuiteEvent
.openNewPart
.topic(), SuiteEvent
.eventProperties(user
));
141 // tree.addSelectionListener(new SelectionListener() {
144 // public void widgetSelected(SelectionEvent e) {
145 // User user = (User) e.item.getData();
146 // if (user != null) {
147 // CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.refreshPart.topic(),
148 // SuiteEvent.eventProperties(user));
149 // deleteItem.setEnabled(true);
151 // deleteItem.setEnabled(false);
156 // public void widgetDefaultSelected(SelectionEvent e) {
157 // User user = (User) e.item.getData();
158 // if (user != null) {
159 // CmsSwtUtils.getCmsView(parent).sendEvent(SuiteEvent.openNewPart.topic(),
160 // SuiteEvent.eventProperties(user));
165 addItem
.addSelectionListener((Selected
) (e
) -> {
166 // SuiteUtils.getOrCreateUserNode(adminSession, userDn);
167 Wizard wizard
= new NewUserWizard(null);
168 CmsWizardDialog dialog
= new CmsWizardDialog(parent
.getShell(), wizard
);
169 // WizardDialog dialog = new WizardDialog(shell, wizard);
170 if (dialog
.open() == Window
.OK
) {
180 private String
getUserProperty(Object element
, String key
) {
181 Object value
= ((User
) element
).getProperties().get(key
);
182 return value
!= null ? value
.toString() : null;
185 public void setCmsUserManager(CmsUserManager cmsUserManager
) {
186 this.cmsUserManager
= cmsUserManager
;
190 public Control
createUi(Composite parent
, Node context
) throws RepositoryException
{
191 return createUiPart(parent
, JcrContent
.nodeToContent(context
));