templateView static method
Implementation
static String templateView(String name) {
String filterName = _upperFirst(name);
String camelName = _camelCase(name);
return '''
part of 'index.dart';
class ${filterName}Page extends StatelessWidget {
${filterName}Page({super.key});
final ${filterName}Controller ${camelName}Controller = Get.find<${filterName}Controller>();
@override
Widget build(BuildContext context) {
return CustomScaffold(
appBar: const CustomAppBar(title: CustomAppBarTranslate()),
bottomNavigationBar: GetBuilder<${filterName}Controller>(
id: 'bottomFloatBarScreen',
builder: (controller) => CustomBottomFloatBar.select(
context: context,
isVisible: controller.isSelectedLength != 0,
isAllSelected: controller.list.length == controller.isSelectedLength,
onSelectAll: (v) => controller.updateAllSelected(v),
children: [
CustomTextButton(
onPressed: controller.confirm,
child: Text('confirm'.tr)
),
],
),
),
body: CustomScrollView(
slivers: [
const SliverToBoxAdapter(child: CustomSpaceHeightSmall()),
SliverToBoxAdapter(child: _buildQueryScreen(context)),
const SliverToBoxAdapter(child: CustomSpaceHeight()),
SliverToBoxAdapter(child: CustomListTitle(titleText: 'list'.tr)),
const SliverToBoxAdapter(child: CustomSpaceHeight()),
_buildListScreen(),
const SliverSafeArea(
sliver: SliverToBoxAdapter(child: CustomSpaceHeightSmall())
),
],
),
);
}
Widget _buildListScreen() {
return GetBuilder<${filterName}Controller>(
id: 'listScreen',
builder: (controller) {
return controller.list.isNotEmpty
? SliverList.builder(
itemBuilder: (c, index) {
final item = controller.list[index];
return CustomSelectCard(
index: index,
itemCount: controller.list.length,
checkboxValue: item.isSelected ?? false,
onCheckboxChanged: (v) => controller.updateRowSelected(item),
child: CustomListTileFixedWidth(
titleText: item.lotId ?? '',
trailingText: item.eqpId ?? ''
),
);
},
itemCount: controller.list.length,
)
: const SliverToBoxAdapter(child: CustomEmpty());
},
);
}
Widget _buildQueryScreen(BuildContext context) {
return GetBuilder<${filterName}Controller>(
id: 'queryScreen',
builder: (controller) {
return CustomListTileSection(
children: [
CustomListTileInput(
titleText: 'eqpId'.tr,
controller: controller.inputControllerEqpId,
autofocus: true,
textInputAction: TextInputAction.next,
isRequired: true,
useCameraScanner: true,
),
CustomListTileInput(
titleText: 'lotId'.tr,
controller: controller.inputControllerLotId,
isRequired: true,
useCameraScanner: true,
),
CustomDateRangePicker(
titleText: 'timeRange'.tr,
initialDateTime: controller.dateRange,
onConfirm: (v) {
controller.updateDateRange(v);
},
),
CustomListTileContainer(
child: CustomFilledButton(
onPressed: controller.getList,
child: Text('query'.tr)
),
)
],
);
},
);
}
}
''';
}