在執行時期喜好設定中,我們瞭解了以不同範圍來定義和儲存喜好設定的基礎架構。我們也看到了 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();