getAllSelectableNodes method
获取所有可选择的节点
Implementation
List<T> getAllSelectableNodes() {
final List<T> result = [];
void traverse(List<T> nodes) {
for (final node in nodes) {
final enabled =
widget.disabledWhen == null ? true : !widget.disabledWhen!(node);
if (enabled) {
final children = getChildren(node) ?? [];
if (children.isEmpty || parentCheckable) {
result.add(node);
}
if (children.isNotEmpty) {
traverse(children);
}
}
}
}
traverse(widget.source);
return result;
}