obj_edit_gen

Last updated:

0 purchases

obj_edit_gen Image
obj_edit_gen Images
Add to Cart

Description:

obj edit gen

obj_edit_gen #
Automatically generate code for converting to widget by annotating Dart classes
Setup #
To configure your project for the latest released version of,
obj_edit_gen see the example.
Example #
Given a library test.dart with an Test class annotated with
@ObjEdit():
import 'package:obj_edit_annotation/obj_edit_annotation.dart';

import 'obj_option.dart';
//flutter pub run build_runner build --delete-conflicting-outputs

@ObjEdit(head: "import 'obj_option.dart';")
class Test {
@ObjEditTextSetting(
sectionName: "section1",
title: "Name",
hint: "name1",
icon: "Icons.person")
String name;
@ObjEditOptionSetting(
sectionName: "section1",
title: "Option",
options: '<String>["option1","option2","option3"]')
String option;

@ObjEditOptionSetting(
sectionName: "section1",
title: "ObjOption",
options:
'<ObjOption>[new ObjOption("objOption1"),new ObjOption("objOption2"),new ObjOption("objOption3")]')
ObjOption objOption;

@ObjEditTextSetting(sectionName: "section2", title: "Name", hint: "name2")
String name2;
@ObjEditOptionSetting(
sectionName: "section2",
title: "Option",
options: '<String>["option1","option2","option3"]')
String option2;

Test(this.name, this.option, this.objOption, this.name2, this.option2);
}
copied to clipboard
Building creates the corresponding part test.e.dart:
// GENERATED CODE - DO NOT MODIFY BY HAND

// **************************************************************************
// ObjEditGenerator
// **************************************************************************

import 'obj_option.dart';
import 'test.dart';
import 'package:flutter/material.dart';
import 'package:obj_edit_widgets/obj_edit_widgets.dart';

class TestWidget extends StatelessWidget {
final Test? obj;
TestWidget({Key? key, this.obj}) : super(key: key);

@override
Widget build(BuildContext context) {
if (obj == null) {
return new Center(child: new Text('No Content'));
}
return ObjEditor(sections: [
ObjSection(title: 'section1', tiles: [
TextTile(
title: "Name",
hintText: "name1",
icon: Icons.person,
initText: obj!.name,
onChanged: (String text) {
obj!.name = text;
},
),
DropDownTile<String>(
title: "Option",
selected: obj!.option,
options: <String>["option1", "option2", "option3"],
itemBuilder: (selectValue) {
return Text(selectValue.toString(), textAlign: TextAlign.end);
},
onChanged: (value) {
obj!.option = value;
},
),
DropDownTile<ObjOption>(
title: "ObjOption",
selected: obj!.objOption,
options: <ObjOption>[
new ObjOption("objOption1"),
new ObjOption("objOption2"),
new ObjOption("objOption3")
],
itemBuilder: (selectValue) {
return Text(selectValue.toString(), textAlign: TextAlign.end);
},
onChanged: (value) {
obj!.objOption = value;
},
),
]),
ObjSection(title: 'section2', tiles: [
TextTile(
title: "Name",
hintText: "name2",
initText: obj!.name2,
onChanged: (String text) {
obj!.name2 = text;
},
),
DropDownTile<String>(
title: "Option",
selected: obj!.option2,
options: <String>["option1", "option2", "option3"],
itemBuilder: (selectValue) {
return Text(selectValue.toString(), textAlign: TextAlign.end);
},
onChanged: (value) {
obj!.option2 = value;
},
),
]),
]);
}
}

copied to clipboard
Running the code generator #
Once you have added the annotations to your code you then need to run the
code generator to generate the missing .e.dart generated dart files.
run flutter pub run build_runner build in your package
directory.
Annotation values #

✅ class annotation: @ObjEdit.
✅ text|int|double field annotation: @ObjEditTextSetting
✅ option field annotation: @ObjEditOptionSetting
✅ bool field annotation: @ObjEditBoolSetting
❌ date field

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.