Improve CMS View.
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 5 Dec 2020 12:28:29 +0000 (13:28 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 5 Dec 2020 12:28:29 +0000 (13:28 +0100)
org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java
org.argeo.cms.ui/src/org/argeo/cms/ui/CmsView.java

index 470aa5edc0ccc7630e9caee2ace4f73d274212e7..d07735c064831d2c41e1cda72feb34e568e38fe1 100644 (file)
@@ -205,7 +205,8 @@ public class CmsWebEntryPoint implements EntryPoint, CmsView, BrowserNavigationL
        public void navigateTo(String state) {
                exception = null;
                String title = setState(state);
-               doRefresh();
+               if (title != null)
+                       doRefresh();
                if (browserNavigation != null)
                        browserNavigation.pushState(state, title);
        }
index dcc1f1fd16b8b747723382dc071927e1246cb0ae..e18d4b4330d3098a6c8178fa71f1cda29382497b 100644 (file)
@@ -61,10 +61,22 @@ public interface CmsView {
        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();
        }