Community
Participate
Working Groups
void sendExpand (boolean expand, boolean recurse) { if (itemCount == 0) return; if (expanded != expand) { Event event = new Event (); event.item = this; parent.sendEvent (expand ? SWT.Expand : SWT.Collapse, event); if (isDisposed ()) return; expanded = expand; } if (recurse) { for (int i = 0; i < itemCount; i++) { if (items[i] != null) items[i].sendExpand (expand, recurse); } } } That is the code snippet that is run when a TreeItem is expanded or collapsed. The events are fired before the expanded flag is actually changed. This means that if you are trying to do something with the new Tree state, you will instead get an outdated tree state. There should be an event fired after all TreeItems have been expanded/collapsed.