Move SWT components to their subdirectory
[gpl/argeo-suite.git] / org.argeo.app.ui / src / org / argeo / app / ui / people / NewUserForm.java
diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/people/NewUserForm.java b/org.argeo.app.ui/src/org/argeo/app/ui/people/NewUserForm.java
deleted file mode 100644 (file)
index ed9c4f4..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-package org.argeo.app.ui.people;
-
-import static org.argeo.eclipse.ui.EclipseUiUtils.isEmpty;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.argeo.api.acr.Content;
-import org.argeo.app.core.SuiteUtils;
-import org.argeo.app.ui.SuiteMsg;
-import org.argeo.app.ui.SuiteUiUtils;
-import org.argeo.cms.CmsUserManager;
-import org.argeo.cms.acr.ContentUtils;
-import org.argeo.cms.swt.dialogs.CmsFeedback;
-import org.argeo.cms.swt.widgets.SwtGuidedFormPage;
-import org.argeo.cms.ux.widgets.AbstractGuidedForm;
-import org.argeo.eclipse.ui.EclipseUiUtils;
-import org.argeo.util.directory.HierarchyUnit;
-import org.argeo.util.naming.LdapAttrs;
-import org.argeo.util.naming.LdapObjs;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.osgi.service.useradmin.User;
-
-/** Ask first & last name. Update the passed node on finish */
-public class NewUserForm extends AbstractGuidedForm {
-       private Content hierarchyUnit;
-       private CmsUserManager cmsUserManager;
-
-       protected Text lastNameT;
-       protected Text firstNameT;
-       protected Text emailT;
-
-       public NewUserForm(CmsUserManager cmsUserManager, Content hierarchyUnit) {
-               this.hierarchyUnit = hierarchyUnit;
-               if (!hierarchyUnit.hasContentClass(LdapObjs.posixGroup.qName()))
-                       throw new IllegalArgumentException(hierarchyUnit + " is not a POSIX group");
-               this.cmsUserManager = cmsUserManager;
-       }
-
-       @Override
-       public void addPages() {
-               try {
-                       MainInfoPage page = new MainInfoPage("Main page");
-                       addPage(page);
-               } catch (Exception e) {
-                       throw new RuntimeException("Cannot add page to wizard", e);
-               }
-               setFormTitle(SuiteMsg.personWizardWindowTitle.lead());
-       }
-
-       /**
-        * Called when the user click on 'Finish' in the wizard. The task is then
-        * created and the corresponding session saved.
-        */
-       @Override
-       public boolean performFinish() {
-               String lastName = lastNameT.getText();
-               String firstName = firstNameT.getText();
-               String email = emailT.getText();
-               if (EclipseUiUtils.isEmpty(lastName) || EclipseUiUtils.isEmpty(firstName) || EclipseUiUtils.isEmpty(email)) {
-                       CmsFeedback.show(SuiteMsg.allFieldsMustBeSet.lead());
-                       return false;
-               } else {
-                       UUID uuid = UUID.randomUUID();
-                       String shortId = uuid.toString().split("-")[0];
-                       String uid = "u" + shortId;
-                       HierarchyUnit hu = hierarchyUnit.adapt(HierarchyUnit.class);
-                       String username = "uid=" + uid + ",ou=People," + hu.getBase();
-
-                       Map<String, Object> properties = new HashMap<>();
-                       properties.put(LdapAttrs.givenName.name(), firstName);
-                       properties.put(LdapAttrs.sn.name(), lastName);
-                       properties.put(LdapAttrs.mail.name(), email);
-                       properties.put(LdapAttrs.cn.name(), firstName + " " + lastName);
-                       properties.put(LdapAttrs.employeeNumber.name(), uuid.toString());
-
-                       Map<String, Object> credentials = new HashMap<>();
-                       User user = cmsUserManager.createUser(username, properties, credentials);
-
-                       Long huGidNumber = hierarchyUnit.get(LdapAttrs.gidNumber.qName(), Long.class).orElseThrow();
-                       Long nextUserId = SuiteUtils.findNextId(hierarchyUnit, LdapObjs.posixAccount.qName());
-                       String homeDirectory = "/home/" + uid;
-                       Map<String, Object> additionalProperties = new HashMap<>();
-                       additionalProperties.put(LdapAttrs.uidNumber.name(), nextUserId.toString());
-                       additionalProperties.put(LdapAttrs.gidNumber.name(), huGidNumber.toString());
-                       additionalProperties.put(LdapAttrs.homeDirectory.name(), homeDirectory);
-
-                       Set<String> objectClasses = new HashSet<>();
-                       objectClasses.add(LdapObjs.posixAccount.name());
-                       cmsUserManager.addObjectClasses(user, objectClasses, additionalProperties);
-                       return true;
-               }
-       }
-
-       @Override
-       public boolean performCancel() {
-               return true;
-       }
-
-       @Override
-       public boolean canFinish() {
-               String lastName = lastNameT.getText();
-               String firstName = firstNameT.getText();
-               String email = emailT.getText();
-               if (isEmpty(lastName) || isEmpty(firstName) || isEmpty(email)) {
-                       return false;
-               } else
-                       return true;
-       }
-
-       protected class MainInfoPage extends SwtGuidedFormPage {
-
-               public MainInfoPage(String pageName) {
-                       super(pageName);
-                       setTitle(SuiteMsg.personWizardPageTitle.lead());
-               }
-
-               public void createControl(Composite parent) {
-                       parent.setLayout(new GridLayout(2, false));
-
-                       // FirstName
-                       SuiteUiUtils.createBoldLabel(parent, SuiteMsg.firstName);
-                       firstNameT = new Text(parent, SWT.BORDER);
-                       // firstNameTxt.setMessage("a first name");
-                       firstNameT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-                       // LastName
-                       SuiteUiUtils.createBoldLabel(parent, SuiteMsg.lastName);
-                       lastNameT = new Text(parent, SWT.BORDER);
-                       // lastNameTxt.setMessage("a last name");
-                       lastNameT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-                       SuiteUiUtils.createBoldLabel(parent, SuiteMsg.email);
-                       emailT = new Text(parent, SWT.BORDER);
-                       emailT.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-                       ModifyListener ml = new ModifyListener() {
-                               private static final long serialVersionUID = 1939491923843870844L;
-
-                               @Override
-                               public void modifyText(ModifyEvent event) {
-                                       getView().updateButtons();
-                               }
-                       };
-
-                       firstNameT.addModifyListener(ml);
-                       lastNameT.addModifyListener(ml);
-                       emailT.addModifyListener(ml);
-
-                       firstNameT.setFocus();
-               }
-       }
-}