X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fosgi%2FBundleCmsTheme.java;h=f60d3352e98c61c921b260c7be244183b91c085b;hb=7f1b071dd54b9c3b85fc82d64993e1450cb99a12;hp=de7eec8c2a39e19ea93faa507a8b1ef6fc2aa4b8;hpb=f3ea14abccc33b1c3326417a87c91145be776c72;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/BundleCmsTheme.java b/org.argeo.cms/src/org/argeo/cms/osgi/BundleCmsTheme.java
index de7eec8c2..f60d3352e 100644
--- a/org.argeo.cms/src/org/argeo/cms/osgi/BundleCmsTheme.java
+++ b/org.argeo.cms/src/org/argeo/cms/osgi/BundleCmsTheme.java
@@ -17,7 +17,7 @@ import java.util.TreeSet;
import java.util.stream.Collectors;
import org.argeo.api.cms.ux.CmsTheme;
-import org.argeo.util.StreamUtils;
+import org.argeo.cms.util.StreamUtils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -31,11 +31,17 @@ import org.osgi.framework.BundleContext;
* / ** /*.{png,gif,jpeg,...}
.
*/
public class BundleCmsTheme implements CmsTheme {
- public final static String DEFAULT_CMS_THEME_BUNDLE = "org.argeo.theme.argeo2";
+// public final static String DEFAULT_CMS_THEME_BUNDLE = "org.argeo.theme.argeo2";
- public final static String CMS_THEME_PROPERTY = "argeo.cms.theme";
+// public final static String CMS_THEME_PROPERTY = "argeo.cms.theme";
+ @Deprecated
public final static String CMS_THEME_BUNDLE_PROPERTY = "argeo.cms.theme.bundle";
+ /** Declared theme ID, to be used by OSGi services to reference it as parent. */
+ public final static String THEME_ID_PROPERTY = "themeId";
+ public final static String SMALL_ICON_SIZE_PROPERTY = "smallIconSize";
+ public final static String BIG_ICON_SIZE_PROPERTY = "bigIconSize";
+
private final static String HEADER_CSS = "header.css";
private final static String FONTS_TXT = "fonts.txt";
private final static String BODY_HTML = "body.html";
@@ -45,6 +51,8 @@ public class BundleCmsTheme implements CmsTheme {
private CmsTheme parentTheme;
private String themeId;
+ private String declaredThemeId;;
+
private Set webCssPaths = new TreeSet<>();
private Set rapCssPaths = new TreeSet<>();
private Set swtCssPaths = new TreeSet<>();
@@ -71,6 +79,12 @@ public class BundleCmsTheme implements CmsTheme {
}
public void init(BundleContext bundleContext, Map properties) {
+ declaredThemeId = properties.get(THEME_ID_PROPERTY);
+ if (properties.containsKey(SMALL_ICON_SIZE_PROPERTY))
+ smallIconSize = Integer.valueOf(properties.get(SMALL_ICON_SIZE_PROPERTY));
+ if (properties.containsKey(BIG_ICON_SIZE_PROPERTY))
+ smallIconSize = Integer.valueOf(properties.get(BIG_ICON_SIZE_PROPERTY));
+
initResources(bundleContext, null);
}
@@ -103,6 +117,10 @@ public class BundleCmsTheme implements CmsTheme {
// swtCssPath = "/swt/";
// this.themeId = RWT.DEFAULT_THEME_ID;
this.themeId = themeBundle.getSymbolicName();
+ if (declaredThemeId != null && !declaredThemeId.equals(themeId))
+ throw new IllegalArgumentException(
+ "Declared theme id " + declaredThemeId + " is different from " + themeId);
+
webCssPaths = addCss(themeBundle, "/css/");
rapCssPaths = addCss(themeBundle, "/rap/");
swtCssPaths = addCss(themeBundle, "/swt/");
@@ -373,4 +391,12 @@ public class BundleCmsTheme implements CmsTheme {
this.parentTheme = parentTheme;
}
+ public void setSmallIconSize(Integer smallIconSize) {
+ this.smallIconSize = smallIconSize;
+ }
+
+ public void setBigIconSize(Integer bigIconSize) {
+ this.bigIconSize = bigIconSize;
+ }
+
}