Support JCR node types as entity types.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / SuiteApp.java
index 7bb9991e0bd90d398c3250eaa7453487dfe0d27c..ecb9ff781dbf0dd3eb8b21b0183ab0e57562834a 100644 (file)
@@ -27,7 +27,7 @@ import org.argeo.cms.ui.util.CmsEvent;
 import org.argeo.cms.ui.util.CmsUiUtils;
 import org.argeo.entity.EntityConstants;
 import org.argeo.entity.EntityNames;
-import org.argeo.entity.EntityTypes;
+import org.argeo.entity.EntityType;
 import org.argeo.jcr.Jcr;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.suite.RankedObject;
@@ -180,12 +180,19 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                                if (uiProvidersByType.containsKey(typeName)) {
                                        types.add(typeName);
                                }
+                               for (NodeType mixin : nodeType.getDeclaredSupertypes()) {
+                                       if (uiProvidersByType.containsKey(mixin.getName())) {
+                                               types.add(mixin.getName());
+                                       }
+                               }
                        }
                        // entity type
-                       if (context.isNodeType(EntityTypes.ENTITY_ENTITY)) {
-                               String typeName =context.getProperty(EntityNames.ENTITY_TYPE).getString();
-                               if (uiProvidersByType.containsKey(typeName)) {
-                                       types.add(typeName);
+                       if (context.isNodeType(EntityType.entity.get())) {
+                               if (context.hasProperty(EntityNames.ENTITY_TYPE)) {
+                                       String typeName = context.getProperty(EntityNames.ENTITY_TYPE).getString();
+                                       if (uiProvidersByType.containsKey(typeName)) {
+                                               types.add(typeName);
+                                       }
                                }
                        }