fillSelect<T, S> static method
void
fillSelect<T, S>(})
填充选择状态
Implementation
static void fillSelect<T, S>(
List<ISelectBox<T>>? dataList, Iterable<S>? selectList,
{Predicate<T?, S?>? predicate,
bool maintain = false,
bool penetrate = false}) {
//数据为空则不进行
if (dataList == null) {
return;
}
//配置predicate!=null;
predicate ??= (src, beCompared) {
return src == beCompared;
};
for (var item in dataList) {
//配置是否保持
if (!maintain) {
item.boxChecked = false;
}
//根据selectList填充是否选择
if (selectList != null) {
for (final selectedItem in selectList) {
if (predicate(item.boxData, selectedItem)) {
item.boxChecked = true;
break;
}
}
}
;
//填充子节点
if (item.boxChildren != null && penetrate) {
SelectUtils.fillSelect(
item.boxChildren as List<ISelectBox<T>>, selectList,
predicate: predicate, maintain: maintain, penetrate: penetrate);
}
}
}