From e7bf7de5151a2736f9a68e37aea7dab377317f80 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 21 Oct 2023 12:04:26 +0200 Subject: [PATCH] Improve RCP support --- sdk/argeo-suite-desktop.properties | 4 ++++ .../src/org/argeo/app/swt/js/SwtBrowserJsPart.java | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/sdk/argeo-suite-desktop.properties b/sdk/argeo-suite-desktop.properties index e541ba4..8ada854 100644 --- a/sdk/argeo-suite-desktop.properties +++ b/sdk/argeo-suite-desktop.properties @@ -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 diff --git a/swt/org.argeo.app.swt/src/org/argeo/app/swt/js/SwtBrowserJsPart.java b/swt/org.argeo.app.swt/src/org/argeo/app/swt/js/SwtBrowserJsPart.java index 41cc3af..6f680e2 100644 --- a/swt/org.argeo.app.swt/src/org/argeo/app/swt/js/SwtBrowserJsPart.java +++ b/swt/org.argeo.app.swt/src/org/argeo/app/swt/js/SwtBrowserJsPart.java @@ -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 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 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); } } -- 2.30.2