Get CmsView directly from Control.
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / CmsView.java
index 0e7e7268042a64650a9979acb5e03dba53dd5553..311d10fbe9d22f2c1db2db8e9f55d14a9db7a850 100644 (file)
@@ -1,10 +1,11 @@
 package org.argeo.cms.ui;
 
+import java.util.HashMap;
 import java.util.Map;
 
 import javax.security.auth.login.LoginContext;
 
-import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
 /** Provides interaction with the CMS system. */
@@ -41,7 +42,21 @@ public interface CmsView {
 
        }
 
-       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) {
+               
+       }
+
+       static CmsView getCmsView(Control parent) {
                // find parent shell
                Shell topShell = parent.getShell();
                while (topShell.getParent() != null)