database_device 0.0.4 database_device: ^0.0.4 copied to clipboard
Equipped and easy database.
import 'package:flutter/material.dart';
import 'package:database_device/database_device.dart';
void main() {
runApp(const MyApp());
}
//===================================
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Database Device',
debugShowCheckedModeBanner: false,
home: DatabaseDeviceWidget(),
);
}
}
class DatabaseDeviceWidget extends StatefulWidget {
const DatabaseDeviceWidget({Key? key}) : super(key: key);
@override
State<DatabaseDeviceWidget> createState() => _DatabaseDeviceWidgetState();
}
class _DatabaseDeviceWidgetState extends State<DatabaseDeviceWidget> {
getLingthChar() async {
int a = await DatabaseDevice.lengthChar;
characterCount = a;
}
List list = [];
int characterCount = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Database Device"),
actions: [
IconButton(
onPressed: () => DatabaseDevice.removeAllData(),
icon: const Icon(Icons.delete),
),
],
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
onPressed: () => DatabaseDevice.add(
Description(
age: 22,
name: 'Raed',
).toMap(),
),
),
body: DatabaseDevice.childFutureBuilder(
getData: (data) {
setState(() {
list = data;
getLingthChar();
});
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(12),
child: Text("Character count = $characterCount")),
Expanded(
flex: 1,
child: ReorderableListView.builder(
onReorder: (oldIndex, newIndex) =>
DatabaseDevice.moveIteam(oldIndex, newIndex),
itemCount: list.length,
itemBuilder: ((context, index) => Card(
key: ValueKey(index),
elevation: 7,
color: Colors.amber.shade400,
child: Column(
children: [
Container(
alignment: Alignment.center,
height: 100,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Text(list[index]['key'].toString()),
Text(list[index]['name']),
Text(list[index]['age'].toString()),
],
),
),
Container(
height: 50,
color: Colors.amber.shade100,
child: Row(
children: [
IconButton(
onPressed: () =>
DatabaseDevice.removeRow(index),
icon: const Icon(Icons.delete),
),
IconButton(
onPressed: () =>
DatabaseDevice.copyAddPast(index),
icon: const Icon(Icons.copy),
),
TextButton(
onPressed: () => DatabaseDevice.editeFild(
index,
{
"name": 'Ali',
},
),
child: const Text('edite name'),
),
IconButton(
onPressed: () => DatabaseDevice.editeRow(
index,
Description(
age: 33,
name: 'Anas',
).toMap(),
),
icon: const Icon(Icons.edit),
),
],
),
)
],
),
)),
),
),
],
),
),
);
}
}
class User {
int idCard;
Description description;
User({
required this.idCard,
required this.description,
});
Map<String, dynamic> toMap() {
return {
'idCard': idCard,
'description': description.toMap(),
};
}
factory User.fromMap(Map<String, dynamic> map) {
return User(
idCard: map['idCard']?.toInt() ?? 0,
description: Description.fromMap(map['description']),
);
}
}
class Description {
String name;
int age;
Description({
required this.name,
required this.age,
});
Map<String, dynamic> toMap() {
return {
'name': name,
'age': age,
};
}
factory Description.fromMap(Map<String, dynamic> map) {
return Description(
name: map['name'] ?? '',
age: map['age']?.toInt() ?? 0,
);
}
}