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