[Libreoffice] Storage of user's configuration

Fernand Vanrie sos at pmgroup.be
Tue Jan 24 09:59:17 PST 2012


Martin,

I supose it is already cross platform and environment independent, neve 
tested it but interesting to know.


> Hi Fernand,
>
> Thank you for your response, it may help indeed.
>
> It seems that you create your own xcs file from scratch and store it 
> in a custom location. I think that in my case, I will need to find a 
> way to make it cross platform and environment independent.
>
> Cheers
>
> 2012/1/24 Fernand Vanrie <sos at pmgroup.be <mailto:sos at pmgroup.be>>
>
>     Martin ,
>
>     i use folowed BASIC code to make a "path" consitent , maybe  it
>     helps ?
>
>     public sElementnaam , sfotopath as string
>     public oParameter as object
>
>     sub addFotoPath()
>     sRegisterPath = "/org.openoffice.OpmaakMacro.FotoPath/Parameters/"
>     CreateRegistrySchemaPathIfNotPresent(sRegisterPath)
>     aSettings = GetConfigSettings(sRegisterPath)
>     sElementNaam = "FOTO"
>     sParaNaam = "FotoPath"
>     sParameter = "c:\test"
>
>     call addParameter(aSettings, sParaNaam, sParaMeter)
>
>     end sub
>     sub getFotoPath
>         sRegisterPath =
>     "/org.openoffice.OpmaakMacro.FotoPath/Parameters/"
>         aSettings = GetConfigSettings(sRegisterPath)
>         asElNames = aSettings.ElementNames
>         if aSettings.hasByName("FOTO") then
>         oParameter = aSettings.getByName("FOTO")
>
>        sFOTOpath = oParameter.getByName("ParameterString")
>        else
>        sFOTOpath = ""
>        endif
>     end sub
>
>
>     function GetConfigSettings(sRegisterPath as String) as Object
>     'Taken from DannyB
>     Dim args(1) As new com.sun.star.beans.PropertyValue
>     aConfProv =
>     createUnoService("com.sun.star.configuration.ConfigurationProvider")
>     args(1).Name = "nodepath"
>     args(1).Value = sRegisterPath
>     args(0).Name = "EnableAsync"
>     args(0).Value = false
>     GetConfigSettings =
>     aConfProv.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",
>     args())
>     end function
>
>     sub CreateRegistrySchemaPathIfNotPresent(sRegisterPath as String)
>     oPathSettings = CreateUnoService( "com.sun.star.util.PathSettings" )
>     xray oPathSettings
>     sPathConfig = oPathSettings.Work 'Config
>
>     asPath1 = split(sRegisterPath, "/")
>     sFullDotPath = asPath1(1)
>     asPath2 = Split(sFullDotPath,".")
>     sFolder = join(asPath2,"/")
>
>
>     sRegistrySchemaPath = "file:///H:/" & sFolder & ".xcs"
>
>     sFileName = asPath2(UBound(asPath2))
>     sPackage = left(sFullDotPath, len(sFullDotPath)-len(sFileName)-1)
>
>     oSFA = createUNOService ("com.sun.star.ucb.SimpleFileAccess")
>     if not oSFA.exists(sRegistrySchemaPath) then 'See the chapter 15
>     of the dev guide for some explanation
>     print sRegistrySchemaPath
>       oOutStream = oSFA.openFileWrite(sRegistrySchemaPath)
>       oOutText = createUNOService ("com.sun.star.io.TextOutputStream")
>       oOutText.setOutputStream(oOutStream)
>
>       oOutText.WriteString("<?xml version='1.0' encoding='UTF-8'?>" &
>     Chr(10))
>
>       oOutText.WriteString("<oor:component-schema oor:name=""" &
>     sFileName & """ oor:package=""" & sPackage & """ " )
>       oOutText.WriteString("xml:lang=""en-US""
>     xmlns:oor=""http://openoffice.org/2001/registry"
>     <http://openoffice.org/2001/registry>" " )
>      
>     oOutText.WriteString("xmlns:xs=""http://www.w3.org/2001/XMLSchema"
>     <http://www.w3.org/2001/XMLSchema>" " )
>      
>     oOutText.WriteString("xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"
>     <http://www.w3.org/2001/XMLSchema-instance>">" & Chr(10))
>
>       oOutText.WriteString("<templates>" & Chr(10))
>       oOutText.WriteString(" <group oor:name=""Parameter"">" & Chr(10))
>       oOutText.WriteString(" <prop oor:name=""ParameterName""
>     oor:type=""xs:string""/>" & Chr(10))
>       oOutText.WriteString(" <prop oor:name=""ParameterString""
>     oor:type=""xs:string""/>" & Chr(10))
>       oOutText.WriteString(" </group>" & Chr(10))
>       oOutText.WriteString("</templates>" & Chr(10))
>
>       oOutText.WriteString("<component>" & Chr(10))
>       oOutText.WriteString(" <set oor:name=""Parameters""
>     oor:node-type=""Parameter""/>" & Chr(10))
>       oOutText.WriteString("</component>" & Chr(10))
>
>       oOutText.WriteString("</oor:component-schema>" & Chr(10))
>
>       oOutText.closeOutput()
>       oOutStream.closeOutput
>       endif
>
>     end sub
>
>     sub addParameter(aSettings as Object, ParameterName as String,
>     ParameterString as String)
>
>       Dim arParameters1(0) As new com.sun.star.beans.PropertyValue
>       arParameters1(0).Name = ParameterName
>       arParameters1(0).Value = ParameterString
>       call setParameters(aSettings, arParameters1(0))
>
>     end sub
>
>     function getParameterCount(aSettings as Object) as long
>     getParameterCount = UBound(aSettings.ElementNames)+1
>     end function
>
>
>
>     sub setParameters(aSettings as Object, aNewValue as Object)
>       if aSettings.hasbyName(sElementnaam) then
>     'print aNewvalue.name
>        oParameter = aSettings.createInstance()
>       oParameter.ParameterName = aNewValue.Name
>       oParameter.ParameterString = aNewValue.Value
>
>       aSettings.ReplaceByName(sElementNaam , oParameter)
>
>       aSettings.commitChanges()
>       else
>        oParameter =  aSettings.createInstance()
>       oParameter.ParameterName = aNewValue.Name
>       oParameter.ParameterString = aNewValue.Value
>
>       aSettings.insertByName(sElementNaam , oParameter)
>        aSettings.commitChanges()
>        endif
>
>     end sub
>>     Hi everybody,
>>
>>
>>     I'm hacking the cross-platform filepicker (in
>>     fpicker/source/office). I added a "Places" (bookmarks) list on
>>     the left and I would like to save the entries that the user
>>     bookmarked .
>>
>>     Cedric Bosdonnat told me to look at xcu and xcs files, but I'm a
>>     bit lost. I'm looking for a code sample where user's persistent
>>     configuration is manipulated (read and written) and/or anything
>>     that can be usefull, like search keywords, links to old threads
>>     in the mailing list, which would help me to identify some good
>>     practices (naming conventions, for instance).
>>
>>     Cheers,
>>     Martin Richard
>>
>>
>>     _______________________________________________
>>     LibreOffice mailing list
>>     LibreOffice at lists.freedesktop.org  <mailto:LibreOffice at lists.freedesktop.org>
>>     http://lists.freedesktop.org/mailman/listinfo/libreoffice
>
>
>
>     _______________________________________________
>     LibreOffice mailing list
>     LibreOffice at lists.freedesktop.org
>     <mailto:LibreOffice at lists.freedesktop.org>
>     http://lists.freedesktop.org/mailman/listinfo/libreoffice
>
>
>
>
> -- 
> Martin Richard
> www.martiusweb.net <http://www.martiuweb.net>
>
>
>
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libreoffice

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20120124/c30613fe/attachment-0001.htm>


More information about the LibreOffice mailing list