Browse Source

show radio button

smf
daivp 4 years ago
parent
commit
7dac9a59d4
5 changed files with 116 additions and 9 deletions
  1. +6
    -6
      ios/Runner.xcodeproj/project.pbxproj
  2. +82
    -0
      lib/presentation/custom_widgets/widget_radio_button.dart
  3. +20
    -3
      lib/presentation/screens/actions/sc_action.dart
  4. +7
    -0
      pubspec.lock
  5. +1
    -0
      pubspec.yaml

+ 6
- 6
ios/Runner.xcodeproj/project.pbxproj View File

@@ -361,7 +361,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = C3DTD2JH94;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -377,7 +377,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 1.0.3;
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = vn.azteam.farmdemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -500,7 +500,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = C3DTD2JH94;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -516,7 +516,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 1.0.3;
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = vn.azteam.farmdemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -533,7 +533,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = C3DTD2JH94;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -549,7 +549,7 @@
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 1.0.3;
MARKETING_VERSION = 1.0.4;
PRODUCT_BUNDLE_IDENTIFIER = vn.azteam.farmdemo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";

+ 82
- 0
lib/presentation/custom_widgets/widget_radio_button.dart View File

@@ -0,0 +1,82 @@
import 'package:farm_tpf/custom_model/action_form/CommonData.dart';
import 'package:farm_tpf/data/repository/repository.dart';
import 'package:farm_tpf/presentation/screens/actions/state_management_helper/change_dropdown_controller.dart';
import 'package:farm_tpf/presentation/screens/resources/bloc/bloc/common_data_bloc.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get/get.dart';
import 'package:group_radio_button/group_radio_button.dart';

class RadioButtonWidget extends StatefulWidget {
final String condition;
final String supply;
final String tag;
final Function(CommonData) onPressed;
RadioButtonWidget(
{@required this.condition,
@required this.supply,
@required this.onPressed,
@required this.tag});

@override
_RadioButtonWidgetState createState() => _RadioButtonWidgetState();
}

class _RadioButtonWidgetState extends State<RadioButtonWidget> {
var selectedItem = CommonData();
CommonDataBloc _commonDataBloc;
ChangeDropdownController controller;

@override
void initState() {
super.initState();
controller = Get.put(ChangeDropdownController(), tag: widget.tag);
}

@override
Widget build(BuildContext context) {
return GetBuilder<ChangeDropdownController>(
tag: widget.tag,
builder: (data) {
return BlocProvider(
create: (context) => CommonDataBloc(repository: Repository())
..add(DataFetched(
tbSupply: widget.supply, condition: widget.condition)),
child: BlocBuilder<CommonDataBloc, CommonDataState>(
cubit: _commonDataBloc,
builder: (contextb, state) {
if (state is CommonDataFailure) {
return Center(child: Text(''));
}
if (state is CommonDataSuccess) {
if (state.items.isEmpty) {
return Center(child: Text(''));
}
List<CommonData> listItem = state.items;

if (data?.currentData?.id != null) {
listItem.forEach((element) {
if (element.id == data.currentData.id) {
selectedItem = element;
}
});
}
return RadioGroup<CommonData>.builder(
groupValue: selectedItem,
onChanged: (value) {
setState(() {
selectedItem = value;
widget.onPressed(value);
});
},
items: state.items,
itemBuilder: (item) => RadioButtonBuilder(item.name),
);
}
return Center(child: CircularProgressIndicator());
},
),
);
});
}
}

+ 20
- 3
lib/presentation/screens/actions/sc_action.dart View File

@@ -16,6 +16,7 @@ import 'package:farm_tpf/presentation/custom_widgets/widget_action_field_date.da
import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_radio_button.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_text_field_area.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart';
import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart';
@@ -369,8 +370,7 @@ class _ActionScreenState extends State<ActionScreen> {
),
],
);
} else if (field.tbControlTypeName == 'dropdown' ||
field.tbControlTypeName == 'radiobutton') {
} else if (field.tbControlTypeName == 'dropdown') {
return Column(
children: [
groupName(field.groupName),
@@ -389,6 +389,21 @@ class _ActionScreenState extends State<ActionScreen> {
}),
],
);
} else if (field.tbControlTypeName == 'radiobutton') {
return Column(
children: [
groupName(field.groupName),
RadioButtonWidget(
tag: field.name,
condition: field.tbActivityExtendTypeCondition,
supply: field.tbActivityExtendTypeExternalTable ?? '',
onPressed: (commonData) {
valueObjects[field.id.toString()] =
commonData.id.toString();
},
),
],
);
} else if (field.tbControlTypeName == 'date') {
return Column(
children: [
@@ -529,7 +544,9 @@ class _ActionScreenState extends State<ActionScreen> {
} else {
SchedulerBinding.instance.addPostFrameCallback((_) {
if (element.tbObjectParameterDTO?.tbControlTypeName == 'dropdown' ||
element.tbObjectParameterDTO?.tbControlTypeName == 'radio') {
element.tbObjectParameterDTO?.tbControlTypeName
?.toLowerCase() ==
'radiobutton') {
var dropdownValueName = '';
if (element.tbObjectParameterDTO
?.tbActivityExtendTypeDropDownDTOList?.isNotEmpty ||

+ 7
- 0
pubspec.lock View File

@@ -408,6 +408,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
group_radio_button:
dependency: "direct main"
description:
name: group_radio_button
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
http:
dependency: "direct main"
description:

+ 1
- 0
pubspec.yaml View File

@@ -42,6 +42,7 @@ dependencies:
badges: ^1.1.1
cached_network_image: ^2.3.2+1
auto_size_text: ^2.1.0
group_radio_button: ^1.0.1

camera: ^0.5.8+5
path_provider: ^1.6.14

Loading…
Cancel
Save