Page MenuHomec4science

Debriefing.dart
No OneTemporary

File Metadata

Created
Fri, May 17, 20:55

Debriefing.dart

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:Teacher_Dashboard/widgets/custom_app_bar.dart';
import 'dart:convert';
import 'package:Teacher_Dashboard/config/palette.dart';
import 'package:Teacher_Dashboard/config/styles.dart';
import 'dart:async';
import './screens.dart';
import 'package:Teacher_Dashboard/model/Class.dart';
import 'package:Teacher_Dashboard/model/Group.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:Teacher_Dashboard/model/activities/activity.Dart';
import 'package:step_progress_indicator/step_progress_indicator.dart';
import 'package:Teacher_Dashboard/widgets/hexagonPainter.Dart';
import 'package:Teacher_Dashboard/widgets/celluloMap.Dart';
import 'package:provider/provider.dart';
//import 'package:Teacher_Dashboard/model/core/models/productModel.dart';
//import 'package:Teacher_Dashboard/model/core/viewmodels/CRUDModel.dart';
//import 'package:provider/provider.dart';
class Debriefing extends StatefulWidget {
@override
DebriefingState createState() => DebriefingState();
}
class DebriefingState extends State<Debriefing> {
bool mistakesSwitch = false;
bool rankingSwitch = false;
bool robotPatternSwitch = true;
int numofgroups = thisClass.groups.length;
int currentstepActivation = 0;
String pauseButtonText = 'Pause All';
final FirebaseDatabase _database = FirebaseDatabase.instance;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
// final productProvider = Provider.of<CRUDModel>(context);
return Scaffold(
backgroundColor: Colors.white,
appBar: CustomAppBar(),
body: Column(children: <Widget>[
SizedBox(
height: 800,
child: Consumer<Classroom>(
builder: (context, model, child) => Container(
child: ListView.builder(
itemCount: thisClass.groups.length,
itemBuilder: (context, int position) {
return Card(
child: ListTile(
onLongPress: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
GroupDashboard(currentgroupID: position)));
},
title: Row(children: <Widget>[
SizedBox(width: 17),
Stack(children: <Widget>[
CircularStepProgressIndicator(
totalSteps: 3,
// currentStep:
// thisClass.groups[position].activities[0].progress,
width: 100,
customColor: (index) => thisClass
.groups[position]
.activities[acList.indexOf(thisClass
.groups[position].currentActivity)]
.progress[index] >
-2
? (thisClass
.groups[position]
.activities[acList.indexOf(thisClass
.groups[position]
.currentActivity)]
.progress[index] >
-1
? (thisClass
.groups[position]
.activities[acList.indexOf(thisClass.groups[position].currentActivity)]
.progress[index] >
0
? Colors.green
: Colors.blue)
: Colors.red)
: Colors.grey,
),
Positioned(
bottom: 45,
right: 28,
child: Center(
child: Text(
thisClass.groups[position].id,
style: TextStyle(
fontWeight: FontWeight.bold, fontSize: 13),
)),
),
]),
SizedBox(width: 25),
minituare(position, 1, mistakesSwitch, rankingSwitch,
robotPatternSwitch),
SizedBox(
width: 25,
),
minituare(position, 2, mistakesSwitch, rankingSwitch,
robotPatternSwitch),
SizedBox(
width: 25,
),
minituare(position, 3, mistakesSwitch, rankingSwitch,
robotPatternSwitch),
]),
trailing: Icon(Icons.more_vert),
));
},
)),
)),
/*
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
'Show Students Mistakes',
style: TextStyle(
fontSize: 15.0,
// color: Colors.white,
fontWeight: FontWeight.bold),
),
SizedBox(width: 5),
Checkbox(
//title: const Text('Animate Slowly'),
value: mistakesSwitch,
onChanged: (bool value) {
setState(() {
mistakesSwitch = value;
});
},
// secondary: const Icon(Icons.hourglass_empty),
),
SizedBox(width: 300),
/*
Text(
'Show Students robot pattern',
style: TextStyle(
fontSize: 15.0,
// color: Colors.white,
fontWeight: FontWeight.bold),
),
SizedBox(width: 5),
Checkbox(
value: robotPatternSwitch,
onChanged: (bool value) {
setState(() {
robotPatternSwitch = value;
});
},
// secondary: const Icon(Icons.hourglass_empty),
),
*/
]),
*/
]));
}
}
Widget minituare(int position, int turn, bool mistakesSwitch,
bool rankingSwitch, bool robotpatternSwitch) {
var colors = [Colors.grey, Colors.red, Colors.blue, Colors.green];
List<int> gColor;
List<String> gridAcsPath = [
"assets/images/GridOnlyPositive.svg",
"assets/images/Grid.svg",
"assets/images/Grid_Ac5_Screen.svg",
"assets/images/Grid_Ac6_Screen.svg",
"assets/images/Grid_Ac5_Screen.svg",
"assets/images/Grid_Ac6_Screen.svg",
"assets/images/Grid_Ac7_Screen.svg",
"assets/images/Grid_Ac8_Screen.svg",
];
return Container(
width: 130,
height: 180,
decoration: BoxDecoration(
border: Border.all(
width: 0.5,
color: colors[
thisClass.groups[position].activities[0].progress[turn - 1] +
2])),
child: Stack(children: <Widget>[
Positioned(
bottom: 65,
right: 30,
width: 90,
height: 90,
child: celluloMap(
gridAcsPath[
acList.indexOf(thisClass.groups[position].currentActivity)],
turn,
acList.indexOf(thisClass.groups[position].currentActivity),
robotpatternSwitch,
thisClass
.groups[position]
.activities[acList
.indexOf(thisClass.groups[position].currentActivity)]
.turns[turn - 1]
.cellulox
.x,
thisClass
.groups[position]
.activities[acList
.indexOf(thisClass.groups[position].currentActivity)]
.turns[turn - 1]
.celluloy
.y,
90,
90,
gColor)),
Positioned(
bottom: 155,
right: 27,
child: Text(
((turn > 1) ? ((turn > 2) ? 'Third ' : 'Second ') : 'First ') +
"Turn ",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14),
)),
Positioned(bottom: 4, right: 50, child: Text(rankingSwitch ? "" : "")),
Positioned(
bottom: 25,
right: 6,
child: Text(
mistakesSwitch
? (thisClass.groups[position].activities[0].progress[turn - 1] > -2
? (thisClass.groups[position].activities[0].mistakes['slope'][turn - 1] == 0 &&
thisClass.groups[position].activities[0].mistakes['initialPoint'][turn - 1] ==
0
? 'No Mistakes'
: (thisClass.groups[position].activities[0].mistakes['slope'][turn - 1] > 0 &&
thisClass.groups[position].activities[0]
.mistakes['initialPoint'][turn - 1] >
0
? 'Mistakes in finding\n Slope and\n Initial Points'
: (thisClass.groups[position].activities[0].mistakes['slope'][turn - 1] > 0 &&
thisClass.groups[position].activities[0]
.mistakes['initialPoint'][turn - 1] ==
0
? 'Mistakes in finding\n slope'
: 'Mistakes in finding\n initial points')))
: '')
: '',
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14),
),
)
]));
}

Event Timeline