X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2FCmsApp.java;fp=org.argeo.api.cms%2Fsrc%2Forg%2Fargeo%2Fapi%2Fcms%2FCmsApp.java;h=761191e5dd06052842482c054751b71c6b9096ad;hb=7d2a002f5dcfe8a8c7b29803b70d4b1aff265ed1;hp=0000000000000000000000000000000000000000;hpb=865fc51900459b888938cc0d6943673ee6f20d09;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/CmsApp.java b/org.argeo.api.cms/src/org/argeo/api/cms/CmsApp.java new file mode 100644 index 000000000..761191e5d --- /dev/null +++ b/org.argeo.api.cms/src/org/argeo/api/cms/CmsApp.java @@ -0,0 +1,31 @@ +package org.argeo.api.cms; + +import java.util.Set; + +/** An extensible user interface base on the CMS backend. */ +public interface CmsApp { + /** + * If {@link CmsUi#setData(String, Object)} is set with this property, it + * indicates a different UI (typically with another theming. The {@link CmsApp} + * can use this information, but it doesn't have to be set, in which case a + * default UI must be provided. The provided value must belong to the values + * returned by {@link CmsApp#getUiNames()}. + */ + final static String UI_NAME_PROPERTY = CmsApp.class.getName() + ".ui.name"; + + Set getUiNames(); + + CmsUi initUi(Object uiParent); + + void refreshUi(CmsUi cmsUi, String state); + + void setState(CmsUi cmsUi, String state); + + CmsTheme getTheme(String uiName); + + boolean allThemesAvailable(); + + void addCmsAppListener(CmsAppListener listener); + + void removeCmsAppListener(CmsAppListener listener); +}