xLayout_DialogAddItem method
Gestione dell'aggiunta di un Item
Implementation
Future<bool> xLayout_DialogAddItem(XView xView, XFDataItem item, void Function(void Function()) setState, {List<ScontiBTN>? liSconti}) async {
bool isFirstCanceledCanSkipPreviewDlg = false;
int u = 0;
setState(() {
// enteredInEditOnCell = true;
widget.key_Head = UniqueKey();
});
bool rval = true;
if (xView.cols.where((e) => e.dataType != bool || e.readOnly != true || e.colKey.startsWith("li").not()).length == 1) {
isFirstCanceledCanSkipPreviewDlg = false;
} else {
for (var i in xView.cols) {
if (i.dataType == bool || i.readOnly == true || i.colKey.startsWith("li")) continue;
u++;
var x = await xEditDialog(item, i.colCaption, item[i.colKey], i, liSconti: liSconti);
if (x == null) {
rval = false;
if (u == 1) {
isFirstCanceledCanSkipPreviewDlg = true;
}
break;
} else {
item[i.colKey] = x;
}
}
}
//ha già messo roba e prima di annullare tutto gli facciamo vedere cosa ha già inserito e può cmq annullare
if (!isFirstCanceledCanSkipPreviewDlg) rval = await xPreview_Dialog(xView, item);
setState(() => widget.key_Head = UniqueKey());
return rval;
}