Keep working on authorisations.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / SuiteApp.java
index db8a8dc17e0d589d01d2ae0de04580bfe0e7744d..d00efc9208469daa38f561163bdaee0c6a110a41 100644 (file)
@@ -136,7 +136,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                                        Session adminSession = null;
                                        try {
                                                adminSession = NodeUtils.openDataAdminSession(getRepository(), null);
-                                               Node userDir = SuiteUtils.getOrCreateSessionDir(adminSession, cmsSession);
+                                               Node userDir = SuiteUtils.getOrCreateCmsSessionNode(adminSession, cmsSession);
                                                ui.initSessions(getRepository(), userDir.getPath());
                                        } finally {
                                                Jcr.logout(adminSession);
@@ -323,22 +323,27 @@ 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);
                                if (layerId != null) {
-                                       ui.switchToLayer(layerId, Jcr.getRootNode(ui.getSession(null)));
+                                       ui.switchToLayer(layerId, ui.getUserDir());
+                                       // ui.getCmsView().navigateTo("~");
                                } else {
                                        Node node = getNode(ui, event);
                                        if (node != null) {