3.2 新增功能

以下是在 Eclipse 3.2 版的 Eclipse PlatformSWT 中,外掛程式開發人員會感興趣的一些變更的說明。

另外,在「工作台使用者手冊」的新增功能一節中,您也可以見到許多以一般平台使用者為對象的新特性。

平台變更

執行時期重構

為了使 Eclipse 執行時期更靈活,也為了能夠獨立使用執行時期元件,org.eclipse.core.runtime 已分割成許多外掛程式:

  • org.eclipse.equinox.common - 供多個先前的執行時期外掛程式片段(即 IPath、IStatus、IProgressMonitor)使用的共用程式碼。
  • org.eclipse.equinox.registry - 延伸登錄
  • org.eclipse.equinox.preferences - 喜好設定機制
  • org.eclipse.core.jobs - 工作機制
  • org.eclipse.core.contenttype - 內容機制
  • org.eclipse.equinox.supplement - 補充的「外掛程式」,用來支援在沒有 OSGi 的情況下執行作業。

已增加新的 API 來協助控制分割的執行時期片段。

對其他外掛程式而言,執行時期重構應該是透通的。 如需詳細資訊,請參閱 Eclipse 3.2 移轉手冊。

共用導覽器

新外掛程式 org.eclipse.ui.navigator 引進了將多個領域模型的內容組合起來的檢視器建置架構。 這個架構可讓您以宣告方式提供內容、標籤、動作、過濾器和其他功能。 org.eclipse.ui.navigator.resources 外掛程式以專案瀏覽器視圖的形式,具體使用了這個架構,且提供了 IResource 模型的宣告式檢視器延伸規格。

「專案瀏覽器」視圖的圖片

標籤內容架構

已新增了附加標籤的內容架構。 附加標籤的內容架構提供一個用來置換的內容表頁面,可讓您利用任意控制項將內容顯示在「內容」視圖中,以及依延伸登錄所提供的標籤和區段來組織內容。

附加標籤之內容架構的圖片

請參閱 Eclipse 標籤內容視圖一文,以取得詳細資料。

檔案系統 API

新外掛程式 org.eclipse.core.filesystem 引進了與檔案系統互動的新的一般 API。 平台已移轉成使用這個檔案系統 API,而不是用 java.io API。 這表示資源可以建立在任意支持的檔案系統中,且外掛程式可以支援新的檔案系統類型。

支援已加在專案和鏈結資源精靈中,以便建立鏈結至其他檔案系統的資源。 定義替代檔案系統的外掛程式可以利用 org.eclipse.ui.ide.filesystemSupport 延伸點來連結到這項精靈支援之中。

非本端檔案系統的圖片

在匯入和匯出中加入分類

現在,org.eclipse.ui.importWizardsorg.eclipse.ui.exportWizards 延伸點支援分類。

延伸點的圖片

文字編輯器的註解工具提示

註解浮動已從 JDT Text 下推至 Platform Text。 文字、垂直和概觀尺規浮動支援是文字編輯器使用的 TextSourceViewerConfiguration 所安裝的:

註解工具提示的圖片

文字編輯器的註解導覽

註解導覽已從 JDT Text 下推至 Platform Text,現在可供所有文字編輯器使用:

導覽圖示的圖片

JFace 欄位輔助程式

JFace 引進了新的支援來協助使用者完成對話框和表單中的欄位。 org.eclipse.jface.fieldassist 套件提供了若干類別,供您利用影像和對應的浮動說明文字來裝飾任意控制項。 它們適用於在對話框中標示必要的欄位、顯示欄位型的錯誤狀況,或顯示內容輔助提示之類的用途。 另外,這個套件也可讓您安裝控制項的內容提議,其中包括含有內容提議的蹦現對話框、提供進一步資訊的次要蹦現畫面,以及用來明確呼叫提議或以自動(預先輸入)樣式呼叫提議的選項。

顯示欄位輔助程式的圖片

JFace TreeViewer 增強功能

現在,AbstractTreeViewer 支援樹狀結構中多個相等的元素,每個元素都有不同的母項鏈。 這項支援要求用戶端呼叫 setUseHashLookup(true) 來啟用元素對映。

現在,TreeViewer 支援 SWT.VIRTUAL 樹狀結構。 另外,還有一個對應的智慧型內容提供者 ILazyTreeContentProvider, 只會依需要來傳回內容。

支援動態說明內容

現在,說明系統支援動態組合說明內容。 在 XHTML 中編寫的主題可以包含其他 Eclipse 專用標記,供以 os/ws/arch 值、外掛程式之存在及啟用的功能等為基礎的即時內容過濾使用。 共用內容可以併在多份文件中。 最後,外掛程式可以提供外掛在其他文件之錨點的 XHTML 片段。 現在,資訊開發人員可以利用所有這些功能來提供專為了檢視時的環境定義而量身訂作的動態文件。

說明搜尋增強功能

使用者輔助程式的索引和搜尋作業已利用各種方式來加強。 延伸點能夠將內容加到 Lucene 索引中,其他搜尋參與者則能夠透過延伸點來進行登錄。 現在,說明會提供 XHTML 搜尋參與者,它能夠為以 XHTML 所編寫的動態說明文件編製索引(請參閱上文)。 另外,先前不在索引中的文件,現在也會出現(如提要和歡迎使用頁面)。 現在,搜尋命中可以用不同的圖示來表示,「開啟」動作可以委派給搜尋引擎。

顯示搜尋增強功能的圖片

問題可以分組

現在,「問題」視圖中的問題可以分組。 預設分組是依嚴重性和問題類型來分組,org.eclipse.ui.ide.markerSupport 延伸點還可以定義其他群組。

對話框中改良的說明

現在,Eclipse 大部分對話框的左下角都有標準的說明按鈕。 這個按鈕會召喚環境定義說明,與按 F1 相同 (Windows)。 另外,說明內容現在會出現對話框的匣中,而不是在個別視窗中。 自訂對話框可以繼承新的 TrayDialog 類別(而不是 Dialog)來繼承這項功能。 另外,對於包含開啟對話框的步驟,提要也可以跟著您進入這些步驟的對話框(進入匣中)。

將指令鏈結內嵌在「使用者輔助」內容中

現在,當使用者啟動說明、提要和簡介內容中的鏈結時,它們可以執行指令。 指令鏈結可用來開啟喜好設定頁面、啟動精靈、顯示視圖、開啟視景,以及用於許多其他用途。 指令架構可以延伸,因此,指令鏈結還可能有許多其他用途。 工作台使用者手冊已加強過,許多地方加入了指令鏈結。 下圖顯示說明主題中的兩個指令鏈結:

說明主題中的指令鏈結

從提要啟動指令的支援

現在,可以從提要啟動指令。 下列內容檔含有開啟「搜尋」視圖和「套件瀏覽器」的指令。
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Example of Commands in a Cheat Sheet">
  <intro>

    <description>A cheat sheet shows the
			package explorer</description>
  </intro>
  <item title="Show Search View">
     <description>This is a step with a command
		which shows the search view.</description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Step 2">
    <description>This is a step with a command and
		parameters, shows package explorer.</description>

     <command serialization="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Command example completed.
     </onCompletion>
  </item>
</cheatsheet>

完成訊息

在完成時會顯示提要的提要步驟中,完成訊息可以加到其中。

提要完成訊息的圖片

複合提要

複合提要是 Eclipse 3.2 的新功能。 複合提要將大的問題分成幾項較小的作業,每項作業都有自己的提要,從而提供了這個問題的指引。 這些作業可以組織成群組。 複合提要會開在提要視圖中,且是利用提要選項對話框來啟動的。 每項作業都有說明,超鏈結會引導使用者經歷一系列的作業。

複合提要的圖片

複合提要有一個顯示作業及其狀態的樹狀結構。 右下方窗格包含有個別作業。

複合提要的圖片

複合提要的內容定義在 XML 檔中。 內容檔可以指定在作業之間的相依關係,以便只在某項作業的必備作業都完成之後,才開啟這項作業。

說明關鍵字索引

現在,「說明」有關鍵字索引,供您登錄文件中的關鍵字,以及提供鏈結來通往適當的說明文件。 在「說明」視圖和「說明」視窗中,都能使用索引(視圖顯示如下)。

附註:SDK 尚無法使用索引內容(只有在能夠使用內容時,才會出現索引)。

「說明」視圖的圖片

XHTML 說明文件轉換工具

PDE 有一個可以將外掛程式的 HTML 說明文件迅速轉換成 XHTML 的新公用程式。 除了將 HTML 轉換成有效的 XHTML 之外,這個工具也會更新副檔名、目錄,以及新增必要的連結來啟用動態內容及 XHTML 的內容搜尋。 在這項轉換之後,使用者便可以使用新的 3.2 說明特性,例如,動態過濾內容、重複使用內容以及動態提供內容,所有這些都必須以 XHTML 為內容格式。

您可以從外掛程式專案的快速功能表中,利用 PDE 工具 > 將說明檔轉換成 XHTML 來呼叫這個功能。

XHTML 轉換工具的圖片

通用的「歡迎使用」

根據我們對於具體「歡迎使用」實作的體驗,我們現在提供了可配置的 Universal Welcome,供任何產品使用。 產品可以在 7 個預定的主要區段之間做選擇:「概觀」、「第一步驟」、「教學指導」、「範例」、「新增功能」、「Web 資源」和「移轉」(Eclipse SDK 使用其中 4 個)。Universal Welcome 有可配置 的頁面版面和每個構成要素的重要性層次,能夠充分感知佈景主題。 另外,它也提供了平台涵蓋面達 100% 的 HTML 和 SWT 呈現。

Universal Welcome 所提供的「歡迎使用」喜好設定頁面將「歡迎使用」的自訂作業開放給一般使用者,任何產品只要想提供「歡迎使用」喜好設定頁面,就可以併入它。 您可以在Universal Welcome 中,進一步閱讀這方面的資料。

Universal Welcome 的圖片

「歡迎使用」中之配置和佈景主題的支援

「簡介」架構有其他可配置性支援。 簡介配置器可以提供來進行群組子項、變數替代支援和後期錨點路徑解析的 一次性計算。Universal Welcome 很會使用這項支援,但其他「歡迎使用」實作也可以使用這項支援。

佈景主題代表 CSS 檔、內容和影像的具名集合,它們共同定義了「歡迎使用」 內容的外觀。Universal Welcome 藉由在 3.2 中提供選取佈景主題的功能和兩個具體佈景主題('Circles' 和 'Purple Mesh')來使用這項支援。

「歡迎使用」中之佈景主題的圖片

Ant 延伸點的名稱空間支援

現在,org.eclipse.ant.core antTasksantTypes 延伸點容許指定應該含有定義的 URI。 請參閱錯誤 133190,以取得所有變更的完整資料。

邏輯模型整合的團隊支援

已新增讓邏輯模型參與團隊作業的 API。當使用這個 API 時,團隊提供者可以:
  • 參考模型來確定團隊作業已包含所有必要的資源。
  • 利用模型語意來協助解決合併衝突。
  • 可讓模型在「團隊作業」期間,參與顯示資源。

與 Java 和 資源模型的同步處理

SWT 變更

表格和樹狀結構中的排序指示器

現在,Table 和 Tree 支援在直欄標頭中的排序方向指示器。

排序方向指示器的圖片

顯示依直欄排序(簡式)依直欄排序(虛擬表格)的 SWT 片段。

樹狀結構中可重新排序的直欄

在 Eclipse 3.1 中,找們加入了將 Table 中的直欄重新排序的功能。 這項支援現在已加到 Tree 中。

您可以拖曳直欄標頭,或以程式化的方式設定,來變更樹狀結構中的直欄顯示順序。

可重新排序之直欄的圖片

範例片段

改良的 XP 佈景主題支援

現在,在 Windows XP 中,SWT 會在標籤資料夾中顯示材質背景。 對這個背景而言,群組、標籤、勾選框等都是透明的。 另外,自訂小組件(如 StyledText)現在會顯示主要 Windows XP 佈景主題的正確邊框。

XP 佈景主題支援的圖片

請參閱 SWT FAQ,以取得如何以 Windows XP 面板來執行的指示。

動畫 GIF

動畫 GIF 影像可以儲存在檔案中。

動畫 GIF 支援的圖片

如需範例,請參閱 SWT 片段

桌面外觀通知

當桌面佈景主題、字型或預設顏色之類的外觀設定有了改變,會針對 Display 來發出 SWT.Settings 事件。

桌面外觀通知的圖片

刪除通知

先前,當收到母項合成物的 SWT.Dispose 事件時,會刪除所有子項,因此,也無法參照它們。 如果是 3.2,在 OS 中發行子項之前,會收到 Dispose 事件。

直欄的工具提示

您可以利用 TableColumn/TreeColumn.setTooltipText(String),在表格或樹狀結構直欄標頭上設定工具提示文字。

垂直 CoolBar

您可以利用 SWT.VERTICAL 樣式來建立垂直 Coolbar。

垂直 CoolBar 的圖示

OpenGL 支援

現在,您可以使用 SWT 應用程式中的 OpenGL。 OpenGL 介面會使用協力廠商 OpenGL 程式庫,例如 LWJGL。

OpenGL 範例的圖片

如需範例,請參閱 SWT 片段

虛擬樹狀結構

現在,樹狀結構支援 SWT.VIRTUAL 樣式。 這可讓您迅速建立含有大量資料的樹狀結構。 當需要 TreeItems 時,會隨需應變而建立它們。

如需範例,請參閱 SWT 片段

含影像和文字的按鈕

現在,按鈕可以顯示影像和文字。 Windows XP、Mac OS X 和 GTK 支援這項特性。

含影像之按鈕的圖片

Mac OS X 的 HIView

現在,SWT 會在 Mac OS X 上使用 HIView。 這解決了許多裁剪和調整大小的問題。 

將物件內嵌在文字中

現在,當使用 TextLayout 時,有可能將影像或小組件之類的物件內嵌在文字中。 您可以指定上升、下降和寬度之類的字符公制。 物件會隨著文字而換行。

內嵌在文字中之影像的圖片

如需範例,請參閱 SWT 片段

文字的內縮、對齊和整理版面

現在,TextLayout 支援文字的內縮、對齊和整理版面。

對齊之文字的圖片

如需範例,請參閱 SWT 片段

文字基線上升

當使用 TextLayout 和 TextStyle 時,現在已能夠指定某文字範圍的基線上升。

基線上升之文字的圖片

如需範例,請參閱 SWT 片段

HSB 顏色支援

您可以指定色調、飽和度和亮度來建立顏色。 另外,您還可以查詢給定之顏色的色調、飽和度和亮度值。

HSB 支援的圖片

如需範例,請參閱 SWT 片段

StyledText 對齊、內縮、整理版面

現在,StyledText 支援文字的內縮、對齊和整理版面。

對齊之 StyledText 的圖片

如需範例,請參閱 SWT 片段

StyledText 中的內嵌物件

現在,StyledText 可讓您將影像或小組件之類的物件內嵌在文字中。物件會隨著文字而換行。

文字內嵌影像的圖片

如需範例,請參閱 SWT 片段

背景影像

背景影像可以設在控制項中。 另外,標籤之類的子項小組件也可以沿用背景。

控制項中之背景影像的圖片

如需範例,請參閱 SWT 片段

原生影像載入

現在,Image(Device device, String filename) 建構子會利用原生作業系統呼叫來載入影像。 這改進了影像的載入效能,也增加了可載入的影像大小上限。

拖曳文字

如果在 Text 或 StyledText 上連結了 SWT.DragDetect 事件,當使用者從所選文字範圍內拖曳時,不會清除選項。 這使得支援從 Text 或 StyledText 小組件拖曳成為可能。

如需範例,請參閱這個 SWT 片段

新的 ExpandBar 小組件

ExpandBar 小組件可讓使用者按一下標頭來顯示和隱藏小組件的集合。 ExpandBar 包含多個項目,每個項目在標頭中都可能有一個影像和標題。

隱藏小組件的圖片

如需範例,請參閱這個 SWT 片段

StyledText 中的項目符號

現在,StyledText 可以顯示多種格式化樣式的清單,其中包括項目符號、編號、大寫或小寫字母,以及自訂的樣式。

StyledText 中之項目符號的圖片

如需範例,請參閱這個 SWT 片段

自訂繪製 Tree

現在,Tree 小組件支援自訂繪製個別資料格。 應用程式可以自訂資料的呈現來加強樹狀結構原生的外觀和操作方式。 應用程式也能夠控制列高度,因此,可以繪製多行文字。 另外,它也可以在相同資料格中呈現多重影像、重複變更字型或顏色,以及變更選項的繪製方式。

自訂繪製個別樹狀結構資料格的圖片

如需範例,請參閱下列片段:

自訂繪製 Table

現在,Table 小組件支援自訂繪製個別資料格。 在仍維護表格的原生外觀和操作方式的情況下,使用者也可以自訂如何繪製資料格,以便將資料顯示成含影像之文字以外的形式、將多行文字顯示單一資料格中、在相同資料格內重複變更字型和顏色,以及置換原生選項繪製等等。

自訂繪製個別表格資料格的圖片

如需範例,請參閱下列片段:

Table 和 Tree 的拖曳效果

現在,Table 和 Tree 小組件會提供拖曳項目的視覺化回饋。

拖曳回饋的圖片

新的 Tooltip 類別

新的 ToolTip 類別可用來顯示未直接關聯於某控制項的工具提示。 這些工具提示可以顯示在任何位置,且可以有平台預設外觀或如下所示的 BALLOON 外觀。

含 BALLOON 樣式之工具提示的圖片