pickSegmentValue<T> static method
Implementation
static Future<Set<T>?> pickSegmentValue<T>(
List<LabelValue<T>> items, {
String? title,
String? message,
Set<T>? selected,
bool multi = false,
bool allowEmpty = false,
}) async {
Set<T> selSet = {...?selected};
return await showDialogX((b) {
b.init(result: selSet);
b.dialogWidth = DialogWidth.instrict;
b.title(title?.text());
b.actions(ok: true, cancel: true);
List<Widget> ls = [];
if (message != null) {
ls << b.messageText(message, minHeight: 32, textAlign: TextAlign.start);
}
ls <<
SegmentedButton<T>(
multiSelectionEnabled: multi,
emptySelectionAllowed: allowEmpty,
showSelectedIcon: false,
style: SegStyle,
segments: items.mapList((e) => ButtonSegment<T>(value: e.value, label: e.label.text())),
selected: selSet,
onSelectionChanged: (newSelection) {
selSet = newSelection;
b.setResult(selSet);
b.updateState();
},
);
return b.buildColumn(ls);
});
}