1 package org
.argeo
.api
.cms
;
5 import org
.argeo
.api
.cms
.ux
.CmsTheme
;
6 import org
.argeo
.api
.cms
.ux
.CmsUi
;
8 /** An extensible user interface base on the CMS backend. */
9 public interface CmsApp
{
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()}.
17 final static String UI_NAME_PROPERTY
= CmsApp
.class.getName() + ".ui.name";
19 final static String CONTEXT_NAME_PROPERTY
= "argeo.cms.app.contextName";
21 Set
<String
> getUiNames();
23 CmsUi
initUi(Object uiParent
);
25 void refreshUi(CmsUi cmsUi
, String state
);
27 void setState(CmsUi cmsUi
, String state
);
29 CmsTheme
getTheme(String uiName
);
31 boolean allThemesAvailable();
33 void addCmsAppListener(CmsAppListener listener
);
35 void removeCmsAppListener(CmsAppListener listener
);
37 CmsContext
getCmsContext();