Quantcast
Channel: Apache OpenOffice Community Forum
Viewing all articles
Browse latest Browse all 1281

Macros and UNO API • How to pass parameters to a java macro from a Basic one

$
0
0
Hi,
I have trouble calling a java macro with parameters, i.e. I don't understand what to put in the call of XScript.execute().
In the attached file, I have embedded a java class with two scripts, one with parameters and the other without.
The java code is really simple :

Code:

import com.sun.star.script.provider.XScriptContext;public class MacroJava {    public static int getArgsCount(XScriptContext xScriptContext, Object[] args) {        return args.length;    }    public static String getMessage(XScriptContext xScriptContext) {        return "Appel OK de la macro java";    }}
A button in the attached document calls a macro in Basic (module1.testMacroJava) which uses the script manager to call the two java macros.
The call is successful for the java macro getMessage(), but fails for getArgsCount(). Obviously, the script manager cannot match the method signature.
I have tried many configurations for the 3 parameters of the call XScrip.invoke() without success.
I woul be grateful if somebody could give me a clue.

The parcel-descriptor is :

Code:

<?xml version="1.0" encoding="UTF-8"?><parcel language="Java" xmlns:parcel="scripting.dtd">  <script language="Java">    <locale lang="fr">      <displayname value="getArgsCount"/>      <description>        macro java getArgsCount (avec paramètres)      </description>    </locale>    <functionname value="MacroJava.getArgsCount"/>    <logicalname value="MacroJava.getArgsCount"/>    <languagedepprops>        <prop name="classpath" value="TestMacroJava.jar"/>    </languagedepprops>  </script>  <script language="Java">    <locale lang="fr">      <displayname value="getMessage"/>      <description>        macro java getMessage (sans paramètres)      </description>    </locale>    <functionname value="MacroJava.getMessage"/>    <logicalname value="MacroJava.getMessage"/>    <languagedepprops>        <prop name="classpath" value="TestMacroJava.jar"/>    </languagedepprops>  </script></parcel>
I work on Win10 pro , with LibreOffice 24.2.5.2
Sincerely
Cormic
TestMacroJava.odt

Statistics: Posted by Cormic — Mon Aug 05, 2024 7:30 pm



Viewing all articles
Browse latest Browse all 1281

Trending Articles