Keep suite stabilising data model.
[gpl/argeo-suite.git] / org.argeo.suite.ui / src / org / argeo / suite / ui / SuiteApp.java
index db8a8dc17e0d589d01d2ae0de04580bfe0e7744d..e363a62ff23d0b7ec325f5093a18701a61d2fbf9 100644 (file)
@@ -323,22 +323,27 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                // Specific UI related events
                SuiteUi ui = getRelatedUi(event);
                try {
                // 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);
                        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);
                                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.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.getCmsView().navigateTo("~");
                                } else {
                                        Node node = getNode(ui, event);
                                        if (node != null) {
                                } else {
                                        Node node = getNode(ui, event);
                                        if (node != null) {