192 lines
4.5 KiB
Dart
192 lines
4.5 KiB
Dart
|
<<<<<<< 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
|