Hi Rony,

Am 15.06.2018 um 10:49 schrieb Rony G. Flatscher (Apache):
> Hi Mattias,
>
> On 14.06.2018 22:54, Matthias Seidel wrote:
>> Am 14.06.2018 um 20:54 schrieb Rony G. Flatscher (Apache):
>>> A friend has LibreOffice installed (due to a better mail-merge-support I 
>>> understand) and I came up
>>> with a script to help her taking advantage of the writer component. The 
>>> script is written in ooRexx
>>> for which I authored an OOo scripting provider that works on OOo, making 
>>> ooRexx an additional macro
>>> language for OOo.
>> That's very interesting!
>> I know Object Rexx from my times with OS/2 (in fact I am still running
>> it in a VM).
> That's funny, me too!
> ;-)

In fact, even OpenOffice is available for it:
https://www.bitwiseworks.com/products/ports.php#AOO

>
> (At one point in time one could create a password protected OS/2 WPS-Folder 
> in ten lines of Object
> Rexx code using the SOM - system object model - support! Powerful stuff.)
>
> The source code of IBM Object Rexx got handed over to the non-profit SIG Rexx 
> Language Association
> (http://www.rexxla.org), which has been releasing opensource versions under 
> the name of "Open Object
> Rexx (ooRexx)" ever since.
>
> I use ooRexx to teach Business Administration students oo-programming from 
> zero knowledge to
> programming Windows, MS Office, Linux, MacOSX, OpenOffice, platform 
> independent GUIs (awt, swing,
> JavaFX) in *one* semester!
>
> Currently the official 5.0 beta (release quality) version of ooRexx is 
> available for Windows and
> Linux from <https://sourceforge.net/projects/oorexx/files/oorexx/5.0.0beta/>.
>
> There is a MacOSX version that includes the latest ooRexx 5.0 beta together 
> with the Java bridge
> "BSF4ooRexx" at
> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20180312/b4r_600_500_64Bit_macosx-20180324.zip/download>.
>
>
>> Is your scripting provider available somewhere?
> Yes, it is contained in the package BSF4ooRexx, which is a bridge from ooRexx 
> to Java and includes
> among other things special support for OpenOffice programming and can be 
> obtained from
> <https://sourceforge.net/projects/bsf4oorexx/files/beta/20180312/>. Unzip the 
> archive, go into the
> directory "bsf4oorexx/install" and then into "windows" or "linux" and run the 
> "install" script. If
> the installer sees OOo installed, it will linstall the ooRexx script 
> provider. (If you change the
> AOO installation or Java, then run "BSF4ooRexx -> Installation -> Reinstall".)
>
> Note: on Windows you need to make sure to have the same bitness as AOO 
> (assuming 32-bit
> installation) for ooRexx and Java (you can install Java 8 for 32-bit in 
> addition).
>
> Once installed use the "BSF4ooRexx" menu and pick the option "Samples" and 
> open the "index.html"
> file, which gives brief explanations of the samples. Use the link "OOo" to 
> get into the OOo related
> samples (there are many samples that demonstrate how to use OOo writer, calc 
> and impress).
>
> Also, if you program for OOo and like to learn about the definitions of UNO 
> classes, you could use
> the supplied "UNO_API_info.rxo", which can be used from any other 
> programming/scripting language.
> Choose the "BSF4ooRexx" menu then the option "Utilities", go into 
> "OOo/UNO_API_info". Look at the
> file "read-me-UNO_API_info.html" which shows and explains the GUI interface 
> and how to use this
> ooRexx utilitiy from OOo Basic, Java, JavaScript, ooRexx and Python via UNO 
> Dispatch.
>
> ---
>
> To learn about BSF4ooRexx you could go through my PDF slides at
> <http://wi.wu.ac.at/rgf/wu/lehre/autojava/material/foils/>, where
> <AutoJava-BSF4ooRexx-04-OOo-ACE12.pdf> explains OOo programming.
>
> An introduction to ooRexx is given in the slides at
> <http://wi.wu.ac.at/rgf/wu/lehre/autowin/material/foils/>, the PDF slides 
> starting with "ooRexx".
>
> If you have any questions related to ooRexx, BSF4ooRexx and/or UNO/OOo 
> support, please let me know.
>
> Have fun :)

Thanks! That's a lot of useful information.
It will take me some time to read (and understand) it... ;-)

Regards,
   Matthias

>
> ---rony
>
> P.S.: The LO-adjusted provider support will be in the next beta of BSF4ooRexx 
> which I plan for the
> beginning of July.
>
>>> Now, installing that package on her machine the scripts work from outside 
>>> of LO flawlessly, however
>>> ooRexx does not get registered as another macro language in LO (missing 
>>> from the "Macro" menu).
>>> After researching this issue for quite some time now, it turns out that LO 
>>> removed a method in
>>> ClassLoaderFactory and changed the signature of the remaining method by 
>>> removing the throws clause,
>>> causing a need to compile the script language provider against OOo's 
>>> ScriptFramework.jar, if the
>>> script provider is to run against OOo, and having the need to compile it 
>>> separately against LO's
>>> version of ScriptFramework.jar, which is a PITA.
>>>
>>> In the case that there are other script provider programmers hanging 
>>> around, this is what I did in
>>> order to get a single version that runs also against LO, if there is a need 
>>> to use
>>> ClassLoaderFactory (maybe in the XScript implementation part):
>>>
>>>          ... cut ...
>>>             
>>>           // instead of: cl = ClassLoaderFactory.getURLClassLoader( 
>>> metaData );
>>>           // load and run the method dynamically at runtime:
>>>           Class 
>>> clfClz=Class.forName("com.sun.star.script.framework.provider.ClassLoaderFactory");
>>>           Class 
>>> smdClz=Class.forName("com.sun.star.script.framework.container.ScriptMetaData");
>>>           Method meth =clfClz.getMethod("getURLClassLoader", new 
>>> Class<?>[]{smdClz}  );
>>>           cl=(ClassLoader) meth.invoke(null,  new Object  []{metaData});
>>>
>>>          ... cut ...   
>>>
>>> Again, this is just a side note for other script provider implementors who 
>>> get hit by this LO
>>> pecularity.
>>>
>>> Also: in the "description.xml" deployment file make sure that  the element
>>> "OpenOffice.org-minimal-version has a value "3.4" or higher (cf.
>>> <https://wiki.documentfoundation.org/Development/Extension_Development>), 
>>> such that the extension is
>>> not regarded as "legacy" by LO.
>>>
>>> In the end, with the above changes, the ooRexx scripting provider again 
>>> gets accepted as a macro
>>> language for LO.
>>>
>>> The reference remains OOo, which has been working in all other aspects of 
>>> the Macro menu (run, edit,
>>> making the installed macros available etc.) as per the specifications, 
>>> whereas LO has some problems
>>> in that area (shared scripts not showing up, listing of the script language 
>>> in the menu disappears,
>>> if the menu got used, still user macros remain visible and executable).
>>>
>>> ---rony
>>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org
>
>


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to