X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.suite.ui%2Fsrc%2Forg%2Fargeo%2Fsuite%2Fui%2FArgeoSuiteApp.java;h=b669d45aa7078563f56065741428f986466381b4;hp=7aebdc20fde6a1df5918009f31acb2610746b6a1;hb=a5ba54441da727f3965105a71b3a114b31dd34de;hpb=5ace611de7a12d74a6b606861b89a2d3517514b0 diff --git a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java index 7aebdc2..b669d45 100644 --- a/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java +++ b/org.argeo.suite.ui/src/org/argeo/suite/ui/ArgeoSuiteApp.java @@ -9,24 +9,39 @@ import javax.jcr.Node; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.cms.ui.CmsApp; +import org.argeo.cms.ui.AbstractCmsApp; +import org.argeo.cms.ui.CmsTheme; import org.argeo.cms.ui.CmsUiProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.osgi.framework.Constants; -public class ArgeoSuiteApp implements CmsApp { +/** The Argeo Suite App. */ +public class ArgeoSuiteApp extends AbstractCmsApp { private final static Log log = LogFactory.getLog(ArgeoSuiteApp.class); + public final static String PID_PREFIX = "argeo.work."; public final static String HEADER_PID = PID_PREFIX + "header"; public final static String LEAD_PANE_PID = PID_PREFIX + "leadPane"; private final static String DEFAULT_UI_NAME = "work"; + private final static String DEFAULT_THEME_ID = "org.argeo.suite.theme.default"; private ArgeoSuiteUi argeoSuiteUi; private Map uiProviders = new TreeMap<>(); + public void init(Map properties) { + if (log.isDebugEnabled()) + log.info("Argeo Suite App started"); + } + + public void destroy(Map properties) { + if (log.isDebugEnabled()) + log.info("Argeo Suite App stopped"); + + } + @Override public Set getUiNames() { HashSet uiNames = new HashSet<>(); @@ -37,12 +52,21 @@ public class ArgeoSuiteApp implements CmsApp { @Override public void initUi(String uiName, Composite parent) { if (DEFAULT_UI_NAME.equals(uiName)) { + CmsTheme theme = getTheme(uiName); + if (theme != null) + CmsTheme.registerCmsTheme(parent.getShell(), theme); argeoSuiteUi = new ArgeoSuiteUi(parent, SWT.NONE); refresh(uiName); } } + @Override + public String getThemeId(String uiName) { + // TODO make it configurable + return DEFAULT_THEME_ID; + } + public void refresh(String uiName) { if (DEFAULT_UI_NAME.equals(uiName)) { Node context = null; @@ -57,6 +81,8 @@ public class ArgeoSuiteApp implements CmsApp { log.error("No service pid found for " + uiProvider.getClass() + ", " + properties); } else { uiProviders.put(servicePid, uiProvider); + if (log.isDebugEnabled()) + log.debug("Added UI provider " + servicePid + " to CMS app."); } }