3.2 の新機能

ここでは、Eclipse の 3.2 リリースに対する Eclipse プラットフォーム、および SWT に対する、プラグイン開発者に関係のある変更内容について説明します。

ワークベンチ・ユーザー・ガイドの『新機能』セクションに記載されているプラットフォームのエンド・ユーザー向けの多数の新規フィーチャーもあります。

プラットフォームの変更点

ランタイム・リファクタリング

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 は、ファイル・システムと相互作用する新規の汎用プラグインを導入します。java.io API ではなく、このファイル・システム API を使用するためにプラットフォームはマイグレーションされています。したがって、リソースは任意のバッキング・ファイル・システムに作成することができ、プラグインは新しい種類のファイル・システムをサポートします。

その他のファイル・システムにリンクされたリソースを作成するためのプロジェクト、およびリンクされたリソース・ウィザードに対するサポートが追加されました。代替ファイル・システムを定義するプラグインは、org.eclipse.ui.ide.filesystemSupport 拡張ポイントを使用して、このウィザード・サポートに接続することができます。

非ローカル・ファイル・システムを示す図

インポートとエクスポートに追加されたカテゴリー化

org.eclipse.ui.importWizards および org.eclipse.ui.exportWizards 拡張ポイントはカテゴリー化をサポートするようになりました。

拡張ポイントを示す図

テキスト・エディターにおける注釈用のツールチップ

注釈吹き出しは、JDT テキストからプラットフォーム・テキストにプッシュダウンされています。テキスト、垂直および概要ルーラー吹き出しサポートは、テキスト・エディターで使用される TextSourceViewerConfiguration によってインストールされます。

注釈ツールチップの図

テキスト・エディターにおける注釈ナビゲーション

注釈ナビゲーションは JDT テキストからプラットフォーム・テキストにプッシュダウンされており、すべてのテキスト・エディターで使用可能です。

ナビゲーション・アイコンの図

JFace フィールド支援

JFace は、ダイアログとフォーム内のフィールドを完了する際にユーザーを支援するための新規サポートを提供します。org.eclipse.jface.fieldassist パッケージは、イメージおよび対応する吹き出しテキストを使用して任意のコントロールを装飾するためのクラスを提供します。これらはダイアログの必要なフィールドのマーキング、フィールド・ベースのエラー状態の表示、またはコンテンツ・アシスト・プロンプトの表示などの目的のために使用することができます。パッケージにより、コンテンツ・プロポーザル、詳細情報のための 2 次ポップアップ、および明示的にまたは自動 (先行入力) スタイルでプロポーザルを呼び出すためのオプションを示すポップアップ・ダイアログなど、コントロールにコンテンツ・プロポーザルをインストールすることもできます。

フィールド支援を示す図

JFace TreeViewer の機能拡張

AbstractTreeViewer はツリーにおいて、それぞれ異なる親チェーンを持つ複数の同等な要素をサポートします。このサポートでは、クライアントは setUseHashLookup(true) を呼び出すことにより要素・マップを使用可能にする必要があります。

TreeViewer は現在、SWT.VIRTUAL ツリーをサポートします。必要な場合にのみコンテンツを返す遅延コンテンツ・プロバイダー ILazyTreeContentProvider もあります。

ダイナミック・ヘルプ目次のサポート

ヘルプ・システムは、ヘルプ目次のダイナミック構成をサポートするようになりました。XHMTL で作成されたトピックは、os/ws/arch 値、プラグインの存在、使用可能な機能などに基づいてコンテンツの即時のフィルター処理のための追加の Eclipse 固有のマークアップを含むことができます。共用コンテンツは、複数の文書に組み込むことができます。最後に、プラグインはその他の文書のアンカーに接続する XHTML フラグメントをコントリビュートすることができます。このため、情報開発者は表示するときにコンテンツに調整される動的文書を提供することができます。

ヘルプ検索の機能拡張

ユーザー支援索引作成、および検索は、さまざまな方法で拡張されました。追加の検索参加プログラムは、Lucene 索引にコンテンツを追加できる拡張ポイントを通じて登録することができます。ヘルプは、XHMTL で作成されたダイナミック・ヘルプ文書の索引を作成できる XHMTL 検索参加プログラムをコントリビュートすることができるようになりました。さらに、索引に以前存在しなかった文書が表示されるようになります (例えば、虎の巻や「ようこそ」ページ)。 検索ヒットは異なるアイコンを持つことができ、「開く」アクションは検索エンジンに委譲させることができます。

検索機能拡張を示す図

問題はグループ化することができます。

「問題」ビューの問題をグループ化できるようになりました。重大度と問題のタイプによるデフォルト・グループがあり、追加グループは org.eclipse.ui.ide.markerSupport 拡張ポイントを通じて定義することができます。

ダイアログのヘルプの改善

Eclipse の多くのダイアログには左下隅に標準の「ヘルプ」ボタンがあります。このボタンは、F1 (Windows の場合) を押す場合と同じようにコンテキスト・ヘルプを呼び出します。さらに、ヘルプ目次は、別のウィンドウにではなく、ダイアログのトレイに表示されます。カスタム・ダイアログは、Dialog ではなく、新規 TrayDialog クラスをサブクラスに分けることにより、この機能を継承することができます。虎の巻は、ダイアログを開くアクションを含むステップに対するダイアログ (トレイ内) で使用することもできます。

ユーザー支援コンテンツへのコマンド・リンクの組み込み

ヘルプ内のリンク、虎の巻、および概要コンテキストは、ユーザーによって起動されたときにコマンドを実行することができます。コマンド・リンクを使用して設定ページを開き、ウィザードを起動し、ビューを表示し、パースペクティブを開き、その他の目的に使用することができます。コマンド・フレームワークは、コマンド・リンクをさらに多く使用できるように拡張が可能です。「ワークベンチ・ユーザー・ガイド」は多くの場所でコマンド・リンクによって拡張されています。下図はヘルプ・トピックの 2 つのコマンド・リンクを示します。

ヘルプ・トピックのコマンド・リンク

虎の巻からのコマンドの起動のサポート

コマンドは虎の巻から起動することができます。以下のコンテンツ・ファイルは、「検索」ビューとパッケージ・エクスプローラーを開くためのコマンドを含みます。
<?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 コンテンツの検索を可能にします。この変換後、ユーザーは、動的コンテンツ・フィルター処理、コンテンツの再利用、およびすべてがコンテンツ書式として XHTML を必要とする動的コンテンツ・コントリビューションなどの新規 3.2 ヘルプ機能を活用することができます。

この機能は、プラグイン・プロジェクトのコンテキスト・メニューから「PDE ツール」>「ヘルプ・ファイルを XHTML に変換」を通じて呼び出すことができます。

XHTML 変換ツールを示す図

汎用ウェルカム

具体的なウェルカムの実装の経験に基づいて、どの製品にでも使用できる構成可能な汎用ウェルカムが提供されます。 製品は、概要、ファースト・ステップ、チュートリアル、サンプル、新機能、Web リソース、マイグレーションの 7 つ (Eclipse SDK では 4 つ) の定義済みのメイン・セクションから選択することができます。汎用ウェルカムには各コントリビューション用の構成可能なページ・レイアウトと重要度レベルがあり、テーマごとに対応しています。すべてのプラットフォームに適応できるように HTML 表示と SWT 表示の両方も提供します。

汎用ウェルカムによって提供されるウェルカム設定ページは、エンド・ユーザー向けにウェルカム・カスタマイズを表示し、それを提供するすべての製品に組み込むことができます。 汎用ウェルカム仕様にこの詳細を記載しています。

汎用ウェルカムを示す図

ウェルカムの構成とテーマのサポート

概要フレームワークの構成サポートがさらに充実しました。概要コンフィギュラーは、コントリビュートされ、グループの子の 1 回限りの計算、変数置換サポート、および最新アンカー・パス解決を提供します。このサポートは汎用ウェルカムによって頻繁に使用されますが、その他のウェルカムの実装で使用することもできます。

テーマはウェルカムのコンテンツの外観を集合的に定義する CSS ファイル、プロパティー、およびイメージの名前付き集合を表します。汎用ウェルカムは、テーマ選択機能と 3.2 の 2 つの具体的なテーマ「サークル」および「パープル・メッシュ」を提供することによりこのサポートを最大限に活用します。

ウェルカムのテーマを示す図

Ant 拡張ポイントの名前空間サポート

org.eclipse.ant.core antTasks および antTypes 拡張ポイントにより、定義が存在する URI を指定することができます。すべての変更内容について詳しくは、バグ 133190 を参照してください。

論理モデル統合のためのチーム・サポート

論理モデルがチーム操作に参加できるようにする API が追加されました。この API を使用して チーム・プロバイダーは以下のことを実行することができます。
  • モデルを検討して、すべての必要なリソースがチーム操作に含まれていることを確認します。
  • モデル・セマンティクスを使用してマージ・コンフリクトを解決します。
  • モデルがチーム操作時にリソースの表示に参加することができるようにします。

Java とリソース・モデルによる同期

SWT の変更点

テーブルとツリー内のソート・インディケーター

テーブルとツリーは、カラムのヘッダーのソート方向インディケーターをサポートしています。

ソート方向インディケーターを示す図

カラム (シンプル) および sorting カラム (仮想テーブル) でのソートを示す SWT スニペット

ツリー内の順序を変更可能なカラム

Eclipse 3.1 では、テーブルのカラムを再配列する機能を追加しました。そのサポートはツリーにも追加されました。

ツリーのカラムの表示順序は、カラム・ヘッダーをドラッグして変更するか、プログラマチックに設定することができます。

順序を変更可能なカラムを示す図

snippet.

XP テーマ・サポートの向上

Windows XP では、SWT はタブ・フォルダーにテクスチャー背景を表示します。グループ、ラベル、チェック・ボックスなどはすべてこの背景に透過的に表示されます。また、StyledText などのカスタム・ウィジェットは、主な Windows XP テーマの正しい境界線を表示するようになりました。

XP テーマ・サポートを示す図

Windows XP スキンでの実行方法について詳しくは、SWT FAQ を参照してください。

GIF アニメーション

アニメーション化された GIF イメージはファイルに保管することができます。

GIF アニメーションのサポートを示す図

例については、SWT スニペットを参照してください。

デスクトップ外観通知

テーマ、フォント、またはデフォルト・カラーなどの外観設定をデスクトップ用に変更する場合、SWT.Settings イベントが 表示用に発行されます。

デスクトップ外観通知を示す図

通知の破棄

従来は、SWT.Dispose イベントを親コンポジットから受け取った場合、すべての子が破棄され、参照することはできませんでした。3.2 では、 OS で子が破棄される前に Dispose イベントを受け取ります。

カラムのツールチップ

ツールチップ・テキストは、 TableColumn/TreeColumn.setTooltipText(String) を使用してテーブルまたはツリー・カラム・ヘッダーに設定することができます。

垂直クールバー

垂直クールバーは SWT.VERTICAL スタイルを使用して作成することができます。

垂直クールバーを示す図

OpenGL のサポート

SWT アプリケーションで OpenGL を使用することができます。 OpenGL インターフェースは、LWJGL などのサード・パーティーの OpenGL ライブラリーと共に動作します。

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) は、ネイティブなオペレーティング・システムのコールを使用してイメージをロードするようになりました。これにより、イメージのロードのパフォーマンスが向上し、ロード可能なイメージの最大サイズが増大しました。

テキストのドラッグ

SWT.DragDetect イベントが Text または StyledText にフックされている場合、ユーザーが選択された範囲のテキストからドラッグするときに選択はクリアされません。そのため、Text と StyledText ウィジェットからのドラッグをサポートすることができます。

例については、 SWT スニペットを参照してください。

新規 ExpandBar ウィジェット

ExpandBar ウィジェットでは、ヘッダーをクリックすることによりユーザーがウィジェットの集合を表示または非表示にすることができます。ExpandBar には、それぞれがヘッダーにイメージとタイトルがある可能性のある複数の項目が含まれます。

非表示のウィジェットを示す図

例については、この SWT スニペットを参照してください。

StyledText の黒丸

StyledText は、黒丸、番号付き、英大文字または英小文字などのさまざまなスタイル、およびカスタム定義されたスタイルでフォーマットされたリストを表示します。

StyledText の黒丸を示す図

例については、この SWT スニペットを参照してください。

カスタム描画ツリー

ツリー・ウィジェットは個別のセルに対するカスタム描画をサポートします。アプリケーションは、データのカスタム・レンダリングによりツリーの本来のルック・アンド・フィールを改善することができます。アプリケーションは行の高さをコントロールして、複数の行のテキストを描画することができます。さらに、同じセルに複数のイメージを表示し、フォントまたは色を複数回変更して、選択を描画する方法を変更することができます。

個別のツリー・セルのカスタム描画を示す図

例については、以下のスニペットを参照してください。

カスタム描画テーブル

テーブル・ウィジェットは個別のセルに対するカスタム描画をサポートします。テーブルの本来のルック・アンド・フィールを維持しながら、ユーザーは、イメージ付きテキスト以外の書式でデータを表示し、1 つのセルの複数行のテキストを表示し、同じセル内でフォントと色を複数回変更し、固有の選択描画を上書きするなどの目的でセルを描画する方法をカスタマイズすることができます。

個別のテーブル・セルのカスタム描画を示す図

例については、以下のスニペットを参照してください。

テーブルとツリーに対するドラッグ・オーバー効果

テーブル・ウィジェットおよびツリー・ウィジェットはドラッグ対象のビジュアル・フィードバックを提供します。

ドラッグ・フィードバックを示す図

新規ツールチップ・クラス

新規のツールチップ・クラスを使用して、コントロールに直接関連付けられていないツールチップを表示することができます。これらのツールチップはどこにでも配置することができ、プラットフォームのデフォルトの外観または以下に示すバルーン表示にすることができます。

バルーン形式のツールチップを示す図