內容頁非常類似喜好設定頁。主要差異為內容頁與特定資源相關,而喜好設定頁與本 身外掛程式相關。
您可以使用 org.eclipse.ui.propertyPages 延伸點來提供資源的內容頁資料。 您可以使用資源導覽器檢視畫面中的內容功能表來呼叫資源的內容頁。 當選取單一資源時,便可使用這個功能表。
Readme 工具提供兩個內容頁資料。
<extension
point = "org.eclipse.ui.propertyPages">
<page
id="org.eclipse.ui.examples.readmetool.FilePage"
name="Readme Tool"
objectClass="org.eclipse.core.resources.IFile"
class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
nameFilter="*.readme">
</page>
<page
id="org.eclipse.ui.examples.readmetool.FilePage2"
name="More Readme Info"
objectClass="org.eclipse.core.resources.IFile"
class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
nameFilter="*.readme">
</page>
</extension>
這兩個頁面針對具有 .readme 副檔名,類型為 IFile 的物件提供資料。
內容頁外觀很像喜好設定頁,但內容頁沒有階層或分類。在下面的對話框中,兩個 Readme 內容頁出現在主要頁面清單中。
當工作台建立並啟動內容頁時,會將選取的資源設定到該頁面。該頁面可使用 getElement() 方法來取得其元素 IAdaptable。
建立內容頁的型樣類似喜好設定頁的型樣,所以我們僅著重於它們之間的差異。 內容頁顯示其元素的相關資訊。為了查詢或計算相關資訊,可存取該元素來取得此資 訊。您也可以根據資源的內容來擷取及儲存此資訊。
ReadmeFilePropertyPage 可利用其元素來計算其大部份資訊。 下列片段顯示如何計算及在標籤中顯示區段數。
...
IResource resource = (IResource) getElement();
...
IAdaptable sections = getSections(resource);
if (sections instanceof AdaptableList) {
AdaptableList list = (AdaptableList)sections;
label = createLabel(panel, String.valueOf(list.size()));
...
當計算某個內容時,不需要對應邏輯來儲存其值,因為使用者無法更新這個值。
內容頁一般用於檢視及設定資源的應用程式特定內容。 (有關階段作業和持續性內容的討論,請參閱資源內容。)因為內 容頁清楚本身的資源,所以可在該頁面中使用資源 API 來起始設定控制項值,或根 據內容頁中的使用者選項來設定新內容值。
下列片段顯示自內容頁元素上內容起始設定的勾選框值。
private void initializeValues() {
...
IResource resource = (IResource) getElement();
label.setText(resource.getPersistentProperty("MyProperty"));
...
}
將勾選框值存回內容中的對應程式碼外觀如下所示:
private void storeValues() {
...
IResource resource = (IResource) getElement();
resource.setPersistentProperty("MyProperty",
label.getText());
...
}