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. */
/** Types related to entities. */
public enum EntityType implements JcrName {
// entity
- entity, definition,
+ entity, local,
// typology
typologies, terms, term,
// form
[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)
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. */
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);
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;
private String entityType;
+ static enum Property {
+ entityTypes;
+ }
+
@Override
public Control createUi(Composite parent, Node context) throws RepositoryException {
theme = CmsTheme.getCmsTheme(parent);
public void init(Map<String, String> properties) {
// TODO manage multiple entities
- entityType = properties.get(EntityConstants.TYPE);
+ entityType = properties.get(Property.entityTypes.name());
}
class SingleEntityViewer {
// 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);