JFace
JFace は、Eclipseプロジェクトによる「退屈な作業となるUI機能の実装を支援するクラスを提供するUIツールキット」である。下位のウィジェットの上層に位置し、一般的なUIプログラミングタスクを制御するクラスを提供する。Standard Widget Toolkit に Model View Controller の視点を持ち込んだものと言える。
ウィジェットのソート、フィルタリング、更新などの紋切り型のタスクを処理する Viewer クラスを提供する。
独自の動作を定義し特定のコンポーネント(メニューアイテム、ツールアイテム、プッシュボタンなど)に割り当てることを可能にするアクションを提供する。
イメージとフォントを格納するレジストリを提供する。
標準ダイアログとウィザードを定義し、ユーザーとの複雑な相互作用を構築するフレームワークを定義している。
その目標は、全てのUIアプリケーションに共通する問題を解決することや基盤となっているウィジェットシステムについて心配することなく、開発者が自分のアプリケーションの実装に専念できるようにすることである。
Eclipse プロジェクトで JFace を開発するに当たって、プログラマからSWTコンポーネントの実装を隠すという意図があったわけではない。JFace は SWT に依存しているが、SWT は JFace には依存していない。さらに、Eclipse Workbench は JFace と SWT を使っており、状況によっては JFace をバイパスして SWT を直接使っている。