採用 3.1 的機制和 API 時所需要的變更

本節說明當您試圖變更 3.0 的外掛程式,以採用 3.1 的機制和 API 時,所需要的變更。

平台復原/重做支援

Eclipse 3.1 提供新的基礎架構,可定義可復原的作業以及共用作業歷程,追蹤已執行、復原以及重做的作業。一段時間後,應將附加程式外掛程式所提供的各種復原組織架構 移轉到平台作業支援,以便讓這些組織架構的用戶端可以與平台更深入地整合在一起,並且可以在其他外掛程式視圖和編輯器中,復原可復原的作業。如需有關新增復原支援到外掛程式的基本資訊,請參閱可復原的作業文件。已定義復原支援或使用其他組織架構的外掛程式,可用暫置方式移轉至新的復原支援,如下所述。

將外掛程式特定作業(指令)類別移轉至 IUndoableOperation

已定義類別的外掛程式,說明它們的可復原作業應將 IUndoableOperation 介面的實作新增至它們的作業/指令類別。 必要的話,外掛程式可能仍在使用較舊的組織架構,來管理歷程(指令堆疊),但是為 IUndoableOperation 提供一個介面,可讓外掛程式的用戶端在平台作業歷程中使用相同作業,以及混合和比對不同外掛程式的可復原作業。 這個策略類似於 SDK 文字編輯器用來移轉至新作業組織架構的策略。如果不可能直接對映介面, 則可使用封套來將 IUndoableOperation 通訊協定對映至舊式復原物件。這個策略由 Platform/JDT 重構支援所使用。將作業/指令類別移轉至 IUndoableOperation 是個很重要的步驟,因為它可在不需完全移轉任何外掛程式的情況下,讓其他外掛程式使用來自不同組織架構的可復原作業。

移轉具有 IOperationHistory 的指令堆疊

一旦以 IUndoableOperation 來表示可復原的作業或指令後,只要定義代表復原歷程的 IUndoContext,便可將定義復原歷程(指令堆疊)以追蹤可復原和可重做作業的外掛程式, 移轉到平台作業歷程。之前在本端管理的復原歷程可合併到一般作業歷程,做法是定義每個組件或每個模型物件的唯一復原環境定義,將適當的復原環境定義新增至每個作業,然後將作業新增至平台作業歷程。您可以藉由定義代表復原範圍的唯一復原環境定義,指派該環境定義給每個作業,然後將作業新增至平台作業歷程,來實作範圍更廣域的復原歷程。 如需建立和指派復原環境定義,以及將作業新增至平台作業歷程的範例,請參閱可復原的作業文件。

將可復原的作業廣域定義至工作台

希望可從工作台視圖(例如「導覽器」或「套件瀏覽器」)復原其作業的外掛程式,應將工作台復原環境定義指派給它們的作業。 如需復原環境定義,以及工作台和無監視器型外掛程式如何擷取該環境定義的相關資訊,請參閱可復原的作業文件。

平台復原/重做動作處理常式

未定義復原基礎架構或可復原的作業,但希望提供對平台復原歷程之存取權的外掛程式,應考慮以新建的一般復原和重做動作處理常式,重新訂定廣域復原和重做動作處理常式的目標。應指派指定要顯示哪個復原和重做歷程的復原環境定義給動作處理常式。外掛程式可使用在本端定義的復原環境定義,來顯示 "part-local" 復原和重做歷程。可使用工作台復原環境定義來顯示整個工作台的復原和重做歷程。同樣地, 可復原的作業文件也有完整的範例。

移轉文字作業動作至一般動作處理常式

文字編輯器復原和重做動作的移轉作業,與簡易重新訂定廣域復原/重做動作處理常式目標的作業不盡相同。AbstractTextEditor 組織架構使用參數化的 TextOperationAction 來定義一般文字動作。這些動作儲存在本端的組織架構中, 並用來將各種指令分派到編輯器的文字作業目標。若要適當運作文字復原作業,文字編輯器組織架構須取決於具有適當 ID (ITextEditorActionConstants.REDOITextEditorActionConstants.UNDO) 的文字作業動作。

已移轉 AbstractTextEditor,以在指派一般動作處理常式到具有舊式 ID 的 TextOperationAction 表格時,建立一般動作處理常式。在此方法中, 可使用擷取動作和執行作業的舊式技術,來擷取新的復原和重做動作處理常式。AbstractTextEditor 階層中的文字編輯器會繼承這個行為。

未從 AbstractTextEditor 繼承這個行為的編輯器,應考慮移轉任何現有的復原和重做動作,以使用新的處理常式。因為仍然支援由這些動作所使用的「JFace 文字」復原管理程式 API, 因此,具有舊式復原和重做 TextOperationActions 的編輯器仍然支援工作中本端復原的功能。然而, 復原和重做動作標籤與新的 Eclipse SDK 復原/重做動作不同,其顯示可用復原或重做作業的名稱。如果要建立一般復原和重做動作處理常式, 則應在建立動作處理常式時,使用文字檢視器之復原管理程式所使用的復原環境定義,且那些處理常式應使用適當的 ITextEditorActionConstants ID 設定到編輯器。 如需詳細範例,請參閱 AbstractTextEditor.createUndoRedoActions()AbstractTextEditor.getUndoContext()。根據 EditorActionBarContributor 子類別以新增至編輯器動作列的編輯器,可以藉由建立復原和重做動作處理常式並在設定作用中編輯器時進行設定,來使用類似的技術。

說明加強功能

資訊搜尋

搜尋對話框中提供搜尋頁面的外掛程式, 應考慮將它們所有的資訊樣式搜尋植入已聯合的搜尋引擎。自 3.1 後,所有資訊樣式搜尋都是從工作台成品搜尋中分隔出來的。資訊搜尋引擎可並列執行成背景工作,以及對照新「說明」視圖的搜尋結果。 請參閱說明搜尋,以取得詳細資料。

動態說明

新的動態說明視圖會與現有的環境定義 ID 搭配使用,該 ID 會靜態地與工作台組件和對話框中的小組件相關聯。然而, 如果您自行捕捉說明事件並顯示說明,則動態說明視圖將無法顯示任何有用的資訊。如果要修正此問題,您應該適應新的 IContextProvider 介面,如動態環境定義說明文件中所述。