X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.core%2Fsrc%2Forg%2Fargeo%2Fapp%2Fux%2Fjs%2FJsClient.java;h=708daff143af5191d6fc76c5b5e36158a2ebcd52;hb=HEAD;hp=f889fd96bdaf6c0ca170551b896ade0e1ff5ade3;hpb=8a490e540ac623b3545b1bd3da65ecbf2e4b6436;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.core/src/org/argeo/app/ux/js/JsClient.java b/org.argeo.app.core/src/org/argeo/app/ux/js/JsClient.java index f889fd9..708daff 100644 --- a/org.argeo.app.core/src/org/argeo/app/ux/js/JsClient.java +++ b/org.argeo.app.core/src/org/argeo/app/ux/js/JsClient.java @@ -44,7 +44,7 @@ public interface JsClient { String createJsFunction(String name, Function toDo); /** Get a global variable name. */ - public String getJsVarName(String name); + String getJsVarName(String name); /** * Completion stage when the client is ready (typically the page has loaded in @@ -65,7 +65,12 @@ public interface JsClient { } default boolean isInstanceOf(String reference, String jsClass) { - return (Boolean) evaluate(getJsVarName(reference) + " instanceof " + jsClass); + try { + return (Boolean) evaluate("return " + getJsVarName(reference) + " instanceof " + jsClass); + } catch (Exception e) { + // TODO better understand why instanceof is often failing with SWT Browser + return false; + } } /* @@ -94,6 +99,8 @@ public interface JsClient { return jsObject.newJs(); else return jsObject.getJsReference(); + } else if (o instanceof JsReference jsReference) { + return jsReference.get(); } else return '\'' + o.toString() + '\''; }