独自のカスタム・ウィジェットを実装することにより、SWT を拡張することができます。SWT 自体は、 パッケージ org.eclipse.swt.custom を 提供します。これには、SWT コントロールのコア・セットには含まれない、 プラットフォーム・ワークベンチを実装するために必要となるカスタム・コントロールが含まれます。
コントロール |
目的 |
---|---|
CBanner | CBanner は、ツールバー・エリアおよびパースペクティブ切り替えツールバーをレイアウトする場合に、ワークベンチで使用します。 |
CCombo | Combo に似ていますが、テーブル・セル内に収まるように、垂直方向にサイズを変更できます。 |
CLabel | ラベルに似ていますが、省略符号付きのテキストの短縮形をサポートします。 アクティブなワークベンチ・ビューで見られるような背景色のこう配効果もサポートします。ラッピングはサポートしません。 |
CTabFolder | タブ・フォルダーと似ていますが、タブ (上部または下部) および枠の視覚的な外観の追加構成をサポートします。 |
CTabItem | CTabFolder でページのタブに対応する選択可能なユーザー・インターフェース・オブジェクト。 |
SashForm | 行または列の配置に子をレイアウトし、ユーザーが子のサイズを変更できるように、 サッシを使用してそれらを分離させるコンポジット・コントロール。 |
ScrolledComposite | コンテンツをスクロールし、 オプションで、使用可能なスペースを埋めるためにコンテンツを引き伸ばすコンポジット・コントロール。 |
StyledText | ユーザーがテキストを入力できる編集可能なコントロール。コントロール内のテキスト範囲には、 異なる色およびフォント・スタイルを使用できます。 |
ViewForm | ViewForm はワークベンチで、ビューのラベル/ツールバー/メニューのローカル・バーの位置およびサイズを決定するために使用します。 |
カスタム・ウィジェットが必要であると判断し、どのプラットフォームをサポートするかを決定した後、 ウィジェットのいくつかの実装技法について考慮します。 基礎となる OS プラットフォームで何が利用可能かに応じて、これらの技法を組み合わせることができます。
SWT により提供されない固有のウィジェットがアプリケーションで必要になる場合は、 それを固有に実装する必要があります。これは、 プラットフォーム共用ライブラリー内のプラットフォーム・ウィジェット、サード・パーティー・ウィジェット、 またはその他のウィジェットである場合があります。固有のカスタム・ウィジェットの実装の完全な例については、 『 SWT を使用したユーザー独自のウィジェットの作成』を参照してください。
ウィジェットを結合して、より高度なウィジェットを作成できます。例えば、ボタンおよびドロップダウン・リストとテキスト・エントリー・ウィジェットを併用して、Combo を実装することができます。 結合されたウィジェットを実装するには、Composite のサブクラスを作成し、子を内部で管理します。
簡単な例については、CCombo を参照してください。
場合によっては、新規ウィジェットの実装に役立つ、固有コードも既存のウィジェットもないことがあります。 この場合、Paint イベントのハンドラー内で自分でウィジェットをドローしなければなりません。 この技法は、極めて複雑になる可能性がありますが、 完全に移植可能な実装を作り出すという利点があります。
カスタム・ドロー・コントロールは、 Canvas または Composite を サブクラス化することによって実装されます。ウィジェットに子コントロールが含まれない場合は、 Canvas をサブクラス化します。
カスタム・ドロー・ウィジェットの内部実装には、通常、 以下の主要なタスクが必要です。
org.eclipse.swt.custom で 実装された多くのウィジェットは、このアプローチを使用します。 簡単な例については、C ラベル を参照してください。
カスタム・ウィジェットの詳細については、 『 SWT を使用したユーザー独自のウィジェットの作成』を参照してください。