You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			184 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			184 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Dart
		
	
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_pressur/BloodPressureResult.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/model/my_trakers/blood_sugar/DiabtecPatientResult.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/WeekChartDate.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/model/my_trakers/chartData/YearMonthlyChartDate.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/model/my_trakers/weight/WeightMeasurementResult.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart';
 | 
						|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
 | 
						|
import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/MonthLineChartCurved.dart';
 | 
						|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
 | 
						|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
 | 
						|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
 | 
						|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
 | 
						|
import 'package:flutter/cupertino.dart';
 | 
						|
import 'package:flutter/material.dart';
 | 
						|
import 'package:charts_flutter/flutter.dart' as charts;
 | 
						|
import 'package:hexcolor/hexcolor.dart';
 | 
						|
import 'package:provider/provider.dart';
 | 
						|
 | 
						|
class WeightMonthlyPage extends StatelessWidget {
 | 
						|
  final WeightPressureViewModel model;
 | 
						|
 | 
						|
  const WeightMonthlyPage({
 | 
						|
    Key key,
 | 
						|
    this.model,
 | 
						|
  }) : super(key: key);
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context) {
 | 
						|
    ProjectViewModel projectViewModel = Provider.of(context);
 | 
						|
    return AppScaffold(
 | 
						|
      body: model.weighMonthTimeSeriesData.isEmpty?Container(child: Center(child: Texts(TranslationBase.of(context).noDataAvailable),),):ListView(
 | 
						|
        children: [
 | 
						|
          Container(
 | 
						|
              width: double.maxFinite,
 | 
						|
              color: Colors.white,
 | 
						|
              child: MonthLineChartCurved(
 | 
						|
                horizontalInterval: 1.0,
 | 
						|
                title: TranslationBase.of(context).weight,
 | 
						|
                timeSeries: model.weighMonthTimeSeriesData,
 | 
						|
                indexes: model.weighMonthTimeSeriesData.length ~/ 5.5,
 | 
						|
              )),
 | 
						|
          SizedBox(
 | 
						|
            height: 12,
 | 
						|
          ),
 | 
						|
          Padding(
 | 
						|
            padding: const EdgeInsets.all(8.0),
 | 
						|
            child: Texts(TranslationBase.of(context).details),
 | 
						|
          ),
 | 
						|
          Container(
 | 
						|
            padding: EdgeInsets.all(10),
 | 
						|
            color: Colors.transparent,
 | 
						|
            child: Column(
 | 
						|
              crossAxisAlignment: CrossAxisAlignment.start,
 | 
						|
              children: <Widget>[
 | 
						|
                Table(
 | 
						|
                  border: TableBorder.symmetric(
 | 
						|
                    inside: BorderSide(width: 2.0, color: Colors.grey[300]),
 | 
						|
                  ),
 | 
						|
                  children: fullData(context, projectViewModel, model),
 | 
						|
                ),
 | 
						|
              ],
 | 
						|
            ),
 | 
						|
          )
 | 
						|
        ],
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
 | 
						|
  List<TableRow> fullData(BuildContext context,
 | 
						|
      ProjectViewModel projectViewModel, WeightPressureViewModel model) {
 | 
						|
    List<TableRow> tableRow = [];
 | 
						|
    tableRow.add(
 | 
						|
      TableRow(
 | 
						|
        children: [
 | 
						|
          Container(
 | 
						|
            decoration: BoxDecoration(
 | 
						|
              color: Theme.of(context).primaryColor,
 | 
						|
              borderRadius: BorderRadius.only(
 | 
						|
                topLeft: projectViewModel.isArabic
 | 
						|
                    ? Radius.circular(0.0)
 | 
						|
                    : Radius.circular(10.0),
 | 
						|
                topRight: projectViewModel.isArabic
 | 
						|
                    ? Radius.circular(10.0)
 | 
						|
                    : Radius.circular(0.0),
 | 
						|
              ),
 | 
						|
            ),
 | 
						|
            child: Center(
 | 
						|
              child: Texts(
 | 
						|
                TranslationBase.of(context).date,
 | 
						|
                color: Colors.white,
 | 
						|
                fontSize: 15,
 | 
						|
              ),
 | 
						|
            ),
 | 
						|
            height: 40,
 | 
						|
          ),
 | 
						|
          Container(
 | 
						|
              decoration: BoxDecoration(
 | 
						|
                color: Theme.of(context).primaryColor,
 | 
						|
              ),
 | 
						|
              child: Center(
 | 
						|
                child: Texts(
 | 
						|
                  TranslationBase.of(context).time,
 | 
						|
                  color: Colors.white,
 | 
						|
                  fontSize: 15,
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
              height: 40),
 | 
						|
          Container(
 | 
						|
              decoration: BoxDecoration(
 | 
						|
                color: Theme.of(context).primaryColor,
 | 
						|
                borderRadius: BorderRadius.only(
 | 
						|
                  topLeft: projectViewModel.isArabic
 | 
						|
                      ? Radius.circular(10.0)
 | 
						|
                      : Radius.circular(0.0),
 | 
						|
                  topRight: projectViewModel.isArabic
 | 
						|
                      ? Radius.circular(0.0)
 | 
						|
                      : Radius.circular(10.0),
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
              child: Center(
 | 
						|
                child: Texts(
 | 
						|
                  TranslationBase.of(context).value,
 | 
						|
                  color: Colors.white,
 | 
						|
                  fontSize: 15,
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
              height: 40),
 | 
						|
        ],
 | 
						|
      ),
 | 
						|
    );
 | 
						|
    model.monthWeightMeasurementResult.forEach(
 | 
						|
      (diabtec) {
 | 
						|
        tableRow.add(
 | 
						|
          TableRow(
 | 
						|
            children: [
 | 
						|
              Container(
 | 
						|
                child: Container(
 | 
						|
                  height: 70,
 | 
						|
                  padding: EdgeInsets.all(10),
 | 
						|
                  color: Colors.white,
 | 
						|
                  child: Center(
 | 
						|
                    child: Texts(
 | 
						|
                      '${projectViewModel.isArabic ? DateUtil.getMonthDayYearDateFormattedAr(diabtec.weightDate) : DateUtil.getMonthDayYearDateFormatted(diabtec.weightDate)} ',
 | 
						|
                      textAlign: TextAlign.center,
 | 
						|
                      fontSize: 12,
 | 
						|
                    ),
 | 
						|
                  ),
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
              Container(
 | 
						|
                height: 70,
 | 
						|
                padding: EdgeInsets.all(10),
 | 
						|
                color: Colors.white,
 | 
						|
                child: Center(
 | 
						|
                  child: Texts(
 | 
						|
                    '${diabtec.weightDate.hour}:${diabtec.weightDate.minute}',
 | 
						|
                    textAlign: TextAlign.center,
 | 
						|
                    fontSize: 12,
 | 
						|
                  ),
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
              Container(
 | 
						|
                child: Container(
 | 
						|
                  height: 70,
 | 
						|
                  padding: EdgeInsets.all(10),
 | 
						|
                  color: Colors.white,
 | 
						|
                  child: Center(
 | 
						|
                    child: Texts(
 | 
						|
                      '${diabtec.weightMeasured}',
 | 
						|
                      textAlign: TextAlign.center,
 | 
						|
                      fontSize: 12,
 | 
						|
                    ),
 | 
						|
                  ),
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
            ],
 | 
						|
          ),
 | 
						|
        );
 | 
						|
      },
 | 
						|
    );
 | 
						|
    return tableRow;
 | 
						|
  }
 | 
						|
}
 |