Improve UI event support
[lgpl/argeo-commons.git] / org.argeo.api.cms / src / org / argeo / api / cms / CmsApp.java
index 761191e5dd06052842482c054751b71c6b9096ad..b180fff75b67593772f8482c1489c2fad69fc9f7 100644 (file)
@@ -1,9 +1,13 @@
 package org.argeo.api.cms;
 
+import java.util.Map;
 import java.util.Set;
 
+import org.argeo.api.cms.ux.CmsTheme;
+import org.argeo.api.cms.ux.CmsUi;
+
 /** An extensible user interface base on the CMS backend. */
-public interface CmsApp {
+public interface CmsApp extends CmsEventSubscriber {
        /**
         * If {@link CmsUi#setData(String, Object)} is set with this property, it
         * indicates a different UI (typically with another theming. The {@link CmsApp}
@@ -13,6 +17,8 @@ public interface CmsApp {
         */
        final static String UI_NAME_PROPERTY = CmsApp.class.getName() + ".ui.name";
 
+       final static String CONTEXT_NAME_PROPERTY = "argeo.cms.app.contextName";
+
        Set<String> getUiNames();
 
        CmsUi initUi(Object uiParent);
@@ -28,4 +34,12 @@ public interface CmsApp {
        void addCmsAppListener(CmsAppListener listener);
 
        void removeCmsAppListener(CmsAppListener listener);
+
+       CmsContext getCmsContext();
+
+       @Override
+       default void onEvent(String topic, Map<String, Object> properties) {
+       }
+       
+       
 }