延伸通用簡介

當啟動依上述方式配置的通用的「歡迎使用」時,您會發現所有從起始頁面分支出來的第二層頁面都有空白的內容區。 這是因為共用的「歡迎使用」沒有它自己的內容。 這些區域都是利用簡介配置延伸規格來移入的。

提供配置延伸規格的傳統方式,是指定錨點元素在目標頁面中的完整路徑。 這個方法仍受到支援,但它已獲證明有些脆弱。 如前面所述,對延伸規格作者而言,指定延伸規格在目標中的確切終止位置太過倉促。 他們可能並不知道他們的延伸規格將終止的所有產品,因此,也無法知道根據每個產品的焦點,這些延伸規格應該出現在哪裡。 在通用的「歡迎使用」中,這個決策是留給產品作者負責。 現在,延伸規格作者可以選擇指定不完整的目標路徑,讓產品作者去填寫空白。

想要使用後期目標路徑解析的配置延伸規格,必須滿足這三個條件:

  1. 配置延伸規格必須利用 'id' 屬性來指定唯一 ID。不含 ID 的延伸規格會被忽略。這很重要,因為產品作者利用 ID 參照延伸規格。
  2. 配置延伸規格必須利用 'name' 屬性來指定對使用者友善的名稱。如果將使用「自訂作業」喜好設定頁面,這就很重要,因為延伸規格會顯示在使用者介面中。
  3. 目標路徑的格式應該如下:"page_id/@",其中 'page_id' 是目標頁面的 ID。當在目標路徑中偵測到 '/@' 時,會嘗試將路徑動態解析成預期的完整格式。

解析延伸規格目標路徑的能力是 Eclipse 3.2 的新簡介支援,增加這項支援是為了使通用的「歡迎使用」功能更強。 特性本身是一般的,因為不只是一般的「歡迎使用」,其他「歡迎使用」實作也可以使用它。 在 Eclipse 3.2 中,CustomizableIntroPart 可以接受能夠以多種方式來影響行為的選用性簡介自訂程式類別。 自訂程式的角色之一,是執行後期目標路徑解析。 當然,就產品作者而言,這都只是實作細節,因為在通用的「歡迎使用」實作中,會利用先前所提及的資料檔來執行後期目標路徑解析。 這個檔案是利用 org.eclipse.ui.intro/INTRO_DATA 喜好設定來儲存的。

'INTRO_DATA' 檔使用 XML 格式,可讓產品作者控制主要「歡迎使用」頁面的內容。 「歡迎使用」構成要素作者必須只在目標路徑中指定頁面 ID。 其餘部分定義在這個檔案中。 這個檔案包含一系列的 'page' 元素,每個都含有若干 'group' 元素。 群組元素會指定頁面相對路徑,且有子項的構成要素。 構成要素元素用來指定兩個方面:

   <extensions>
      <page id="overview">
         <group path="page-content/top-left">
            <extension id="foo1" importance="high"/>
            <extension id="bar"  importance="high"/>
            <extension id="foo2" importance="medium"/>
         </group>
         <group path="page-content/top-right">
            <extension id="foo3" importance="low"/>
            <extension id="foo4" importance="low"/>
            <extension id="foo5" importance="callout"/>
         </group>
         <hidden>
            <extension id="foo6"/>
            <extension id="foo7"/>
         </hidden>
      </page>
      <page id="whatsnew">
      ...
      </page>
   </extensions>

在上述範例中,'foo1'、'bar' 和 foo2' 等構成要素在頁面左側直欄,'foo3'、'foo4' 和 'foo5' 在頁面右側直欄。 構成要素的相對順序也是取自這個檔案。 另外,構成要素是根據 importance 屬性來分類,這個屬性可以有四個有效值:highmediumlowcalloutlow 是預設值。 每個值都有相符的呈現方式,使它在頁面中引人注目。 前三項只是根據產品作者的不同重要性層次(請注意,在兩個不同的產品中,相同的構成要素可能會得到不同的重要性分類)。 最後一項 (callout) 用來將本質完全不同的構成要素(例如,提供視訊或動畫鏈結的構成要素)孤立出來。

未列出的構成要素會附加在列出的構成要素之後,且會被指派低的重要性值。 對於產品送出之後才新增的構成要素而言,這很重要 - 它們仍需要顯示。

與專案不相干的構成要素,您可以將它們明確列為 'hidden' 元素的子項,而將它們隱藏起來。

提供至延伸規格中

提供在某起始頁中的延伸規格本身可以包含錨點,供他方新增內容。 這會造成問題,因為延伸規格中內容的最終解析路徑無法事先得知。 因此,使用後期路徑解析的延伸規格中之內容的目標路徑本身,必須獲得解析:

<?xml version="1.0" encoding="utf-8" ?>
<introContent>
   <extensionContent id="extra" name="Extra" alt-style="css/swt.properties" style="css/overview.css" path="overview/@">
      <group id="extra-group" style-id="content-group">
         <link label="Extra Overview link" url="http://org.eclipse.ui.intro/showPage?id=extraOverview"
					  id="extra-overview">
      	    <text>Showing the third-level extra page for overview</text>

         </link>
         <anchor id="additions"/>
      </group>
   </extensionContent>
</introContent>

如果要提供到上述延伸規格中的 'additions' 錨點中,我們應該使用下列路徑:"overview/@extra/extra-group/additions"。 '@extra' 區段會取代為在 'overview' 頁面中含有 'extra' 這個 ID 之延伸規格的解析路徑。 比方說,如果延伸規格放在頁面的左上區段中,解析路徑便是:"overview/page-content/upper-left/extra-group/additions"。