Benutzervorgaben für Projektbereich

Unter Benutzervorgaben für die Laufzeit, wurde die Infrastruktur zur Definition und Speicherung von Benutzervorgaben mit unterschiedlichen Geltungsbereichen betrachtet. Außerdem wurde dargestellt, wie die Erweiterung org.eclipse.core.runtime.preferences zur Definition zusätzlicher Bereiche für Benutzervorgaben verwendet werden kann. Das Ressourcen-Plug-in der Plattform definiert einen eigenen Benutzervorgabenbereich namens "Projekt", um Benutzervorgaben für einen Projektbereich zu definieren. Benutzervorgaben eines Projektbereichs werden in einer Datei innerhalb des Projekts gespeichert. Hierdurch wird es leichter, eine Gruppe von Benutzervorgaben zu speichern und mit anderen Benutzern über ressourcenorientierte Mechanismen (z.B. ein Versionskontrollsystem) auszutauschen.

Bereich angeben

Die Definition neuer Bereiche ist sehr einfach strukturiert. Das Plug-in definiert den Namen des Bereichs, sowie die Klasse, die ihn implementiert. Das Ressourcen-Plug-in definiert den Projektbereich folgendermaßen:

	<extension id="preferences" point="org.eclipse.core.runtime.preferences" name="preferences">
		<scope name="project" class="org.eclipse.core.internal.resources.ProjectPreferences"/>
	</extension>

Die angegebene Klasse muss die Schnittstelle IScope implementieren. Das heißt, sie muss in der Lage sein, Vorgabeknoten für den Bereich zu erstellen.

Vorgabeknoten für einen Projektbereich

Da der Projektbereich für Benutzervorgaben nicht zu den Standardlaufzeitbereichen gehört, muss der Knoten, der Benutzervorgaben eines Projektbereichs darstellt, gesondert abgerufen werden. Vom Stammvorgabeknoten aus müssen Sie zur Benutzervorgabe des Projektbereichs navigieren. Dies kann über ProjectScope erreicht werden:

	IScopeContext projectScope = new ProjectScope(MyProject);

Sobald der Projektbereich eines bestimmten Projektes gefunden wurde, können die Vorgabenwerte über die bereits dargestellten Mechanismen abgerufen werden. Benutzervorgaben werden über den Zeichenfolgennamen der Benutzervorgabe benannt. Die Namen werden über eine andere Zeichenfolge qualifiziert (häufig eine Plug-in-ID), die den Namensbereich der Benutzervorgabe qualifiziert. Der folgende Ausschnitt erhält vom Projektbereich einen Vorgabeknoten. Beachten Sie, dass sich diese Knoten in ihrer Verwendung nicht von Knoten anderer Bereiche unterscheiden, nachdem einmal der korrekte Bereich abgerufen wurde.

	...
	Preferences projectNode = projectScope.node("com.example.myplugin");
	if (projectNode != null) {
		value = node.getBoolean("MyPreference", "true");
		//do something with the value.
	}
	...

Um den Wert in einer Datei innerhalb des Projekts zu speichern, wird der Knoten gelöscht. Das Ressourcen-Plug-in übernimmt die Schritte zur Verwaltung der Vorgabendatei auf Projektebene.

	projectNode.flush();