From 7a088074e33c8b050ab5949c7c69e417678cbc28 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Wed, 30 Apr 2025 09:44:04 +0300 Subject: [PATCH] Prepared the layout of all charts. --- .../analytics_energy_management_view.dart | 39 ++++++++++++++++++- .../energy_consumption_by_phases_chart.dart | 10 +++++ .../energy_consumption_per_device_chart.dart | 32 +++++++++++++++ .../power_clamp_energy_data_widget.dart | 10 +++++ .../total_energy_consumption_chart.dart | 32 +++++++++++++++ 5 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart create mode 100644 lib/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart.dart create mode 100644 lib/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart create mode 100644 lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart diff --git a/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart b/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart index 11d2b19c..09f6eaac 100644 --- a/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart +++ b/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart @@ -1,12 +1,47 @@ import 'package:flutter/material.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart'; +import 'package:syncrow_web/utils/style.dart'; class AnalyticsEnergyManagementView extends StatelessWidget { const AnalyticsEnergyManagementView({super.key}); @override Widget build(BuildContext context) { - return const Center( - child: Text('EnergyManagementView is Working!'), + return Padding( + padding: const EdgeInsets.all(32), + child: Row( + spacing: 20, + children: [ + const Expanded( + flex: 2, + child: Column( + spacing: 20, + children: [ + Expanded(child: TotalEnergyConsumptionChart()), + Expanded(child: EnergyConsumptionPerDeviceChart()), + ], + ), + ), + Expanded( + child: Container( + decoration: subSectionContainerDecoration.copyWith( + borderRadius: BorderRadius.circular(30), + ), + padding: const EdgeInsets.all(30), + child: const Column( + spacing: 10, + children: [ + Expanded(flex: 2, child: PowerClampEnergyDataWidget()), + Expanded(child: EnergyConsumptionByPhasesChart()), + ], + ), + ), + ), + ], + ), ); } } diff --git a/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart new file mode 100644 index 00000000..ca148319 --- /dev/null +++ b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class EnergyConsumptionByPhasesChart extends StatelessWidget { + const EnergyConsumptionByPhasesChart({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart.dart b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart.dart new file mode 100644 index 00000000..9df4e45d --- /dev/null +++ b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:syncrow_web/utils/style.dart'; + +class EnergyConsumptionPerDeviceChart extends StatelessWidget { + const EnergyConsumptionPerDeviceChart({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + decoration: subSectionContainerDecoration.copyWith( + borderRadius: BorderRadius.circular(30), + ), + padding: const EdgeInsets.all(30), + child: const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Energy Consumption per Device', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w700, + ), + ), + SizedBox(height: 20), + Expanded( + child: Placeholder(), + ), + ], + ), + ); + } +} diff --git a/lib/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart b/lib/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart new file mode 100644 index 00000000..ae235cb2 --- /dev/null +++ b/lib/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class PowerClampEnergyDataWidget extends StatelessWidget { + const PowerClampEnergyDataWidget({super.key}); + + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} \ No newline at end of file diff --git a/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart b/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart new file mode 100644 index 00000000..1ce28d45 --- /dev/null +++ b/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:syncrow_web/utils/style.dart'; + +class TotalEnergyConsumptionChart extends StatelessWidget { + const TotalEnergyConsumptionChart({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + decoration: subSectionContainerDecoration.copyWith( + borderRadius: BorderRadius.circular(30), + ), + padding: const EdgeInsets.all(30), + child: const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Total Energy Consumption', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w700, + ), + ), + SizedBox(height: 20), + Expanded( + child: Placeholder(), + ), + ], + ), + ); + } +}