## Tree

The Tree widget can display structured data in a hierarchical view. It supports checkboxes, resizeable and moveable columns, multi-selection mode, on-demand data loading (so-called Virtual Trees), and more.

### Style Flags

The style flag `CHECK` enables checkboxes.

The selection mode can be chosen by specifying either `SINGLE`, which is the default, or `MULTI` to enable multi-selection.

### Virtual Trees

Trees can handle lots of data. Too many rows can slow down rendering. With virtual trees, only the range of visible rows is loaded from the server. Everytime a new range of items becomes visible, the new information to display is requested from the server.

### JFace TreeViewers

JFace viewers provide a model-view-controller separation. For advanced uses, a TreeViewer is an alternative to using a plain SWT Tree. The TreeViewer operates on an underlying Tree widget and performs all tasks necessary for labeling, filtering, sorting, etc.

### Theming

The appearance of the Tree widget is highly customizeable. Examples are:

- Alternating row colors
- Exchangeable indent icons
- Configurable cell padding