* <code>/ ** /*.{png,gif,jpeg,...}</code>.<br>
*/
public class CmsTheme {
+ public final static String DEFAULT_CMS_THEME_BUNDLE = "org.argeo.theme.argeo2";
+
+ public final static String CMS_THEME_BUNDLE_PROPERTY = "argeo.cms.theme.bundle";
+
private final static Log log = LogFactory.getLog(CmsTheme.class);
private String themeId;
private String basePath;
private String cssPath;
+ private final Bundle themeBundle;
public CmsTheme(BundleContext bundleContext) {
this(bundleContext, null);
}
public CmsTheme(BundleContext bundleContext, String symbolicName) {
- Bundle themeBundle;
if (symbolicName == null) {
themeBundle = bundleContext.getBundle();
// basePath = "/theme/";
continue resources; // skip maven output
application.addResource(name, resources.get(name));
if (log.isTraceEnabled())
- log.trace("Added resource " + name);
+ log.trace("Theme " + themeBundle + ": added resource " + name);
}
for (String name : css.keySet()) {
application.addStyleSheet(themeId, name, css.get(name));
if (log.isDebugEnabled())
- log.debug("Added RAP CSS " + name);
+ log.debug("Theme " + themeBundle + ": added RAP CSS " + name);
}
}
package org.argeo.cms.web;
+import static org.argeo.cms.ui.util.CmsTheme.CMS_THEME_BUNDLE_PROPERTY;
+import static org.argeo.cms.ui.util.CmsTheme.DEFAULT_CMS_THEME_BUNDLE;
+
import java.util.HashMap;
import java.util.Map;
import org.argeo.cms.ui.util.CmsTheme;
import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.application.AbstractEntryPoint;
import org.eclipse.rap.rwt.application.Application;
import org.eclipse.rap.rwt.application.ApplicationConfiguration;
import org.eclipse.rap.rwt.client.WebClient;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
import org.osgi.framework.BundleContext;
/** Lightweight web app using only RWT and not the whole Eclipse platform. */
private CmsTheme theme;
- public void init(BundleContext bundleContext) {
- theme = new CmsTheme(bundleContext);
+ public void init(BundleContext bundleContext, Map<String, Object> properties) {
+ if (properties.containsKey(CMS_THEME_BUNDLE_PROPERTY)) {
+ String cmsThemeBundle = properties.get(CMS_THEME_BUNDLE_PROPERTY).toString();
+ theme = new CmsTheme(bundleContext, cmsThemeBundle);
+ } else {
+ theme = new CmsTheme(bundleContext, DEFAULT_CMS_THEME_BUNDLE);
+ }
}
public void destroy() {
}
+ /** To be overridden. Does nothing by default. */
+ protected void addEntryPoints(Application application, Map<String, String> properties) {
+
+ }
+
@Override
public void configure(Application application) {
theme.apply(application);
Map<String, String> properties = new HashMap<>();
properties.put(WebClient.THEME_ID, RWT.DEFAULT_THEME_ID);
properties.put(WebClient.HEAD_HTML, theme.getAdditionalHeaders());
- application.addEntryPoint("/test", TextEntryPoint.class, properties);
+ addEntryPoints(application, properties);
}
-
- static class TextEntryPoint extends AbstractEntryPoint {
- private static final long serialVersionUID = 2245808564950897823L;
-
- @Override
- protected void createContents(Composite parent) {
- parent.setLayout(new GridLayout());
- new Label(parent, SWT.NONE).setText("Hello World!");
- }
-
- }
-
}