getObject.de
Examples

API

Heimdall goConfig - Beispiele (Examples)

Einführung


Ziel war es, die Konfiguration einer Extension so einfach wie möglich durchzuführen. Die Initialisierung der Variablen sollte in einer einzigen SubRoutine ausgeführt werden. Das spart Code und somit auch Programmieraufwand. Die Zuordnung der Werte der Variablen sollte mit einer einzigen Funktion realisiert werden, unabhängig ob die Konfiguration sich im Lese- oder Speichermodus befindet.


Das Grundkonstrukt ist immer gleich.


  1. Ausführung von Heimdall (execute)
  2. Initialisierung der Variablen
  3. Ausführung von Heimdall (execute)


Gesteuert wird Heimdall durch die interne Variable

ConfiguratorActionSupport


Die Variable ist vom Typ Boolean und kann die Werte TRUE oder FALSE annehmen. Der Wert False ist der Standardwert. Er sorgt dafür, das die Daten gelesen werden. Der Wert TRUE sorgt entsprechend für die Speicherung der Daten.


Der Vorteil dieses Konstruktes, liegt nun in der Tatsache, das die Initialisierung in eine SubRoutine ausgelagert werden kann. Z.Bspl: sub InitMe


Beispiel 1

Die Ausführung von Heimdall erfolgt mit der Funktion .execute(). Die Zuordnung der Variablen erfolgt mit der Funktion .doinit().


' Example1 zeigt das Standardkonstrukt der Initialisierungs-
' routine und die Behandlung der ausgelagerten Variablen.
' Heimdall erkennt um welchen Variablentyp es sich handelt.
' Der Provider (Heimdall) wird einmal vor, und einmal nach
' der Initialisierung ausgeführt.
'--------------------------------------------
Sub Example1( )
Dim oCfg As Object                  'Konfiguratorobjekt
Dim myPathName As String            'Komplette Pfadangabe
'--------------------------------------------
'Start

oCfg = CreateHeimdallConfigurator            'Provider erstellen


myPathName = oCfg.UserProfile                 'User Dateipfad
'--------------------------------------------
' Zur Identifizierung sollte die Datei in einem
' Ordner abgelegt werden, der eindeutig ist. Das kann der
' Name Ihrer Bibliothek, Makro oder Extension sein.
'--------------------------------------------
myPathName = myPathName & "\myExtension"
oCfg.path = myPathName
oCfg.File = "config.ini"

oCfg.execute()           ' 1. Start von Heimdall, lädt die Variablen

'----------------------------------------
'Hier werden Ihre Variablen initalisiert

Backgroundcolor = ocfg.doinit("Backgroundcolor" ,Backgroundcolor )
fontname        = ocfg.doinit("Fontname", fontname )
counter         = ocfg.doinit("Counter" , counter )
minimalversion  = ocfg.doinit("Minimalversion" ,minimalversion )


ocfg.execute()          ' 2. Start von Heimdall, speichert die Variablen


End Sub

Beispiel 2

Um eine Konfigurationsdatei zu erstellen, muß der Create Modus eingeschaltet werden. Überlegen Sie sich zuvor, wo diese Datei abgelegt werden soll. Wird die Ihre Extension verteilt, muß die Konfigurationsdatei mitgeliefert werden. Benötigen Sie die Werte nur für sich persönlich, legen Sie die Datei im UserProfile ab.


Eingeschaltet wird der Create Modus mit dem Befehl .setCreateMode( Modus ).


'--------------------------------------------
' Bevor auf eine Konfigurationsdatei zugegriffen werden kann,
' muß diese zuerst erstellt werden. Andernfalls erhalten Sie eine
' Fehlermeldung. Das Konstrukt ist immer das gleiche.
'
' Die Variablen sollten mit den Startwerten belegt werden.
' ACHTUNG: Die Werte sollten nicht leer sein (Strings). Integer
' oder andere Zahlenvariablentypen haben i.d.R. die 0 als Wert.
'--------------------------------------------
Sub Example2                'create myConfigFile
Dim oCfg As Object
Dim myPathName As String    'Komplette Pfadangabe
'--------------------------------------------
'                   Start

oCfg = CreateHeimdallConfigurator

'--------------------------------------------
' Startvalues belegen

FontName = " "                'Ein Leerzeichen ist erlaubt
Minimalversion = "6.2"
Counter= 0
BackGroundColor = 12045
'--------------------------------------------
' Überlegen Sie sich, wo Ihre Konfigurationsdatei
' abgelegt werden soll. In der Regel ist es das
' User Verzeichnis von Libre Office. Das Verzeichnis
' wird von Heimdall mit USERPROFILE geliefert
'--------------------------------------------

myPathName = oCfg.UserProfile              'User Dateipfad
myPathName = myPathName & "\myExtension"
oCfg.File = "config.ini"
oCfg.Path = myPathName

'--------------------------------------------
' Heimdall in den Create Modus schalten
oCfg.setCreateMode(ocfg._On )         '!!! Attention !!!

oCfg.execute()                        ' 1. Start von Heimdall

Backgroundcolor = ocfg.doinit("Backgroundcolor" ,Backgroundcolor )
fontname        = ocfg.doinit("Fontname", fontname )
counter         = ocfg.doinit("Counter" , counter )
minimalversion  = ocfg.doinit("Minimalversion" ,minimalversion )


ocfg.execute()                        ' 2. Start von Heimdall

End Sub

Beispiel 3

Die Konfiguration Ihrer Extension/Makro erfolgt in der Regel am Anfang, und, im Fall das Daten gespeichert werden sollen, auch am Ende der Hauptroutine. Hier wird die Steuerung mit der internen Variable ConfiguratorActionSupport durchgeführt.


Sub Example3                            'MyExtension_Main_Sub

'--------------------------------------------
' Eröffnungsphase
ConfiguratorActionSupport = false       'Speichern ausgeschaltet
Example_init( )                         'Start der Initalisierung

' -------------------------------------------
' Hier steht ihr Code
rem myCode
rem myDialog.Model.&Example BackgroundColor = Backgroundcolor
rem myDialog.Model.&Example FontName = FontName
Counter = Counter + 1                 'Zähler der Konfigurationsdatei
'--------------------------------------------
' Endphase
ConfiguratorActionSupport = True         'Speichern einschalten
Example_init( )                          'Speichern mit neuen Daten

End Sub

Beispiel 4

Mit Heimdall können Sie die Konfigurationsvariablen aus der  Libre Office Umgebung abfragen.


'--------------------------------------------
' Heimdall ermöglicht Ihnen direkt auf die Konfigurationsvariablen
' der Libre Office Umgebung zuzugreifen.
' Übergeben wird der Package Name gefolgt von den Knotennamen. Es können
' mehrere Knoten hintereinander getrennt mit einem Slash übergeben
' werden. Das entspricht der tatsächlichen Tiefe der Knoten in der Umgebung.
' z.B: org.openoffice.System/L10N
' Als zweiter Parameter wird ein Propertyname übergeben, dessen Wert
' letztendlich geliefert wird.
'
' ACHTUNG: Bei einigen Knoten muss zuvor eine Textsubstitution der
' Platzhalter erfolgen, da sonst ein Fehler ausgelöst wird.
'--------------------------------------------
Sub Example4
Dim oCfg As Object
oCfg = CreateHeimdallConfigurator()
msgbox ocfg.getRegisterContent("org.openoffice.System/L10N" ,"Locale")
'--------------------------------------------
rem Sie finden die Konfigurationseinstellungen
rem über das Menü: Extras > Optionen
rem Im Fenster unter der Rubrik:
rem 'LibreOffice' > 'Erweitert' > 'Experteneinstellungen'
rem Achtung: Hier kan man etwas kaputt machen!!!
'--------------------------------------------
End Sub