專案範圍的喜好設定

執行時期喜好設定中,我們瞭解了以不同範圍來定義和儲存喜好設定的基礎架構。我們也看到了 org.eclipse.core.runtime.preferences 延伸可用來定義其他的喜好設定範圍。平台資源外掛程式定義自己的喜好設定範圍(稱為「專案」),定義專案範圍的喜好設定。專案範圍的喜好設定可儲存在位於專案內的檔案中。這樣可以很容易地儲存喜好設定集合以及使用資源導向機制(比如說,版本控制系統)與其他使用者交換喜好設定。

指定範圍

定義新範圍十分簡單。外掛程式定義範圍的名稱,以及實作範圍的類別。資源外掛程式定義專案範圍,如下所示︰

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

指定的類別必須實作 IScope 介面,這表示類別必須能夠建立範圍的喜好設定節點。

專案範圍的喜好設定節點

因為喜好設定的專案範圍不是標準執行時期範圍之一,代表專案層次喜好設定的節點必須以特別方式來取得。從根喜好設定節點,您必須導覽至專案範圍的喜好設定。這可以使用 ProjectScope 來達到這個目的︰

	IScopeContext projectScope = new ProjectScope(MyProject);

一旦找到特定專案的專案範圍,即可使用與稍早相同的機制來取得喜好設定值。喜好設定是使用喜好設定的字串名稱來命名的。名稱要具備喜好設定名稱空間的另外字串(通常是外掛程式 ID)才會完整。下列片段從專案範圍取得喜好設定節點。您將會注意到一旦取得正確的範圍,使用節點的方式與其他範圍的節點並無差異。

	...
	Preferences projectNode = projectScope.node("com.example.myplugin");
	if (projectNode != null) {
		value = node.getBoolean("MyPreference", "true");
	//對值做一些動作。
	}
	...

如果要儲存值到專案中的檔案,則會清除節點。資源外掛程式會處理管理專案層次喜好設定檔的底層機制。

	projectNode.flush();