1 package org
.argeo
.app
.ui
.people
;
3 import static org
.argeo
.eclipse
.ui
.EclipseUiUtils
.isEmpty
;
5 import java
.util
.HashMap
;
6 import java
.util
.HashSet
;
10 import org
.argeo
.api
.acr
.Content
;
11 import org
.argeo
.api
.acr
.ldap
.LdapAttr
;
12 import org
.argeo
.api
.acr
.ldap
.LdapObj
;
13 import org
.argeo
.api
.cms
.directory
.CmsGroup
;
14 import org
.argeo
.api
.cms
.directory
.CmsUserManager
;
15 import org
.argeo
.api
.cms
.directory
.HierarchyUnit
;
16 import org
.argeo
.app
.swt
.ux
.SuiteSwtUtils
;
17 import org
.argeo
.app
.ux
.SuiteMsg
;
18 import org
.argeo
.cms
.swt
.dialogs
.CmsFeedback
;
19 import org
.argeo
.cms
.swt
.widgets
.SwtGuidedFormPage
;
20 import org
.argeo
.cms
.ux
.widgets
.AbstractGuidedForm
;
21 import org
.argeo
.eclipse
.ui
.EclipseUiUtils
;
22 import org
.eclipse
.swt
.SWT
;
23 import org
.eclipse
.swt
.events
.ModifyEvent
;
24 import org
.eclipse
.swt
.events
.ModifyListener
;
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
.Text
;
30 /** Form to create a new organisation. */
31 public class NewOrgForm
extends AbstractGuidedForm
{
32 private Content hierarchyUnit
;
33 private CmsUserManager cmsUserManager
;
35 protected Text orgNameT
;
37 public NewOrgForm(CmsUserManager cmsUserManager
, Content hierarchyUnit
) {
38 this.hierarchyUnit
= hierarchyUnit
;
39 this.cmsUserManager
= cmsUserManager
;
43 public void addPages() {
45 MainInfoPage page
= new MainInfoPage("main");
47 } catch (Exception e
) {
48 throw new RuntimeException("Cannot add page to wizard", e
);
50 setFormTitle(SuiteMsg
.orgWizardWindowTitle
.lead());
54 public boolean performFinish() {
55 String orgName
= orgNameT
.getText();
56 if (EclipseUiUtils
.isEmpty(orgName
)) {
57 CmsFeedback
.show(SuiteMsg
.allFieldsMustBeSet
.lead());
60 HierarchyUnit hu
= hierarchyUnit
.adapt(HierarchyUnit
.class);
61 String dn
= "cn=" + orgName
+ ",ou=Groups," + hu
.getBase();
63 CmsGroup user
= cmsUserManager
.createGroup(dn
);
65 Map
<String
, Object
> additionalProperties
= new HashMap
<>();
66 additionalProperties
.put(LdapAttr
.o
.name(), orgName
);
68 Set
<String
> objectClasses
= new HashSet
<>();
69 objectClasses
.add(LdapObj
.organization
.name());
70 cmsUserManager
.addObjectClasses(user
, objectClasses
, additionalProperties
);
76 public boolean performCancel() {
81 public boolean canFinish() {
82 String firstName
= orgNameT
.getText();
83 if (isEmpty(firstName
)) {
89 protected class MainInfoPage
extends SwtGuidedFormPage
{
91 public MainInfoPage(String pageName
) {
93 setTitle(SuiteMsg
.orgWizardPageTitle
.lead());
96 public void createControl(Composite parent
) {
97 parent
.setLayout(new GridLayout(2, false));
100 SuiteSwtUtils
.createBoldLabel(parent
, SuiteMsg
.org
);
101 orgNameT
= new Text(parent
, SWT
.BORDER
);
102 // firstNameTxt.setMessage("a first name");
103 orgNameT
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false));
105 ModifyListener ml
= new ModifyListener() {
106 private static final long serialVersionUID
= 1939491923843870844L;
109 public void modifyText(ModifyEvent event
) {
110 getView().updateButtons();
114 orgNameT
.addModifyListener(ml
);