X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FSuiteApp.java;fp=core%2Forg.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FSuiteApp.java;h=5ca46393daeed6dc5423ec42f7204027e06cc6da;hp=0343f710592b9f77784a70480663fef3b3fc77dc;hb=af39881318e47af8fff3e505b7e89099b20a12e8;hpb=8365dcb2020defd73ecdf690b2c7f2a20d30f489 diff --git a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java index 0343f71..5ca4639 100644 --- a/core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java +++ b/core/org.argeo.suite.ui/src/org/argeo/suite/ui/SuiteApp.java @@ -336,7 +336,7 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { if (!state.startsWith("/")) { if (parent instanceof SuiteUi) { SuiteUi ui = (SuiteUi) parent; - if (LOGIN.equals(state) || state.equals(HOME_STATE)) { + if (LOGIN.equals(state)) { String appTitle = ""; if (ui.getTitle() != null) appTitle = ui.getTitle().lead(); @@ -348,7 +348,8 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { // return; // does nothing // else { Map properties = new HashMap<>(); - properties.put(SuiteEvent.LAYER, state); + String layerId = HOME_STATE.equals(state) ? defaultLayerPid : state; + properties.put(SuiteEvent.LAYER, layerId); properties.put(SuiteEvent.NODE_PATH, HOME_STATE); ui.getCmsView().sendEvent(SuiteEvent.switchLayer.topic(), properties); // } @@ -443,6 +444,8 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { if (layerId != null) { // ui.switchToLayer(layerId, ui.getUserDir()); SuiteLayer suiteLayer = findLayer(layerId); + if (suiteLayer == null) + throw new IllegalArgumentException("No layer '" + layerId + "' available."); Localized layerTitle = suiteLayer.getTitle(); // FIXME make sure we don't rebuild the work area twice Composite workArea = ui.getCmsView().doAs(() -> ui.switchToLayer(layerId, ui.getUserDir())); @@ -452,7 +455,8 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler { Node nodeFromState = getNode(ui, event); if (nodeFromState != null && nodeFromState.getPath().equals(ui.getUserDir().getPath())) { // default layer view is forced - ui.getCmsView().stateChanged(layerId, appTitle + title); + String state = defaultLayerPid.equals(layerId) ? "~" : layerId; + ui.getCmsView().stateChanged(state, appTitle + title); suiteLayer.view(null, workArea, nodeFromState); } else { Node layerCurrentContext = suiteLayer.getCurrentContext(workArea);