1 package org
.argeo
.api
.cms
;
6 import org
.argeo
.api
.cms
.ux
.CmsTheme
;
7 import org
.argeo
.api
.cms
.ux
.CmsUi
;
9 /** An extensible user interface base on the CMS backend. */
10 public interface CmsApp
extends CmsEventSubscriber
{
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()}.
18 final static String UI_NAME_PROPERTY
= CmsApp
.class.getName() + ".ui.name";
20 final static String CONTEXT_NAME_PROPERTY
= "argeo.cms.app.contextName";
22 Set
<String
> getUiNames();
24 CmsUi
initUi(Object uiParent
);
26 void refreshUi(CmsUi cmsUi
, String state
);
28 void setState(CmsUi cmsUi
, String state
);
30 CmsTheme
getTheme(String uiName
);
32 boolean allThemesAvailable();
34 void addCmsAppListener(CmsAppListener listener
);
36 void removeCmsAppListener(CmsAppListener listener
);
38 CmsContext
getCmsContext();
41 default void onEvent(String topic
, Map
<String
, Object
> properties
) {