Jörg Schmidt wrote:

> Mir ist nur nicht klar wie ich das löse:
> der Menüeintrag ist perfekt und auch die Verknüfung zum Makro geht.
> Klicke ich startet das Makro und ein Basic-Dialog wird angezeigt. Auf
> diesem Dialog ist ein Bild, dessen Pfad brauche ich um es anzuzeigen.
> Sollte ich da irgendwie %origin% als Pfadvariable verwenden Können (ich
> habe noch nicht probiert), bloß dann wäre %origin% für diesen Fall doch
> unabhängig von Einträgen in der xcu-Datei und besagte nur wo das Makro
> sich im Dateisystem befindet. Das wäre allerdings *genau* das was ich
> mir wünschte.

Du kannst dort einen Konfigurationseintrag anlegen, dessen Inhalt
"%origin%/bla.png" ist. *Beim Installieren des Packages* mit Hilfe von
pkgchk/unopkg wird "%origin%" in der ausgepackten Datei durch einen Pfad
ersetzt, der neben dem Packageverzeichnis noch ein paar Variablen
erhält, die man zur Laufzeit dann mit dem MacroExpander Service auflöst.
Ich habe wie gesagt i.A. nur Java-Code als Beispiel, aber vielleicht
verdeutlich das ja in etwa, was ich meine:

>             // component context
>             Object obj = xContext.getValueByName(
>                 "/singletons/com.sun.star.util.theMacroExpander");
> 
>             com.sun.star.util.XMacroExpander xMExpander =
>                 (com.sun.star.util.XMacroExpander)AnyConverter.toObject(
>                     com.sun.star.util.XMacroExpander.class, obj);
> 
>             // we need a config provider factory
>             obj = xMCF.createInstanceWithContext(
>                 "com.sun.star.configuration.ConfigurationProvider", xContext);
> 
>             com.sun.star.lang.XMultiServiceFactory xProviderFactory =
>                 
> (com.sun.star.lang.XMultiServiceFactory)UnoRuntime.queryInterface(
>                     com.sun.star.lang.XMultiServiceFactory.class, obj);
> 
>             com.sun.star.beans.PropertyValue aPathArgument =
>                 new com.sun.star.beans.PropertyValue();
>             aPathArgument.Name = "nodepath";
>             aPathArgument.Value = "vnd.bla.bla.SOAddon/Files";
>             Object[] aArguments = new Object[1];
>             aArguments[0] = aPathArgument;
> 
>             // we use the access provider and the interface XNameAccess
>             com.sun.star.container.XNameAccess xAccess =
>                 (com.sun.star.container.XNameAccess) 
> UnoRuntime.queryInterface(
>                     com.sun.star.container.XNameAccess.class,
>                     xProviderFactory.createInstanceWithArguments(
>                         "com.sun.star.configuration.ConfigurationAccess",
>                         aArguments));
> 
>             System.out.println("\n############## Output ###################");
>             // access a filename property
>             obj = xAccess.getByName("file1");
>             String sFile1 = AnyConverter.toString(obj);
> 
>             // use the expander to expand the macro URL to a real file URL
>             String sExpFile1 = xMExpander.expandMacros(sFile1);

Sowas in Basic und mit einer Beispiel-Konfigurationsdatei fehlt noch.
Dafür der Issue.

Ciao,
Mathias

-- 
Mathias Bauer - OpenOffice.org Application Framework Project Lead
Please reply to the list only, [EMAIL PROTECTED] is a spam sink.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an