Eclipse 3.6 で JFace を使用してアプリケーションを開発しています。実際のウィジェット (主にチェックボックスとボタン) を TableViewer に配置したいと考えています。私が見つけたものはすべて、現時点ではこれが不可能であることを示唆しているようです.
私の現在の回避策には、ラップされた Table コントロールの MouseListener を用意することが含まれます。この場合、mouseDown イベントの座標は、getCell()メソッドを使用してセルに変換され、それに基づいて処理されます。次に、コンテンツ プロバイダーを使用して、それぞれのウィジェットの外観にある程度近い画像と書式設定されたテキストを提供します。
問題は、結果がまったくネイティブに見えないことです。実際のネイティブ ウィジェットのスクリーンショットを撮ることを含むいくつかの回避策がありますが、これにはいくつかの問題があります。
- それはハックです
- キャプチャされたウィジェットが時々表示され、画面上でちらつきのアーティファクトが作成されます
- キャプチャした画像をテーブルの色とブレンドするには、画像処理のトリックが必要です
- たとえば、異なるコンテンツのボタンが必要な場合、うまくスケーリングしません
このような面倒な方法を使用せずに、ウィジェットを TableViewer セルに埋め込む方法はありますか? 基礎となるSWTテーブルは確かにそれを行うことができますが、TableViewerインターフェースはこれをサポートしていないようです...