GardenPlanner/garden_planner/lib/main.dart

192 lines
4.5 KiB
Dart
Raw Normal View History

2023-06-25 10:13:39 +02:00
<<<<<<< refs/remotes/origin/main
import 'package:flutter/material.dart';
import 'package:garden_planner/constance.dart';
import 'api/garden_api.service.dart';
import 'api/http_connection.dart';
import 'logic/beet.service.dart';
import 'logic/beet_row.service.dart';
import 'logic/plant.service.dart';
import 'repositories/beet.repositories.dart';
import 'widgets/content.dart';
import 'widgets/header.dart';
import 'widgets/sidebar.dart';
void main() {
BeetRepository beetRepository = BeetRepository(
BeetRowService(),
PlantService(),
GardenApiService(HttpConnector()),
BeetService(),
);
runApp(GardenPlanner(beetRepository: beetRepository));
}
class GardenPlanner extends StatefulWidget {
final BeetRepository beetRepository;
const GardenPlanner({super.key, required this.beetRepository});
@override
GardenPlannerState createState() => GardenPlannerState();
}
class GardenPlannerState extends State<GardenPlanner> {
bool _isSidebarOpen = Constance.sidebarAtStart;
@override
void initState() {
super.initState();
loadBeet();
}
Future<void> loadBeet() async {
await widget.beetRepository.loadBeet();
setState(() {});
}
Future<void> saveBeet() async {
await widget.beetRepository.saveBeet();
setState(() {});
}
void toogleSidebar() {
setState(() {
_isSidebarOpen = !_isSidebarOpen;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Garden Planner',
theme: ThemeData(
primarySwatch: Colors.green,
),
home: Scaffold(
appBar: Header(
onSidebarToggle: toogleSidebar,
onSave: saveBeet,
),
body: Row(
children: <Widget>[
if (_isSidebarOpen)
Container(
width: 250,
margin: const EdgeInsets.only(top: 10, bottom: 10),
decoration: _getDecorator(),
padding: const EdgeInsets.only(right: 5, left: 5),
child: Sidebar(beetRepository: widget.beetRepository),
),
Expanded(
child: Content(beetRepository: widget.beetRepository),
),
],
),
),
);
}
BoxDecoration _getDecorator() {
return const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Colors.green,
Colors.green,
],
),
borderRadius: BorderRadius.only(
topRight: Radius.circular(40),
bottomRight: Radius.circular(0),
),
);
}
}
=======
import 'package:daydart/daydart.dart';
import 'package:flutter/material.dart';
import 'contentcontrol.dart';
import 'footer.dart';
import 'header.dart';
import 'content.dart';
import 'sidebar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Drag and Drop Beispiel',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DragAndDropScreen(),
);
}
}
class DragAndDropScreen extends StatefulWidget {
@override
_DragAndDropScreenState createState() => _DragAndDropScreenState();
}
class _DragAndDropScreenState extends State<DragAndDropScreen> {
bool showSpaceRequirements = false;
bool isSidebarOpen= true;
DateTime selectedDate=DateTime.now();
void toggleSidebar() {
setState(() {
isSidebarOpen = !isSidebarOpen;
});
}
void newDaySelected(DateTime date) {
setState(() {
this.selectedDate=date;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: Header(title: 'Drag and Drop Beispiel',
onSidebarToggle: toggleSidebar,),
body: Row(
children: <Widget>[
if (isSidebarOpen) Sidebar(),
Expanded(
child: Column(
children: [
ContentControl(
showSpaceRequirements: showSpaceRequirements,
onValueChanged: (value) {
setState(() {
showSpaceRequirements = value;
});
},
),
Content(
showSpaceRequirement: showSpaceRequirements,
),
Expanded(
child: Footer(onNewDaySelected:newDaySelected,date: selectedDate),
)
],
),
),
],
),
);
}
}
>>>>>>> working