1 package org
.argeo
.api
.cms
;
3 import java
.security
.PrivilegedAction
;
4 import java
.util
.HashMap
;
7 import javax
.security
.auth
.login
.LoginContext
;
9 /** Provides interaction with the CMS system. */
10 public interface CmsView
{
11 final static String CMS_VIEW_UID_PROPERTY
= "argeo.cms.view.uid";
12 // String KEY = "org.argeo.cms.ui.view";
16 UxContext
getUxContext();
19 void navigateTo(String state
);
22 void authChange(LoginContext loginContext
);
26 // void registerCallbackHandler(CallbackHandler callbackHandler);
29 void exception(Throwable e
);
31 CmsImageManager
<?
, ?
> getImageManager();
33 boolean isAnonymous();
36 * Send an event to this topic. Does nothing by default., but if implemented it
37 * MUST set the {@link #CMS_VIEW_UID_PROPERTY} in the properties.
39 default void sendEvent(String topic
, Map
<String
, Object
> properties
) {
44 * Convenience methods for when {@link #sendEvent(String, Map)} only requires
45 * one single parameter.
47 default void sendEvent(String topic
, String param
, Object value
) {
48 Map
<String
, Object
> properties
= new HashMap
<>();
49 properties
.put(param
, value
);
50 sendEvent(topic
, properties
);
53 default void applyStyles(Object widget
) {
57 default <T
> T
doAs(PrivilegedAction
<T
> action
) {
58 throw new UnsupportedOperationException();
61 default Void
runAs(Runnable runnable
) {
62 return doAs(new PrivilegedAction
<Void
>() {
73 default void stateChanged(String state
, String title
) {
76 default CmsSession
getCmsSession() {
77 throw new UnsupportedOperationException();
80 default Object
getData(String key
) {
81 throw new UnsupportedOperationException();
84 @SuppressWarnings("unchecked")
85 default <T
> T
getUiContext(Class
<T
> clss
) {
86 return (T
) getData(clss
.getName());
89 default <T
> void setUiContext(Class
<T
> clss
, T instance
) {
90 setData(clss
.getName(), instance
);
93 default void setData(String key
, Object value
) {
94 throw new UnsupportedOperationException();