buildXItem<T extends XFDataItem, K> method
dynamic
buildXItem<T extends XFDataItem, K>(
- T item,
- List liChildrens,
- dynamic BTNadd_cmdAdd(
- T
- void parentSetState(
- void ()
- Widget dettItem(
- dynamic
- String? BTNadd_label,
- Widget? mainWidget,
- Color? backGround_Color,
- Widget dettWidget(
- dynamic
- EdgeInsetsGeometry? margin,
- List<
XPopUpMenuItem> ? liPopUpMenu_Items, - bool border_Visible = false,
- bool title_InMainWidget_Visible = false,
- XView? xView_Scheda,
- XView? xView_Elenco,
- XView? xViewDett,
- List<
Widget> ? titleLiWidgets, - bool viewDett_Data = false,
Widget per la costruzione di ItemComplessi utilizzati nei Dettagli della Scheda
Implementation
buildXItem<T extends XFDataItem, K>(
T item,
List<dynamic> liChildrens,
Function(T) BTNadd_cmdAdd,
void Function(void Function()) parentSetState, {
Widget Function(dynamic)? dettItem,
String? BTNadd_label,
Widget? mainWidget,
Color? backGround_Color,
Widget Function(dynamic)? dettWidget,
EdgeInsetsGeometry? margin,
List<XPopUpMenuItem>? liPopUpMenu_Items,
bool border_Visible = false,
bool title_InMainWidget_Visible = false,
XView? xView_Scheda,
XView? xView_Elenco,
XView? xViewDett,
List<Widget>? titleLiWidgets,
bool viewDett_Data = false,
}) {
return StatefulBuilder(
builder: (context, setState) {
return XElencoItem(item, xView_Scheda!, xViewDetts: xViewDett, margin: margin ?? EdgeInsets.only(left: 10, right: 10, bottom: 10), changeStatoWithTap: true, onTapItem: () {
parentSetState(
() {
item.isShowDetails = item.isShowDetails.not();
},
);
},
showTrailingArrow: false,
decorationBackGroundContainer: border_Visible
? BoxDecoration(
color: backGround_Color ?? Colors.grey[900],
border: Border(
left: BorderSide(),
right: BorderSide(),
top: BorderSide(),
bottom: BorderSide(),
))
: BoxDecoration(color: backGround_Color ?? Colors.grey[900]),
showingDetails: item.isShowDetails,
showMainWithDetails: true,
childMain: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row(mainAxisAlignment: MainAxisAlignment.end, children: [
mainWidget != null ? Container() : Icon((item.isShowDetails) ? Icons.keyboard_arrow_up_outlined : Icons.keyboard_arrow_down_outlined, color: XColors.foregroundLight),
mainWidget != null
? Container()
: xView_Elenco != null && widget.showHead
? Expanded(
child: Row(children: [
Expanded(
child: Wrap(
children: xLayout_Render_HeadView(xView_Elenco),
))
]),
)
: Container(),
mainWidget != null ? Expanded(flex: 2, child: mainWidget) : Container(),
Container(margin: EdgeInsets.only(top: 5, right: 5, bottom: 5), child: xActionsItem_ViewDett(item, viewDett_Data, setState, xView_Scheda)),
media_isActive ? Container(margin: EdgeInsets.only(top: 5, right: 5, bottom: 5), child: xActionsItem_AddMedia(item)) : Container(),
Container(
margin: EdgeInsets.only(top: 5, right: 5, bottom: 5),
child: XBtnbase(
width: 40,
height: 40,
// label: BTNadd_label,
icon_WidthArea: 25,
icon: Icons.add,
icon_Size: 22,
onPressed: () {
FocusScope.of(context).unfocus();
BTNadd_cmdAdd(item);
setState(() {
item.isShowDetails = true;
});
// parentSetState(() => editedPage = true);
},
elevation: 0,
decoration: BoxDecoration(color: Colors.grey[800], borderRadius: BorderRadius.all(Radius.circular(25))),
label_Color: XColors.foregroundLight,
icon_Color: XColors.done)),
liPopUpMenu_Items != null
? Container(
height: 30,
child: PopupMenuButton(
padding: EdgeInsets.all(1),
icon: Icon(Icons.more_vert_outlined),
itemBuilder: (context) {
return liPopUpMenu_Items
.map((e) => PopupMenuItem(
height: 40,
child: XBtnbase(
decoration: BoxDecoration(border: Border(bottom: BorderSide(color: Colors.grey[700]!))),
height: 40,
width: (e.iconImage != null || e.icon != null) ? 250 : 150,
label: e.title,
icon_WidthArea: 50,
label_Style: XStyles.xStyTextForSubLabel(e.color),
icon_Widget: e.icon != null ? null : Container(width: 50, child: e.iconImage),
icon: e.iconImage != null ? null : e.icon,
icon_Size: 23,
icon_Color: e.iconImage != null ? null : e.color,
toolTip_Message: e.toolTip_Message,
onPressed: () => e.onPressed!(context, item),
)))
.toList();
},
iconSize: 22,
))
: Container(),
])
],
),
childDetails: Column(
children: [
item.isSel
? xView_Scheda == null
? Container()
: xDett_Item_HeadWidget(item, parentSetState, xclViewUI: xView_Scheda)
: Container(),
dettWidget != null
? dettWidget(item)
: Column(
children: liChildrens.map((xclVoce) {
return dettItem!(xclVoce);
}).toList()),
Container(
// decoration: BoxDecoration(color: colorItem_Lavoro),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
//// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI
media_isActive
? (_liMediaRAW != null && _liMediaRAW.isNotEmpty && _liMediaRAW.any((element) => element.xDocID == item.id))
? Container(
margin: EdgeInsets.all(8),
decoration: BoxDecoration(border: Border.all(color: Colors.grey[700]!)),
child: Column(children: [
Row(children: [Expanded(child: Container(decoration: BoxDecoration(border: Border(bottom: BorderSide(color: Colors.grey[700]!))), child: Text("Media", textAlign: TextAlign.center, style: XStyles.xStyTextForSubLabel(XColors.foregroundLight))))]),
Column(
children: _liMediaRAW.groupListsBy((element) => element.mediaType).entries.map((e) {
if (e.key == XEnumsMediaType.audio) {
return builder_AudioArea(_liMediaRAW.where((element) => element.mediaType == XEnumsMediaType.audio).toList(), item);
} else if (e.key == XEnumsMediaType.image) {
return builder_ImmaginiArea(_liMediaRAW.where((element) => element.mediaType == XEnumsMediaType.image).toList(), parentID: item.id);
} else {
return builder_VideoArea(_liMediaRAW.where((element) => element.mediaType == XEnumsMediaType.video).toList(), item);
}
}).toList(),
)
]),
)
: Container()
: Container(),
//// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI //// AREA DETTAGLI
]))
],
));
},
);
}