From 618968cf9d259ccded45a9455a26c516dbfe828f Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 13 Jun 2023 08:33:38 +0200 Subject: [PATCH] Refactor suite UX --- org.argeo.app.core/bnd.bnd | 1 + .../org/argeo/app/swt/ux}/DefaultFooter.java | 6 +-- .../org/argeo/app/swt/ux}/DefaultHeader.java | 6 +-- .../argeo/app/swt/ux}/DefaultLeadPane.java | 35 +++++++++++++--- .../argeo/app/swt/ux}/DefaultLoginScreen.java | 6 +-- .../org/argeo/app/swt/ux/SwtArgeoApp.java} | 20 +++++---- .../OSGI-INF/adminLeadPane.xml | 2 +- swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml | 2 +- swt/org.argeo.app.ui/OSGI-INF/footer.xml | 2 +- swt/org.argeo.app.ui/OSGI-INF/header.xml | 2 +- swt/org.argeo.app.ui/OSGI-INF/leadPane.xml | 2 +- swt/org.argeo.app.ui/OSGI-INF/loginScreen.xml | 2 +- swt/org.argeo.app.ui/bnd.bnd | 1 + .../src/org/argeo/app/ui/SuiteUiUtils.java | 41 ++----------------- .../argeo/app/ui/publish/PublishingApp.java | 8 ++-- 15 files changed, 66 insertions(+), 70 deletions(-) rename swt/{org.argeo.app.ui/src/org/argeo/app/ui => org.argeo.app.swt/src/org/argeo/app/swt/ux}/DefaultFooter.java (88%) rename swt/{org.argeo.app.ui/src/org/argeo/app/ui => org.argeo.app.swt/src/org/argeo/app/swt/ux}/DefaultHeader.java (96%) rename swt/{org.argeo.app.ui/src/org/argeo/app/ui => org.argeo.app.swt/src/org/argeo/app/swt/ux}/DefaultLeadPane.java (84%) rename swt/{org.argeo.app.ui/src/org/argeo/app/ui => org.argeo.app.swt/src/org/argeo/app/swt/ux}/DefaultLoginScreen.java (89%) rename swt/{org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java => org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java} (97%) diff --git a/org.argeo.app.core/bnd.bnd b/org.argeo.app.core/bnd.bnd index e6be573..dce5772 100644 --- a/org.argeo.app.core/bnd.bnd +++ b/org.argeo.app.core/bnd.bnd @@ -12,6 +12,7 @@ javax.jcr.nodetype,\ javax.jcr.security,\ com.fasterxml.jackson.core,\ org.apache.jackrabbit.*;version="[1,4)",\ +org.argeo.cms.acr,\ * Require-Capability:\ diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultFooter.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultFooter.java similarity index 88% rename from swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultFooter.java rename to swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultFooter.java index 5e54368..303952d 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultFooter.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultFooter.java @@ -1,10 +1,10 @@ -package org.argeo.app.ui; +package org.argeo.app.swt.ux; import java.util.Map; import org.argeo.api.acr.Content; import org.argeo.cms.swt.CmsSwtUtils; -import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.swt.acr.SwtUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; @@ -12,7 +12,7 @@ import org.eclipse.swt.widgets.Control; import org.osgi.framework.BundleContext; /** Footer of a standard Argeo Suite application. */ -public class DefaultFooter implements CmsUiProvider { +public class DefaultFooter implements SwtUiProvider { @Override public Control createUiPart(Composite parent, Content context) { parent.setLayout(CmsSwtUtils.noSpaceGridLayout()); diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultHeader.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultHeader.java similarity index 96% rename from swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultHeader.java rename to swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultHeader.java index ede28d1..36b37bf 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultHeader.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultHeader.java @@ -1,4 +1,4 @@ -package org.argeo.app.ui; +package org.argeo.app.swt.ux; import java.util.Map; @@ -10,7 +10,7 @@ import org.argeo.cms.CurrentUser; import org.argeo.cms.Localized; import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; -import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.swt.acr.SwtUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; @@ -23,7 +23,7 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.wiring.BundleWiring; /** Header of a standard Argeo Suite application. */ -public class DefaultHeader implements CmsUiProvider { +public class DefaultHeader implements SwtUiProvider { public final static String TITLE_PROPERTY = "argeo.suite.ui.header.title"; private Localized title = null; diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLeadPane.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java similarity index 84% rename from swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLeadPane.java rename to swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java index 9a2faf5..2b17dee 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLeadPane.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLeadPane.java @@ -1,4 +1,4 @@ -package org.argeo.app.ui; +package org.argeo.app.swt.ux; import java.util.ArrayList; import java.util.Arrays; @@ -10,28 +10,32 @@ import java.util.TreeMap; import org.argeo.api.acr.Content; import org.argeo.api.cms.CmsLog; +import org.argeo.api.cms.ux.CmsIcon; import org.argeo.api.cms.ux.CmsView; import org.argeo.app.api.RankedObject; import org.argeo.app.core.SuiteUtils; -import org.argeo.app.swt.ux.SwtAppLayer; import org.argeo.app.ux.SuiteIcon; import org.argeo.app.ux.SuiteStyle; +import org.argeo.app.ux.SuiteUxEvent; import org.argeo.cms.CurrentUser; +import org.argeo.cms.LocaleUtils; import org.argeo.cms.Localized; +import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; -import org.argeo.cms.ui.CmsUiProvider; +import org.argeo.cms.swt.acr.SwtUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; import org.osgi.framework.wiring.BundleWiring; /** Side pane listing various perspectives. */ -public class DefaultLeadPane implements CmsUiProvider { +public class DefaultLeadPane implements SwtUiProvider { private final static CmsLog log = CmsLog.getLog(DefaultLeadPane.class); public static enum Property { @@ -126,7 +130,7 @@ public class DefaultLeadPane implements CmsUiProvider { buttonParent = adminLayersC; else buttonParent = appLayersC; - Button b = SuiteUiUtils.createLayerButton(buttonParent, layerId, title, icon, l10nClassLoader); + Button b = createLayerButton(buttonParent, layerId, title, icon, l10nClassLoader); if (first == null) first = b; } @@ -134,6 +138,27 @@ public class DefaultLeadPane implements CmsUiProvider { return first; } + protected Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon, + ClassLoader l10nClassLoader) { + CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent); + Button button = new Button(parent, SWT.PUSH); + CmsSwtUtils.style(button, SuiteStyle.leadPane); + if (icon != null) + button.setImage(theme.getBigIcon(icon)); + button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false)); + // button.setToolTipText(msg.lead()); + if (msg != null) { + Label lbl = new Label(parent, SWT.CENTER); + CmsSwtUtils.style(lbl, SuiteStyle.leadPane); + String txt = LocaleUtils.lead(msg, l10nClassLoader); +// String txt = msg.lead(); + lbl.setText(txt); + lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false)); + } + CmsSwtUtils.sendEventOnSelect(button, SuiteUxEvent.switchLayer.topic(), SuiteUxEvent.LAYER, layer); + return button; + } + public void init(BundleContext bundleContext, Map properties) { l10nClassLoader = bundleContext != null ? bundleContext.getBundle().adapt(BundleWiring.class).getClassLoader() : getClass().getClassLoader(); diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLoginScreen.java similarity index 89% rename from swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java rename to swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLoginScreen.java index 1cb1f95..326ed4f 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/DefaultLoginScreen.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/DefaultLoginScreen.java @@ -1,12 +1,12 @@ -package org.argeo.app.ui; +package org.argeo.app.swt.ux; import org.argeo.api.acr.Content; import org.argeo.api.cms.CmsContext; import org.argeo.api.cms.ux.CmsView; import org.argeo.cms.CurrentUser; import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.swt.acr.SwtUiProvider; import org.argeo.cms.swt.auth.CmsLogin; -import org.argeo.cms.ui.CmsUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; @@ -14,7 +14,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; /** Provides a login screen. */ -public class DefaultLoginScreen implements CmsUiProvider { +public class DefaultLoginScreen implements SwtUiProvider { private CmsContext cmsContext; @Override diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java similarity index 97% rename from swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java rename to swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java index da32c1a..0b6c34d 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/ux/SwtArgeoApp.java @@ -1,4 +1,4 @@ -package org.argeo.app.ui; +package org.argeo.app.swt.ux; import static org.argeo.api.cms.ux.CmsView.CMS_VIEW_UID_PROPERTY; @@ -19,6 +19,7 @@ import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentRepository; import org.argeo.api.acr.spi.ProvidedSession; import org.argeo.api.cms.CmsConstants; +import org.argeo.api.cms.CmsEvent; import org.argeo.api.cms.CmsEventSubscriber; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.CmsSession; @@ -30,8 +31,6 @@ import org.argeo.app.api.EntityConstants; import org.argeo.app.api.EntityName; import org.argeo.app.api.EntityType; import org.argeo.app.api.RankedObject; -import org.argeo.app.swt.ux.SwtAppLayer; -import org.argeo.app.swt.ux.SwtAppUi; import org.argeo.app.ux.AbstractArgeoApp; import org.argeo.app.ux.AppUi; import org.argeo.app.ux.SuiteUxEvent; @@ -49,8 +48,8 @@ import org.eclipse.swt.widgets.Composite; import org.osgi.framework.Constants; /** The Argeo Suite App. */ -public class SuiteApp extends AbstractArgeoApp implements CmsEventSubscriber { - private final static CmsLog log = CmsLog.getLog(SuiteApp.class); +public class SwtArgeoApp extends AbstractArgeoApp implements CmsEventSubscriber { + private final static CmsLog log = CmsLog.getLog(SwtArgeoApp.class); public final static String PUBLIC_BASE_PATH_PROPERTY = "publicBasePath"; public final static String DEFAULT_UI_NAME_PROPERTY = "defaultUiName"; @@ -469,7 +468,7 @@ public class SuiteApp extends AbstractArgeoApp implements CmsEventSubscriber { if (ui.getTitle() != null) appTitle = ui.getTitle().lead() + " - "; - if (SuiteUiUtils.isTopic(topic, SuiteUxEvent.refreshPart)) { + if (isTopic(topic, SuiteUxEvent.refreshPart)) { Content node = getContentFromEvent(ui, event); if (node == null) return; @@ -478,7 +477,7 @@ public class SuiteApp extends AbstractArgeoApp implements CmsEventSubscriber { ui.switchToLayer(layer, node); layer.view(uiProvider, ui.getCurrentWorkArea(), node); ui.getCmsView().stateChanged(nodeToState(node), appTitle + CmsUxUtils.getTitle(node)); - } else if (SuiteUiUtils.isTopic(topic, SuiteUxEvent.openNewPart)) { + } else if (isTopic(topic, SuiteUxEvent.openNewPart)) { Content node = getContentFromEvent(ui, event); if (node == null) return; @@ -487,7 +486,7 @@ public class SuiteApp extends AbstractArgeoApp implements CmsEventSubscriber { ui.switchToLayer(layer, node); layer.open(uiProvider, ui.getCurrentWorkArea(), node); ui.getCmsView().stateChanged(nodeToState(node), appTitle + CmsUxUtils.getTitle(node)); - } else if (SuiteUiUtils.isTopic(topic, SuiteUxEvent.switchLayer)) { + } else if (isTopic(topic, SuiteUxEvent.switchLayer)) { String layerId = get(event, SuiteUxEvent.LAYER); if (layerId != null) { SwtAppLayer suiteLayer = findLayer(layerId); @@ -531,6 +530,11 @@ public class SuiteApp extends AbstractArgeoApp implements CmsEventSubscriber { }); } + private boolean isTopic(String topic, CmsEvent cmsEvent) { + Objects.requireNonNull(topic); + return topic.equals(cmsEvent.topic()); + } + protected Content getContentFromEvent(SwtAppUi ui, Map event) { ProvidedSession contentSession = (ProvidedSession) CmsUxUtils.getContentSession(contentRepository, ui.getCmsView()); diff --git a/swt/org.argeo.app.ui/OSGI-INF/adminLeadPane.xml b/swt/org.argeo.app.ui/OSGI-INF/adminLeadPane.xml index 306ad94..db87157 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/adminLeadPane.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/adminLeadPane.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml b/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml index f170f97..7a516fc 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/cmsApp.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/OSGI-INF/footer.xml b/swt/org.argeo.app.ui/OSGI-INF/footer.xml index 8d20231..ded75df 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/footer.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/footer.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/OSGI-INF/header.xml b/swt/org.argeo.app.ui/OSGI-INF/header.xml index cb792e5..e6713ed 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/header.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/header.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/OSGI-INF/leadPane.xml b/swt/org.argeo.app.ui/OSGI-INF/leadPane.xml index a620438..57a7468 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/leadPane.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/leadPane.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/OSGI-INF/loginScreen.xml b/swt/org.argeo.app.ui/OSGI-INF/loginScreen.xml index eab7592..6b3d49d 100644 --- a/swt/org.argeo.app.ui/OSGI-INF/loginScreen.xml +++ b/swt/org.argeo.app.ui/OSGI-INF/loginScreen.xml @@ -1,6 +1,6 @@ - + diff --git a/swt/org.argeo.app.ui/bnd.bnd b/swt/org.argeo.app.ui/bnd.bnd index 4a74f2d..fb2e3f7 100644 --- a/swt/org.argeo.app.ui/bnd.bnd +++ b/swt/org.argeo.app.ui/bnd.bnd @@ -39,4 +39,5 @@ org.eclipse.jface.window,\ org.eclipse.jface.dialogs,\ org.eclipse.rap.rwt,\ javax.servlet.*;version="[3,5)",\ +javax.jcr.nodetype,\ * diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java index c98847a..5568201 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/SuiteUiUtils.java @@ -7,7 +7,6 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; -import java.util.Objects; import javax.jcr.Node; import javax.jcr.RepositoryException; @@ -15,18 +14,15 @@ import javax.jcr.Session; import org.apache.commons.io.IOUtils; import org.argeo.api.acr.Content; -import org.argeo.api.cms.CmsEvent; import org.argeo.api.cms.ux.CmsEditable; -import org.argeo.api.cms.ux.CmsIcon; import org.argeo.api.cms.ux.CmsStyle; import org.argeo.app.api.EntityNames; import org.argeo.app.api.EntityType; +import org.argeo.app.swt.ux.SwtArgeoApp; import org.argeo.app.ux.SuiteStyle; import org.argeo.app.ux.SuiteUxEvent; -import org.argeo.cms.LocaleUtils; import org.argeo.cms.Localized; import org.argeo.cms.jcr.acr.JcrContent; -import org.argeo.cms.swt.CmsSwtTheme; import org.argeo.cms.swt.CmsSwtUtils; import org.argeo.cms.swt.dialogs.LightweightDialog; import org.argeo.cms.ui.util.CmsLink; @@ -367,11 +363,11 @@ public class SuiteUiUtils { } public static String toLink(Content node) { - return node != null ? "#" + CmsSwtUtils.cleanPathForUrl(SuiteApp.nodeToState(node)) : null; + return node != null ? "#" + CmsSwtUtils.cleanPathForUrl(SwtArgeoApp.nodeToState(node)) : null; } public static String toLink(Node node) { - return node != null ? "#" + CmsSwtUtils.cleanPathForUrl(SuiteApp.nodeToState(JcrContent.nodeToContent(node))) + return node != null ? "#" + CmsSwtUtils.cleanPathForUrl(SwtArgeoApp.nodeToState(JcrContent.nodeToContent(node))) : null; } @@ -401,37 +397,6 @@ public class SuiteUiUtils { return lbl; } -// public static boolean isCoworker(CmsView cmsView) { -// boolean coworker = cmsView.doAs(() -> CurrentUser.isInRole(SuiteRole.coworker.dn())); -// return coworker; -// } - - public static boolean isTopic(String topic, CmsEvent cmsEvent) { - Objects.requireNonNull(topic); - return topic.equals(cmsEvent.topic()); - } - - public static Button createLayerButton(Composite parent, String layer, Localized msg, CmsIcon icon, - ClassLoader l10nClassLoader) { - CmsSwtTheme theme = CmsSwtUtils.getCmsTheme(parent); - Button button = new Button(parent, SWT.PUSH); - CmsSwtUtils.style(button, SuiteStyle.leadPane); - if (icon != null) - button.setImage(theme.getBigIcon(icon)); - button.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, true, false)); - // button.setToolTipText(msg.lead()); - if (msg != null) { - Label lbl = new Label(parent, SWT.CENTER); - CmsSwtUtils.style(lbl, SuiteStyle.leadPane); - String txt = LocaleUtils.lead(msg, l10nClassLoader); -// String txt = msg.lead(); - lbl.setText(txt); - lbl.setLayoutData(new GridData(SWT.CENTER, SWT.TOP, true, false)); - } - CmsSwtUtils.sendEventOnSelect(button, SuiteUxEvent.switchLayer.topic(), SuiteUxEvent.LAYER, layer); - return button; - } - @Deprecated public static Map eventProperties(Node node) { Map properties = new HashMap<>(); diff --git a/swt/org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingApp.java b/swt/org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingApp.java index ad8a913..9057a6b 100644 --- a/swt/org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingApp.java +++ b/swt/org.argeo.app.ui/src/org/argeo/app/ui/publish/PublishingApp.java @@ -1,7 +1,7 @@ package org.argeo.app.ui.publish; -import static org.argeo.app.ui.SuiteApp.DEFAULT_THEME_ID_PROPERTY; -import static org.argeo.app.ui.SuiteApp.DEFAULT_UI_NAME_PROPERTY; +import static org.argeo.app.swt.ux.SwtArgeoApp.DEFAULT_THEME_ID_PROPERTY; +import static org.argeo.app.swt.ux.SwtArgeoApp.DEFAULT_UI_NAME_PROPERTY; import java.util.HashSet; import java.util.Map; @@ -14,7 +14,7 @@ import javax.jcr.Session; import org.argeo.api.cms.CmsApp; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.ux.CmsUi; -import org.argeo.app.ui.SuiteApp; +import org.argeo.app.swt.ux.SwtArgeoApp; import org.argeo.cms.AbstractCmsApp; import org.argeo.cms.ui.CmsUiProvider; import org.argeo.cms.util.LangUtils; @@ -47,7 +47,7 @@ public class PublishingApp extends AbstractCmsApp { defaultUiName = LangUtils.get(properties, DEFAULT_UI_NAME_PROPERTY); if (properties.containsKey(DEFAULT_THEME_ID_PROPERTY)) defaultThemeId = LangUtils.get(properties, DEFAULT_THEME_ID_PROPERTY); - publicBasePath = LangUtils.get(properties, SuiteApp.PUBLIC_BASE_PATH_PROPERTY); + publicBasePath = LangUtils.get(properties, SwtArgeoApp.PUBLIC_BASE_PATH_PROPERTY); pid = properties.get(Constants.SERVICE_PID); if (log.isDebugEnabled()) -- 2.30.2