Tableのスクロールが重い件
Tableでレコード件数が1000を超えると、スクロールが重すぎる。なんだこれは・・。
セルにProgressBarを埋め込んでいるので、さらに重い。
これはもうどうしようもない感じ・・、Canvasで自分でグラフを描画すれば少しは軽いかもと考えて、とりあえずCanvasに置き換えるだけを試したが、少ししか変わらない・・・。
で、ShareやWinnyをみると、めっちゃ軽くて、こりゃもうあかんと思った。
それと、Table.setItemCount()で、レコード数を"減らす"と、減った部分のProgressBarだけが消えなくて残る。Table.clearAll()でも消えない。ProgressBarを保存しておいて、明示的にdisposeしないとダメ?まだ不明。
- 追記
スクロールしたら消える。スクロールできない量だとずっと残る。つまり、スクロールするまで消えない。うう。
- 追記
DWT.VIRTUALをやめたら消えた。
- 追記
スクロールが重いのは、マウスでスクロールしたとき。カーソルで動かすと重くない。無理に小刻みに動かそうとするから重い?マウスの設定?謎。
- 追記
DWT.VIRTUALにしても、ProgressBarとTableEditorを更新前に明示的にdispose()すると消える。んんん、SWT自体の勉強を全くしていないからよく分からんの現状。なにかまともな資料を読まないといかんなと思った。
- 追記
やっぱりProgressBarが重い。どうも、1セルごとにmoveとresizeのリスナーが設定されて、ちょっと動かすと全部が呼ばれてるみたい。
これは、もう自作しかないと覚悟を決めた。