# Speichern von Einstellung



## Nud3l (10. Sep 2009)

Hallo

Ich möchte gerne in meinen Plugin ein Pfad speichern auf den ich immer drauf zu greifen kann. Er sollte automatisch beim Beenden von Eclipse gespeichert werden und beim Starten geladen

Wie macht man sowas?


----------



## Gonzo17 (10. Sep 2009)

Meinst du wie man einen Pfad erstellt oder wie man das beim Starten/Beenden von Eclipse tut? Was hat das mit dem Threadtitel zu tun? Einstellungen kannst du auch anders viel einfacher speichern, je nachdem was du eben speichern willst.


----------



## Wildcard (10. Sep 2009)

Der Eclipse Preferences Service:
Eclipse Preferences - Tutorial


----------



## Nud3l (11. Sep 2009)

Gonzo17 hat gesagt.:


> Meinst du wie man einen Pfad erstellt oder wie man das beim Starten/Beenden von Eclipse tut? Was hat das mit dem Threadtitel zu tun? Einstellungen kannst du auch anders viel einfacher speichern, je nachdem was du eben speichern willst.



Ich möchte gerne den Pfad zu einer Datei speichern denn ich eben nur einmal einstellen muss wenn ich das erste mal Eclipse starte. Und falls die Datei nicht gefunden wird sollten eben der Pfad geändert werden.


----------



## Gonzo17 (11. Sep 2009)

Ich weiss nicht so ganz, was du realisieren willst, aber ich denke dabei könnte dir die Extension "org.eclipse.ui.startup" behilflich sein. Eine entsprechende Klasse könnte so aussehen:


```
public class EarlyStartup implements IStartup {

	public void earlyStartup() {
                 // hier das, was du tun möchtest
		}
}
```


----------



## Nud3l (11. Sep 2009)

Ich habe es jetzt gelöst mit der vogella Seite

Speichern sieht wie folgt aus

```
String selected = fileChooser.open();

    Preferences preferences = new ConfigurationScope().getNode(Activator.PLUGIN_ID);
    Preferences sub1 = preferences.node("preferences sub1");
    sub1.put("selected",selected);
    
    try {
      preferences.flush();
    } catch (BackingStoreException e) {
      e.printStackTrace();
    }
```
öffnen so:

```
Preferences preferences = new ConfigurationScope().getNode(Activator.PLUGIN_ID);
    Preferences sub1 = preferences.node("preferences sub1");    
    System.out.println(sub1.get("selected", "default"));
```

Irgendwie finde ich das ganze etwas verwirrend mit den ganzen keys und IDs die man da angeben muss. Ich finde die übertreiben da ein bisschen es würden ja zwei reichen..
Naja es klappt jedenfalls.


----------



## Wildcard (11. Sep 2009)

Die Preferences sind ein Baum. Wichtig ist, das es unterschiedliche Scopes gibt, je nachdem welche 'sichtbarkeit' die Preferences haben und wo sie gespeichert werden sollen.
Anschließend muss dafür gesorgt werden das du deine Preferences von denen der anderern PlugIns trennst, damit man sich nicht gegenseitig werte überschreibt (dafür der Plugin Qualifier). Zuletzt brauchst du dann noch den eigenen Key für dein Setting.
Du siehst: hat alles seinen Sinn und seine Richtigkeit.
Auch der Java Built-In Preferences Store ist nicht flach.


----------

