xFilter_FilterItem method
Evento chiamato quando cambia un XFilter inserito nella lista dei filtri nel metodo initXFilter
Implementation
bool xFilter_FilterItem(K item) {
// widget.whereMethod!(element, filterCurrent)
var rval = true;
// se ci sono appli XFilterEl
if (xFilter_XFilters.isNotEmpty) {
for (var xf in xFilter_XFilters) {
var propNameReal = xf.xPropOfItemToFilter.col_Name;
if (propNameReal.endsWith("ID")) propNameReal += "_resolved";
if (xf.Value == xf.All)
rval = true;
else if (xf.Value is XFDataItem) {
if (xf.xPropOfItemToFilter.col_Name.endsWith("ID"))
rval = item[xf.xPropOfItemToFilter.col_Name]! == (xf.Value as XFDataItem).id;
else
rval = item[xf.xPropOfItemToFilter.col_Name]! == (xf.Value as XFDataItem)[xf.ColsOfXFdataItemToShow.first.col_Name];
} else if (xf.Value is XEnumDef) {
rval = item[xf.xPropOfItemToFilter.col_Name]! == (xf.Value as XEnumDef).value;
} else {
rval = item[propNameReal]! == xf.Value!;
}
if (!rval) return false;
}
}
if (xFilterCurrent.isNotEmpty && xFilter_SearchBarXCols.isNotEmpty) {
var searchBarResult = false;
for (XProp pippo in xFilter_SearchBarXCols) {
var propNameReal = pippo.col_Name;
if (propNameReal.endsWith("ID")) propNameReal += "_resolved";
searchBarResult = item[propNameReal]!.toLowerCase().contains(xFilterCurrent.toLowerCase());
if (searchBarResult) {
break;
}
}
if (searchBarResult) return searchBarResult;
if (widget.searchBar_whereMethod != null) return widget.searchBar_whereMethod!(item, xFilterCurrent);
return searchBarResult;
}
return true;
}