package org.argeo.cms.ui;
+import java.security.PrivilegedAction;
+import java.util.HashMap;
import java.util.Map;
import javax.security.auth.login.LoginContext;
-import org.eclipse.swt.widgets.Composite;
+import org.argeo.cms.auth.CmsSession;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
/** Provides interaction with the CMS system. */
}
- static CmsView getCmsView(Composite parent) {
+ /**
+ * Convenience methods for when {@link #sendEvent(String, Map)} only requires
+ * one single parameter.
+ */
+ default void sendEvent(String topic, String param, Object value) {
+ Map<String, Object> properties = new HashMap<>();
+ properties.put(param, value);
+ sendEvent(topic, properties);
+ }
+
+ default void applyStyles(Object widget) {
+
+ }
+
+ default <T> T doAs(PrivilegedAction<T> action) {
+ throw new UnsupportedOperationException();
+ }
+
+ default Void runAs(Runnable runnable) {
+ return doAs(new PrivilegedAction<Void>() {
+
+ @Override
+ public Void run() {
+ if (runnable != null)
+ runnable.run();
+ return null;
+ }
+ });
+ }
+
+ default void stateChanged(String state, String title) {
+ }
+
+ default CmsSession getCmsSession() {
+ throw new UnsupportedOperationException();
+ }
+
+ static CmsView getCmsView(Control parent) {
// find parent shell
Shell topShell = parent.getShell();
while (topShell.getParent() != null)