package org.argeo.app.ui;
-import static org.argeo.api.cms.CmsView.CMS_VIEW_UID_PROPERTY;
+import static org.argeo.api.cms.ux.CmsView.CMS_VIEW_UID_PROPERTY;
import java.util.Collections;
import java.util.HashMap;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NodeType;
-import javax.naming.InvalidNameException;
-import javax.naming.ldap.LdapName;
+import javax.xml.namespace.QName;
import org.argeo.api.acr.Content;
import org.argeo.api.acr.ContentRepository;
import org.argeo.api.cms.CmsConstants;
import org.argeo.api.cms.CmsLog;
import org.argeo.api.cms.CmsSession;
-import org.argeo.api.cms.CmsTheme;
-import org.argeo.api.cms.CmsUi;
-import org.argeo.api.cms.CmsView;
+import org.argeo.api.cms.ux.CmsTheme;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.api.cms.ux.CmsView;
import org.argeo.app.api.EntityConstants;
import org.argeo.app.api.EntityNames;
import org.argeo.app.api.EntityType;
import org.argeo.app.api.RankedObject;
-import org.argeo.app.core.SuiteUtils;
import org.argeo.cms.AbstractCmsApp;
import org.argeo.cms.CmsUserManager;
import org.argeo.cms.LocaleUtils;
import org.argeo.cms.Localized;
+import org.argeo.cms.acr.ContentUtils;
import org.argeo.cms.jcr.CmsJcrUtils;
import org.argeo.cms.jcr.acr.JcrContent;
import org.argeo.cms.swt.CmsSwtUtils;
}
} else {
- throw new UnsupportedOperationException("Content " + content.getClass().getName() + " is not supported.");
+
+ List<QName> objectClasses = content.getTypes();
+ Set<String> types = new TreeSet<>();
+ for (QName cc : objectClasses) {
+ String type = cc.getPrefix() + ":" + cc.getLocalPart();
+ if (byType.containsKey(type))
+ types.add(type);
+ }
+ if (types.size() == 0)
+ throw new IllegalArgumentException("No type found for " + content + " (" + objectClasses + ")");
+ String type = types.iterator().next();
+ if (!byType.containsKey(type))
+ throw new IllegalArgumentException("No component found for " + content + " with type " + type);
+ return byType.get(type).get();
+ // throw new UnsupportedOperationException("Content " +
+ // content.getClass().getName() + " is not supported.");
}
}
User user = cmsUserManager.getUser(username);
if (user == null)
return null;
- LdapName userDn;
- try {
- userDn = new LdapName(user.getName());
- } catch (InvalidNameException e) {
- throw new IllegalArgumentException("Badly formatted username", e);
- }
- String userNodePath = SuiteUtils.getUserNodePath(userDn);
+ node = ContentUtils.roleToContent(cmsUserManager, contentSession, user);
+// LdapName userDn;
+// try {
+// userDn = new LdapName(user.getName());
+// } catch (InvalidNameException e) {
+// throw new IllegalArgumentException("Badly formatted username", e);
+// }
+// String userNodePath = SuiteUtils.getUserNodePath(userDn);
// FIXME deal with home path
- return null;
+// return null;
// if (Jcr.itemExists(session, userNodePath))
// node = Jcr.getNode(session, userNodePath);
// else {