Pohon Java SWT Perluas Semua / Tutup Semua

Bagaimana saya bisa membuat fungsionalitas Perluas Semua dan Ciutkan Semua untuk Pohon SWT saya sendiri, mirip dengan tombol Ciutkan Semua di Package Explorer Eclipse?


person Andrei Statescu    schedule 04.11.2016    source sumber


Jawaban (1)


Jika Anda hanya menggunakan SWT Tree Anda harus mengulang semua item di pohon dan memperluas/menciutkan masing-masing item. Misalnya:

boolean expanded = true to expand, false to collapse

Tree tree = ... your tree

tree.setRedraw(false);  // Stop redraw until operation complete

TreeItem [] items = tree.getItems();

for (TreeItem item : items) {
   item.setExpanded(expanded);
}

tree.setRedraw(true);

Jika Anda menggunakan JFace TreeViewer panggil metode penampil collapseAll atau expandAll.

person greg-449    schedule 04.11.2016
comment
Jika Anda menggunakan JFace TreeViewer, ketahuilah bahwa ada bug yang menyebabkan penunjuk tetikus berkedip saat meluaskan pohon besar. Solusinya adalah dengan memanggil expandAll() dari runnable yang diteruskan ke BusyIndicator::showWhile(). - person Rüdiger Herrmann; 04.11.2016
comment
Mengapa Anda perlu menghentikan penarikan kembali hingga operasi selesai? - person eliaspr; 10.08.2017
comment
@ Profesor901 Ini menghentikan perluasan individu yang ditarik secara terpisah, memperlambat segalanya dan mungkin menyebabkan kedipan. - person greg-449; 10.08.2017