0

私たちのアプリケーションは RCP アプリケーションであり、数千項目のテーブルを表示する必要があります。このため、SWT.VIRTUAL私たちはTableViewer. 選択を除いて、それはかなりうまく機能します。

次の問題があります。

  • TableViewer並べ替えとフィルタリングをサポートしています。仮想テーブルビューアーを使用する場合、選択を変更すると、現在選択されているアイテムは保持されず、現在選択されている行が保持されます。これにより、別のアイテムが選択されます。例: ユーザーが 5 行目にあるアイテム「A」を選択してソートを実行すると、ソート後にアイテム「A」の代わりに 5 行目のアイテムが選択されます。非仮想を使用するTableViewerと、すべて正常に動作します。

デバッグを試みたところ、AbstractTableViewer.VirtualManagerクラスのキャッシュがモデルで最新のように見えることがわかりました。でキャッシュを強制的に使用するAbstractTableViewer.virtualSetSelectionToWidget()ことは、可能なアプローチです。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=338696で提案されている解決策を実装しようとしました。しかし、うまくいきませんでした。

いくつかのポインタまたは代替の回避策を提案してください。

答えてくれてありがとう。

4

1 に答える 1

2

巨大なテーブルを操作するための回避策として、Nattable プロジェクトhttp://www.eclipse.org/nattable/を参照することをお勧めします。必要なすべてをサポートしています (並べ替え、フィルタリング、ツリー構造の要素、遅延読み込みなど)。プロジェクトでは、数十万の要素を約 160 列のツリーとして表示する必要があります。また、テーブルをよりユーザーフレンドリーでインタラクティブにすることができる、非常に優れたスタイリング機能もいくつか備えています。お役に立てれば

于 2013-02-19T12:32:07.070 に答える