# PreferenceStore -> Properties extrahieren?



## vkb (21. Feb 2010)

Hallo,

ich entwickle gerade mit Eclipse RCP eine grafische Oberfläche für eine Bibliothek, welche Konfigurationsparameter in Form eines Property Files benötigt. Die Konfigurationsparameter selbst möchte ich über PreferencePages einstellen können.

Frage ist nun: 
Gibt es eine komfortable Möglichkeit die einzelnen key-value Paare aus dem IPreferenceStore zu extrahieren? Oder muss ich manuell jeden Key einzeln abfragen und in ein Properties Object einfügen?


----------



## Wildcard (22. Feb 2010)

Hängt ganz von der Implementierung dahinter ab. Wenn du zB ein PreferenceStore hast (das IPreferenceStore implementiert), dann kannst du die store Methode aufrufen.
Du kannst IPreferenceStore natürlich auch selbst implementieren oder PreferenceStore erweitern.


----------



## vkb (22. Feb 2010)

Danke für die Antwort. Soviel ich weiss nutze ich wohl derzeit den _ScopedPreferenceStore_, da dieser standardmäßig seinen Dienst vollrichtet. Ich habe mir auch bereits den Code angesehen, aber ich bin noch nicht ganz dahinter gestiegen, wie dort gespeichert wird. Werde ich mir nochmal angucken müssen, denn die aktuelle 'Lösung' die Werte einzeln zu erfragen ist sehr mühselig.


----------



## Wildcard (24. Feb 2010)

Wenn du das OSGi Preference Interface verwendest, gibt es dort eine keys() Methode.
Wenn du auf IEclipsePreferences castest gibt es dort weitere Methoden wie zum Beispiel accept für einen Visitor. Es gibt viele verschiedene Interfaces um den Preference Store, mit welchem Interface greifst du darauf zu?
Du kannst dein Preference Objekt übrigens auch mit einem eigenen Dekorieren um eine für dich passende export Schnittstelle bereitzustellen. Du kannst auch gleich deinen ganz eigenen Preference Scope einhängen. Möglichkeiten gibt es wirklich sehr viele, das System ist sehr flexibel.



> aber ich bin noch nicht ganz dahinter gestiegen, wie dort gespeichert wird.


In einer Properties Datei passend zum Scope (Project, Instance, Installation)


----------



## vkb (2. Mrz 2010)

Danke für die Antwort. Ich hab das Thema in den letzten Tagen gemieden weil ich mich leider immernoch nicht zurechtfinde.


```
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
```

Auf diese Art greife ich derzeit auf meinen PreferenceStore zu. Nach vielem googlen weiss ich nun, wie ich meine PreferencePages optimal einrichten kann, wie ich eigene FieldEditoren bauen kann und vieles mehr. Aber wie ich automatisiert auf den gesamten Inhalt zugreifen und an Subsysteme übertragen kann, weiss ich leider immernoch nicht.



> OSGi Preference Interface



Damit wird wohl org.osgi.service.prefs.Interface Preferences sein, mit dem der standardmäßige ScopedPreferenceStore leider nicht viel gemein hat.

Ich komme leider überhaupt nicht klar mit den Preferences...und finde auch nichts ordentliches zum lesen :rtfm:


----------



## Wildcard (2. Mrz 2010)

Alles geht aufs gleiche Backend, entweder auf etwas konkretes Casten, oder einen Wrapper um das Interface legen (selbst implementieren und an das  Preference Objekt delegieren).


----------

