本節說明修改 3.1 外掛程式來採用 3.2 機制和 API 時所需的變更。
Eclipse 3.2 提供新的基礎架構來建立啟動配置和資源的關聯性。 此對映可讓平台在啟動配置上過濾資源,也可讓平台選擇隨著刪除相關專案而一併刪除啟動配置。 已加強啟動對話框來支援一組過濾器,對於已關閉和已刪除的專案,可選擇隱藏相關的配置。 此外,啟動對話框還支援在作用中工作台視窗中依選取的工作集來過濾,在啟動對話框中也可以選取工作集。
用戶端必須負責管理啟動配置的資源對映。
ILaunchConfigurationWorkingCopy
中已加入 API 來設定配置的相關資源,
ILaunchConfiguration
中也已加入 API 來取得配置的相關的資源。
例如,移轉時應該考量啟動標籤、啟動快捷鍵及重構參與者。建立或修改啟動配置的程式碼也必須更新資源對映。
為了相容於新的工具,Eclipse 3.2 提供新的基礎架構來移轉啟動配置。
例如,在 Eclipse 3.2,已支援在啟動配置上過濾資源。
啟動配置必須升級來提供資源對映,才能利用這項新的特性。
使用者可以按移轉按鈕,從執行/除錯 > 啟動 > 啟動配置喜好設定頁面中,手動移轉工作區中的啟動配置。
launchConfigurationTypes
延伸點中已加入一個新的選用性移轉委派屬性,
可指定實作新介面 ILaunchConfigurationMigrationDelegate
的類別。移轉委派負責識別移轉對象和進行移轉。
launchModes
延伸點中已加入新的選用性屬性,可適當支援階式啟動功能表動作標籤的外觀設定。
外掛啟動模式的用戶端必須指定適當的標籤,供啟動階式功能表使用,例如 "Run As"。
這個新的屬性是 launchAsLabel
。平台已為執行、除錯及側寫啟動模式提供適當的標籤。
基於舊版相容性,當啟動模式未指定新的屬性時,
將透過 MessageFormat 和 "{0} As
",一如往常地產生階式功能表標籤。
請參閱相關的錯誤 105235。
ICU4J 是一組 Java 程式庫,用來提供更完整的 Unicode、軟體全球化和國際化的支援。 為了將這個功能提供給 Eclipse 社群,Eclipse 3.2 的平台建置新增了 ICU4J。 您在建置中見到的 com.ibm.icu 外掛程式就是它。 在 Eclipse 3.2 中,Eclipse 平台便會使用 ICU API。
應用程式碼的移轉可以漸進完成,這表示要得到使用 ICU4J 的好處,並不需要完整採用所有 ICU4J 功能。 請參閱 Eclipse wiki 的 ICU4J 頁面,以取得如何移轉程式碼來使用 ICU4J 的詳細資料。
新增 ICU4J 外掛程式,會使覆蓋區增加 3MB。 如果應用程式的大小比採用 ICU4J 功能優先,有些應用程式可能並不想承擔 ICU4J。 若是如此,便可以從 Eclipse 平台置換頁面中取得置換外掛程式 (com.ibm.icu.base)。 請下載這個外掛程式,從 /plugins 目錄中移除 com.ibm.icu 外掛程式及其程式碼對應項目,將這個置換外掛程式放入其中。 您必須執行這個動作,因為 Eclipse 平台採用了 3.2 的 ICU API,只是移除 ICU 外掛程式會使平台程式碼發生編譯錯誤。 置換外掛程式大約 100KB,只會呼叫 ICU4J 中最常用的類別和 API 的預設 JDK 實作。 您也可以參閱 Eclipse wiki 的 ICU4J 頁面,以取得如何使用 ICU4J 置換外掛程式的詳細資料。
為了在 JFace 中支援 ICU4J,需要一些創造性的 API 新增項目來防止參照 API 中的 ICU 類別。 結果便新增了下列項目:
org.eclipse.jface.viewers.ViewerComparator
的新類別,現在 org.eclipse.jface.viewers.ViewerSorter
是它的子類別。org.eclipse.jface.viewers.StructuredViewer
新增了兩個方法,用來支援新增的 org.eclipse.jface.viewers.ViewerComparator
。ViewerSorter
類別有一個公用的方法 getCollator()
,用來傳回 java.text.Collator
。
由於這個方法是 API,因此,不能將它簡單改成使用 ICU Collator。
另外,ICU 類別也不能作為 API 的一部分(簽章),因為對於 ICU 的直接外掛程式相依關係,會造成無法單獨使用 JFace(搭配 SWT)。
為了配合這些限制,新增了使用 java.util.Comparator
而非 ICU Collator 的 ViewerComparator
類別。
這是因為 ICU 的 Collator 類別實作 java.util.Comparator
,因此,任何 StructuredViewer
現在都能夠使用 ICU 的 Collator,
而不是使用 java.text.Collator
,但 JFace 並不需要新增對於 ICU4J 外掛程式的相依關係。
StructuredViewer
新增的兩個新方法支援利用 ICU 的 Collator,透過 ViewerComparator
而不是 ViewerSorter
來排序檢視器的內容。
建議任何 StructuredViewer
現在都利用這些方法來取得檢視器的排序器(比較器),不要用 getSorter()
和 setSorter(ViewerSorter)
方法。
public ViewerComparator getComparator()
public void setComparator(ViewerComparator comparator)
org.eclipse.equinox.common 軟體組包括一些有一般名稱的新 API 類別(如 Assert
和 ListenerList
)。
如果您的程式碼有同名類別,且利用 import * 陳述式來匯入本端類別和執行時期的類別,您可能會收到下列錯誤訊息:
ABC 類型語意不明
組織匯入項目和選擇適當的匯入來源,應該可以解決這個問題。
將程式碼移至新的執行時期外掛程式,會造成明確參照 org.eclispe.core.runtime 的自訂 Script 可能需要新增一或多個下列外掛程式: