Page MenuHomec4science

Monitoring.Dart
No OneTemporary

File Metadata

Created
Tue, Jun 4, 18:48

Monitoring.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 Monitoring extends StatefulWidget {
@override
MonitoringState createState() => MonitoringState();
}
class MonitoringState extends State<Monitoring> {
bool mistakesSwitch = false;
bool rankingSwitch = false;
bool robotPatternSwitch = false;
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: 760,
child: Consumer<Classroom>(
builder: (context, model, child) => Container(
child: ListView.builder(
itemCount: thisClass.groups.length,
itemBuilder: (context, int position) {
return Card(
child: ListTile(
onLongPress: () {
print(thisClass
.groups[position]
.activities[acList.indexOf(
thisClass.groups[position].currentActivity)]
.progress
.toString());
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
GroupDashboard(currentgroupID: position)));
},
title: Column(children: <Widget>[
Row(children: <Widget>[
Container(
width: 100,
height: 100,
child: Stack(children: <Widget>[
CustomPaint(
painter: HexagonPainter(
Offset(50, 50),
50,
thisClass.groups[position].tabletStatus ==
'YES'
? Colors.green
: Colors.red),
),
CustomPaint(
painter: HexagonPainter(
Offset(50, 50), 40, Colors.white),
),
Center(
child: Text(
thisClass.groups[position].id,
style: TextStyle(
fontWeight: FontWeight.bold, fontSize: 13),
)),
]),
),
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: 18,
child: Text(
thisClass.groups[position].currentActivity,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15),
)),
]),
SizedBox(width: 25),
SizedBox(
width: 25,
),
SizedBox(
width: 25,
),
]),
SizedBox(height: 20),
]),
trailing: Icon(Icons.more_vert),
));
},
)),
)),
Row(
// mainAxisSize: MainAxisSize.min,
children: <Widget>[
Expanded(
child: MaterialButton(
color: Colors.red,
elevation: 0,
onPressed: () {
setState(() {
if (pauseButtonText == 'Pause All')
pauseButtonText = 'Resume All';
else
pauseButtonText = 'Pause All';
});
for (int groupID = 0;
groupID < thisClass.groups.length;
groupID++) {
if (pauseButtonText == 'Pause All')
_database
.reference()
.child(thisClass.sessionID)
.child('groups')
.child(thisClass.groupIDs[groupID])
.child('isPaused')
.set(false);
if (pauseButtonText == 'Resume All')
_database
.reference()
.child(thisClass.sessionID)
.child('groups')
.child(thisClass.groupIDs[groupID])
.child('isPaused')
.set(true);
}
},
child: Container(
padding: EdgeInsets.all(15.0),
child: Text(
pauseButtonText,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20.0,
color: Colors.white,
fontWeight: FontWeight.w500),
),
),
),
),
Expanded(
child: MaterialButton(
color: Colors.blue,
elevation: 0,
onPressed: () {
for (int groupID = 0;
groupID < thisClass.groups.length;
groupID++) {
if (acList.indexOf(
thisClass.groups[groupID].currentActivity) <
acList.length - 1)
_database
.reference()
.child(thisClass.sessionID)
.child('groups')
.child(thisClass.groupIDs[groupID])
.child('currentActivity')
.set(acList[acList.indexOf(
thisClass.groups[groupID].currentActivity) +
1]);
}
},
child: Container(
padding: EdgeInsets.all(15.0),
child: Text(
"Next Activity",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20.0,
color: Colors.white,
fontWeight: FontWeight.w500),
),
),
),
),
],
),
]));
}
}

Event Timeline