Improve RCP support
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 21 Oct 2023 10:04:26 +0000 (12:04 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 21 Oct 2023 10:04:26 +0000 (12:04 +0200)
sdk/argeo-suite-desktop.properties
swt/org.argeo.app.swt/src/org/argeo/app/swt/js/SwtBrowserJsPart.java

index e541ba443a1150d1dc6d1480a5a73bbc8df88b46..8ada85496c393f7425c36412df57171b8f51dc37 100644 (file)
@@ -7,6 +7,8 @@ org.argeo.cms,\
 org.argeo.cms.swt.rcp,\
 org.argeo.cms.ee,\
 org.argeo.cms.lib.dbus,\
+org.argeo.cms.lib.equinox,\
+org.argeo.cms.lib.jetty,\
 
 argeo.osgi.start.4=\
 org.argeo.cms.jcr
@@ -14,8 +16,10 @@ org.argeo.cms.jcr
 argeo.osgi.start.5=\
 org.argeo.app.profile.acr.fs,\
 org.argeo.app.core,\
+org.argeo.app.jcr,\
 org.argeo.app.ui,\
 org.argeo.app.theme.default,\
+org.argeo.app.geo,\
 
 
 # Local
index 41cc3afe2ddbf587b51f3695d7c5528033839dd2..6f680e28816ed3217e583b97f091567bc53d2983 100644 (file)
@@ -1,5 +1,6 @@
 package org.argeo.app.swt.js;
 
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -8,7 +9,9 @@ import java.util.concurrent.CompletionStage;
 import java.util.function.Function;
 
 import org.argeo.api.cms.CmsLog;
+import org.argeo.api.cms.ux.CmsView;
 import org.argeo.app.ux.js.JsClient;
+import org.argeo.cms.swt.CmsSwtUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.browser.BrowserFunction;
@@ -39,12 +42,14 @@ public class SwtBrowserJsPart implements JsClient {
        private List<PreReadyToDo> preReadyToDos = new ArrayList<>();
 
        public SwtBrowserJsPart(Composite parent, int style, String url) {
+               CmsView cmsView = CmsSwtUtils.getCmsView(parent);
                this.browser = new Browser(parent, 0);
                if (parent.getLayout() instanceof GridLayout)
                        browser.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
                // TODO other layouts
 
-               browser.setUrl(url);
+               URI u = cmsView.toBackendUri(url);
+               browser.setUrl(u.toString());
                browser.addProgressListener(new ProgressListener() {
                        static final long serialVersionUID = 1L;
 
@@ -92,7 +97,8 @@ public class SwtBrowserJsPart implements JsClient {
        }
 
        protected void loadExtension(String url) {
-               browser.evaluate(String.format(Locale.ROOT, "import('%s')", url));
+               URI u = CmsSwtUtils.getCmsView(getControl()).toBackendUri(url);
+               browser.evaluate(String.format(Locale.ROOT, "import('%s')", u.toString()));
        }
 
        public CompletionStage<Boolean> getReadyStage() {
@@ -168,8 +174,8 @@ public class SwtBrowserJsPart implements JsClient {
                @Override
                public void run() {
                        boolean success = browser.execute(js);
-                       if (!success)
-                               throw new IllegalStateException("Pre-ready JavaScript failed: " + js);
+                       if (!success && log.isTraceEnabled())
+                               log.error("Pre-ready JavaScript failed: " + js);
                }
        }