Improve theming customisation
[gpl/argeo-suite.git] / org.argeo.app.ui / src / org / argeo / app / ui / SuiteApp.java
index 7070ed59e807a68dc4fa0801affec968de471c47..e4d40cfa8f77c32a0a8e6f4372c679d368bb870e 100644 (file)
@@ -70,11 +70,14 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
        private String adminLeadPanePid;
        private String loginScreenPid;
 
-       private String defaultLayerPid = "argeo.suite.ui.dashboardLayer";
-
        private String defaultUiName = "app";
        private String adminUiName = "admin";
-       private String defaultThemeId = "org.argeo.suite.theme.default";
+
+       // FIXME such default names make refactoring more dangerous
+       @Deprecated
+       private String defaultLayerPid = "argeo.suite.ui.dashboardLayer";
+       @Deprecated
+       private String defaultThemeId = "org.argeo.app.theme.default";
 
        private Map<String, RankedObject<CmsUiProvider>> uiProvidersByPid = Collections.synchronizedMap(new HashMap<>());
        private Map<String, RankedObject<CmsUiProvider>> uiProvidersByType = Collections.synchronizedMap(new HashMap<>());
@@ -88,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");
@@ -137,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.");
@@ -158,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;
        }
 
@@ -633,5 +639,4 @@ public class SuiteApp extends AbstractCmsApp implements EventHandler {
                this.repository = repository;
        }
 
-       
 }