From: Mathieu Baudier Date: Sun, 29 Nov 2020 09:28:20 +0000 (+0100) Subject: Stabilise entity types. X-Git-Tag: argeo-suite-2.1.16~20 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=921e69ca45d5e257429c019b984428a59f891487 Stabilise entity types. --- diff --git a/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java b/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java index 3cd4a73..fe881ff 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java +++ b/org.argeo.entity.api/src/org/argeo/entity/EntityNames.java @@ -11,7 +11,7 @@ public interface EntityNames { final String TERM = "term"; final String NAME = "name"; - final String ENTITY_DEFINITIONS_PATH = "/entity"; +// final String ENTITY_DEFINITIONS_PATH = "/entity"; @Deprecated final String TYPOLOGIES_PATH = "/" + TERM; /** Administrative units. */ diff --git a/org.argeo.entity.api/src/org/argeo/entity/EntityType.java b/org.argeo.entity.api/src/org/argeo/entity/EntityType.java index 732c9b1..a5221f2 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/EntityType.java +++ b/org.argeo.entity.api/src/org/argeo/entity/EntityType.java @@ -3,7 +3,7 @@ package org.argeo.entity; /** Types related to entities. */ public enum EntityType implements JcrName { // entity - entity, definition, + entity, local, // typology typologies, terms, term, // form diff --git a/org.argeo.entity.api/src/org/argeo/entity/entity.cnd b/org.argeo.entity.api/src/org/argeo/entity/entity.cnd index cd6952a..baed374 100644 --- a/org.argeo.entity.api/src/org/argeo/entity/entity.cnd +++ b/org.argeo.entity.api/src/org/argeo/entity/entity.cnd @@ -10,21 +10,23 @@ [entity:entity] > mix:created, mix:referenceable mixin -//- entity:uid (String) m // an implementation dependent UID for each entity -//- entity:type (String) // the type of this entity + +[entity:local] > entity:entity +mixin +- entity:type (String) m // // ENTITY DEFINITION // -[entity:definition] > entity:composite, mix:created, mix:lastModified, mix:referenceable +//[entity:definition] > entity:composite, mix:created, mix:lastModified, mix:referenceable //- entity:type (String) multiple //[entity:part] //[entity:reference] -[entity:composite] -orderable +//[entity:composite] +//orderable //+ * (entity:part) //+ * (entity:reference) //+ * (entity:composite) diff --git a/org.argeo.entity.core/src/org/argeo/entity/core/JcrEntityDefinition.java b/org.argeo.entity.core/src/org/argeo/entity/core/JcrEntityDefinition.java index f76eb63..7fd26d1 100644 --- a/org.argeo.entity.core/src/org/argeo/entity/core/JcrEntityDefinition.java +++ b/org.argeo.entity.core/src/org/argeo/entity/core/JcrEntityDefinition.java @@ -10,10 +10,7 @@ import javax.jcr.Session; import org.argeo.api.NodeUtils; import org.argeo.entity.EntityConstants; import org.argeo.entity.EntityDefinition; -import org.argeo.entity.EntityNames; -import org.argeo.entity.EntityTypes; import org.argeo.jcr.Jcr; -import org.argeo.jcr.JcrUtils; import org.osgi.framework.BundleContext; /** An entity definition based on a JCR data structure. */ @@ -30,12 +27,12 @@ public class JcrEntityDefinition implements EntityDefinition { if (type == null) throw new IllegalArgumentException("Entity type property " + EntityConstants.TYPE + " must be set."); defaultEditoryId = properties.get(EntityConstants.DEFAULT_EDITORY_ID); - String definitionPath = EntityNames.ENTITY_DEFINITIONS_PATH + '/' + type; - if (!adminSession.itemExists(definitionPath)) { - Node entityDefinition = JcrUtils.mkdirs(adminSession, definitionPath, EntityTypes.ENTITY_DEFINITION); -// entityDefinition.addMixin(EntityTypes.ENTITY_DEFINITION); - adminSession.save(); - } +// String definitionPath = EntityNames.ENTITY_DEFINITIONS_PATH + '/' + type; +// if (!adminSession.itemExists(definitionPath)) { +// Node entityDefinition = JcrUtils.mkdirs(adminSession, definitionPath, EntityTypes.ENTITY_DEFINITION); +//// entityDefinition.addMixin(EntityTypes.ENTITY_DEFINITION); +// adminSession.save(); +// } initJcr(adminSession); } finally { Jcr.logout(adminSession); diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java index bbe53b7..b9aa5b7 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/RecentItems.java @@ -20,7 +20,6 @@ import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.ui.CmsView; import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.eclipse.ui.EclipseUiUtils; -import org.argeo.entity.EntityConstants; import org.argeo.entity.EntityType; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrUtils; @@ -61,6 +60,10 @@ public class RecentItems implements CmsUiProvider { private String entityType; + static enum Property { + entityTypes; + } + @Override public Control createUi(Composite parent, Node context) throws RepositoryException { theme = CmsTheme.getCmsTheme(parent); @@ -129,7 +132,7 @@ public class RecentItems implements CmsUiProvider { public void init(Map properties) { // TODO manage multiple entities - entityType = properties.get(EntityConstants.TYPE); + entityType = properties.get(Property.entityTypes.name()); } class SingleEntityViewer { diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java index db8a8dc..ead041c 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java @@ -323,17 +323,21 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { // Specific UI related events SuiteUi ui = getRelatedUi(event); try { - String currentLayerId = ui.getCurrentLayerId(); - SuiteLayer currentLayer = currentLayerId != null ? layersByPid.get(currentLayerId).get() : null; +// String currentLayerId = ui.getCurrentLayerId(); +// SuiteLayer currentLayer = currentLayerId != null ? layersByPid.get(currentLayerId).get() : null; if (isTopic(event, SuiteEvent.refreshPart)) { Node node = getNode(ui, event); CmsUiProvider uiProvider = findByType(uiProvidersByType, node); - currentLayer.view(uiProvider, ui.getCurrentWorkArea(), node); + SuiteLayer layer = findByType(layersByType, node); + ui.switchToLayer(layer, node); + layer.view(uiProvider, ui.getCurrentWorkArea(), node); ui.getCmsView().stateChanged(nodeToState(node), Jcr.getTitle(node)); } else if (isTopic(event, SuiteEvent.openNewPart)) { Node node = getNode(ui, event); CmsUiProvider uiProvider = findByType(uiProvidersByType, node); - currentLayer.open(uiProvider, ui.getCurrentWorkArea(), node); + SuiteLayer layer = findByType(layersByType, node); + ui.switchToLayer(layer, node); + layer.open(uiProvider, ui.getCurrentWorkArea(), node); ui.getCmsView().stateChanged(nodeToState(node), Jcr.getTitle(node)); } else if (isTopic(event, SuiteEvent.switchLayer)) { String layerId = get(event, SuiteEvent.LAYER);