Improve theming customisation
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Feb 2022 10:40:53 +0000 (11:40 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Feb 2022 10:40:53 +0000 (11:40 +0100)
org.argeo.app.theme.default/OSGI-INF/cmsTheme.xml
org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java

index 06df08ecad58b7de611ae43501106cfc4ace9326..1a4e589009b49ae9c77fbc374b18dcbdc999e3e9 100644 (file)
@@ -4,4 +4,5 @@
    <service>
       <provide interface="org.argeo.api.cms.CmsTheme"/>
    </service>
+   <property name="themeId" type="String" value="org.argeo.app.theme.default"/>
 </scr:component>
index 0d898f5e22b0dbc6bb1239d3434bd67125e11f73..e4d40cfa8f77c32a0a8e6f4372c679d368bb870e 100644 (file)
@@ -70,10 +70,9 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        private String adminLeadPanePid;
        private String loginScreenPid;
 
-
        private String defaultUiName = "app";
        private String adminUiName = "admin";
-       
+
        // FIXME such default names make refactoring more dangerous
        @Deprecated
        private String defaultLayerPid = "argeo.suite.ui.dashboardLayer";
@@ -92,7 +91,6 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
 
        private Repository repository;
 
-
        public void init(Map<String, Object> properties) {
                if (log.isDebugEnabled())
                        log.info("Argeo Suite App started");
@@ -141,8 +139,9 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
 
        @Override
        public CmsUi initUi(Object parent) {
-               Composite uiParent =(Composite) parent;
-               String uiName = uiParent.getData(UI_NAME_PROPERTY) != null ? uiParent.getData(UI_NAME_PROPERTY).toString() : null;
+               Composite uiParent = (Composite) parent;
+               String uiName = uiParent.getData(UI_NAME_PROPERTY) != null ? uiParent.getData(UI_NAME_PROPERTY).toString()
+                               : null;
                CmsView cmsView = CmsSwtUtils.getCmsView(uiParent);
                if (cmsView == null)
                        throw new IllegalStateException("No CMS view is registered.");
@@ -162,6 +161,9 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
 
        @Override
        public String getThemeId(String uiName) {
+               String themeId = System.getProperty("org.argeo.app.theme.default");
+               if (themeId != null)
+                       return themeId;
                return defaultThemeId;
        }
 
@@ -637,5 +639,4 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                this.repository = repository;
        }
 
-       
 }