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