2016-11-04 2 views

答えて

4

SWT Treeを使用している場合は、ツリー内のすべての項目をループし、それぞれを展開/折りたたむ必要があります。たとえば、次のように

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); 

あなたはJFaceのTreeViewerコールビューアcollapseAllexpandAllメソッドを使用している場合。

+1

JFace TreeViewerを使用している場合は、[マウスポインタがちらつく原因となるバグがあります](https://bugs.eclipse.org/bugs/show_bug.cgi?id=502841)に注意してください大きな木。回避策は、 'BusyIndi​​cator :: showWhile()'に渡される実行可能ファイルから 'expandAll()'を呼び出すことです。 –

+0

操作が完了するまで、なぜredrwawを停止する必要がありますか? – Professor901

+1

@ Professor901個々に展開される展開を停止し、処理を遅くしたり、ちらつきを引き起こす可能性があります。 –