]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.cms/src/org/argeo/api/cms/CmsApp.java
Make CMS running without data area, and remove unnecessary dependencies.
[lgpl/argeo-commons.git] / org.argeo.api.cms / src / org / argeo / api / cms / CmsApp.java
1 package org.argeo.api.cms;
2
3 import java.util.Set;
4
5 import org.argeo.api.cms.ux.CmsTheme;
6 import org.argeo.api.cms.ux.CmsUi;
7
8 /** An extensible user interface base on the CMS backend. */
9 public interface CmsApp {
10 /**
11 * If {@link CmsUi#setData(String, Object)} is set with this property, it
12 * indicates a different UI (typically with another theming. The {@link CmsApp}
13 * can use this information, but it doesn't have to be set, in which case a
14 * default UI must be provided. The provided value must belong to the values
15 * returned by {@link CmsApp#getUiNames()}.
16 */
17 final static String UI_NAME_PROPERTY = CmsApp.class.getName() + ".ui.name";
18
19 final static String CONTEXT_NAME_PROPERTY = "argeo.cms.app.contextName";
20
21 Set<String> getUiNames();
22
23 CmsUi initUi(Object uiParent);
24
25 void refreshUi(CmsUi cmsUi, String state);
26
27 void setState(CmsUi cmsUi, String state);
28
29 CmsTheme getTheme(String uiName);
30
31 boolean allThemesAvailable();
32
33 void addCmsAppListener(CmsAppListener listener);
34
35 void removeCmsAppListener(CmsAppListener listener);
36
37 CmsContext getCmsContext();
38 }