Make layer switching more robust
[gpl/argeo-suite.git] / org.argeo.app.ui / src / org / argeo / app / ui / people / PeopleEntryArea.java
index eb39e062c29a439628f788951ae92d8b1fafa5b3..8ee656a6ffebe0bdff5842da25cd5d19e1c50f91 100644 (file)
@@ -25,12 +25,14 @@ import org.argeo.cms.swt.CmsSwtTheme;
 import org.argeo.cms.swt.CmsSwtUtils;
 import org.argeo.cms.swt.Selected;
 import org.argeo.cms.swt.acr.SwtUiProvider;
+import org.argeo.cms.swt.widgets.SwtGuidedFormDialog;
 import org.argeo.cms.swt.widgets.SwtTableView;
 import org.argeo.cms.swt.widgets.SwtTreeView;
 import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.cms.ux.widgets.AbstractHierarchicalPart;
 import org.argeo.cms.ux.widgets.Column;
 import org.argeo.cms.ux.widgets.DefaultTabularPart;
+import org.argeo.cms.ux.widgets.GuidedForm;
 import org.argeo.cms.ux.widgets.HierarchicalPart;
 import org.argeo.osgi.useradmin.UserDirectory;
 import org.argeo.util.directory.HierarchyUnit;
@@ -115,7 +117,13 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider {
 
                        @Override
                        public CmsIcon getIcon(HierarchyUnit model) {
-                               return SuiteIcon.group;
+                               Content content = ContentUtils.hierarchyUnitToContent(contentSession, model);
+                               if (content.hasContentClass(LdapObjs.organization.qName()))
+                                       return SuiteIcon.organisation;
+                               else if (content.hasContentClass(LdapObjs.posixGroup.qName()))
+                                       return SuiteIcon.group;
+                               else
+                                       return SuiteIcon.people;
                        }
 
                };
@@ -167,7 +175,9 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider {
 
                        @Override
                        public CmsIcon getIcon(Content role) {
-                               if (role.isContentClass(LdapObjs.inetOrgPerson.qName()))
+                               if (role.hasContentClass(LdapObjs.posixAccount.qName()))
+                                       return SuiteIcon.user;
+                               else if (role.isContentClass(LdapObjs.inetOrgPerson.qName()))
                                        return SuiteIcon.person;
                                else if (role.isContentClass(LdapObjs.organization.qName()))
                                        return SuiteIcon.organisation;
@@ -231,8 +241,8 @@ public class PeopleEntryArea implements SwtUiProvider, CmsUiProvider {
 
                addItem.addSelectionListener((Selected) (e) -> {
                        // SuiteUtils.getOrCreateUserNode(adminSession, userDn);
-                       Wizard wizard = new NewUserWizard(null);
-                       CmsWizardDialog dialog = new CmsWizardDialog(parent.getShell(), wizard);
+                       GuidedForm wizard = new NewUserWizard(null);
+                       SwtGuidedFormDialog dialog = new SwtGuidedFormDialog(parent.getShell(), wizard);
                        // WizardDialog dialog = new WizardDialog(shell, wizard);
                        if (dialog.open() == Window.OK) {
                                // TODO create