]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsApp.java
745e5a4000b0d5d95e4c8673dc19601171c310d3
[lgpl/argeo-commons.git] / 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 }