parent
3caa8daadf
commit
b7f39dab8d
@ -1,245 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:timemanagerapp/entity/Course.dart';
|
||||
import 'package:timemanagerapp/setting/Setting.dart';
|
||||
|
||||
class CourseWidgetController {
|
||||
final double pixelToMinuteRatio =
|
||||
0.9 * Setting.pixelToMinuteRatio_ratio; //old:0.9
|
||||
late List<Course> courseList;
|
||||
late DateTime mondayTime;
|
||||
late int weekCount;
|
||||
late DateTime termStartDate;
|
||||
|
||||
CourseWidgetController() {
|
||||
mondayTime = getmondayTime();
|
||||
termStartDate = Setting.startdate;
|
||||
weekCount = getWeekCount();
|
||||
}
|
||||
|
||||
//getInstance
|
||||
static CourseWidgetController getInstance() {
|
||||
return new CourseWidgetController();
|
||||
}
|
||||
|
||||
static final List<Course> testcourseList = [
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 18, 7, 20),
|
||||
end: DateTime(2023, 9, 18, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 19, 7, 20),
|
||||
end: DateTime(2023, 9, 19, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 20, 7, 20),
|
||||
end: DateTime(2023, 9, 20, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 21, 7, 20),
|
||||
end: DateTime(2023, 9, 21, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 22, 7, 20),
|
||||
end: DateTime(2023, 9, 22, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 23, 7, 20),
|
||||
end: DateTime(2023, 9, 23, 10, 0)),
|
||||
Course(
|
||||
userId: 1,
|
||||
courseId: 2,
|
||||
name: 'Math',
|
||||
credit: 3,
|
||||
teacher: 'Mr. Smith',
|
||||
location: 'Room 101',
|
||||
remark: "null",
|
||||
start: DateTime(2023, 9, 24, 7, 20),
|
||||
end: DateTime(2023, 9, 24, 10, 0)),
|
||||
];
|
||||
|
||||
//时间转换为时间轴的piexl值的函数
|
||||
List<Offset> convertTimeList(List<DateTime> timePoints, double deviceWidth) {
|
||||
List<Offset> convertedTimes = [];
|
||||
for (var time in timePoints) {
|
||||
int hour = time.hour;
|
||||
int minute = time.minute;
|
||||
|
||||
int totalMinutes = (hour - 7) * 60 + minute;
|
||||
double convertedTime = totalMinutes * pixelToMinuteRatio;
|
||||
convertedTimes.add(Offset(deviceWidth * 0.015, convertedTime));
|
||||
}
|
||||
|
||||
return convertedTimes;
|
||||
}
|
||||
|
||||
int getWeekCount() {
|
||||
weekCount = DateTime.now().difference(termStartDate).inDays ~/ 7 + 1;
|
||||
return weekCount;
|
||||
}
|
||||
|
||||
DateTime getmondayTime() {
|
||||
mondayTime = DateTime.now();
|
||||
//获取本周星期一是几号
|
||||
while (mondayTime.weekday != 1) {
|
||||
mondayTime = mondayTime.subtract(Duration(days: 1));
|
||||
}
|
||||
return mondayTime;
|
||||
}
|
||||
|
||||
Map<int, List<Course>> transformCourseMap(List<Course> courseList) {
|
||||
Map<int, List<Course>> courseMap = {};
|
||||
for (var course in courseList) {
|
||||
int weekCount = course.start.difference(termStartDate).inDays ~/ 7 + 1; //
|
||||
if (courseMap.containsKey(weekCount)) {
|
||||
courseMap[weekCount]!.add(course);
|
||||
} else {
|
||||
courseMap[weekCount] = [course];
|
||||
}
|
||||
}
|
||||
return courseMap;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:timemanagerapp/entity/Course.dart';
|
||||
import 'package:timemanagerapp/setting/Setting.dart';
|
||||
|
||||
class TimetableWidgetController {
|
||||
final double pixelToMinuteRatio =
|
||||
0.9 * Setting.pixelToMinuteRatio_ratio; //old:0.9
|
||||
late List<Course> courseList;
|
||||
late DateTime mondayTime;
|
||||
late int weekCount;
|
||||
late DateTime termStartDate;
|
||||
|
||||
TimetableWidgetController() {
|
||||
mondayTime = getmondayTime();
|
||||
termStartDate = Setting.startdate;
|
||||
weekCount = getWeekCount();
|
||||
}
|
||||
|
||||
//getInstance
|
||||
static TimetableWidgetController getInstance() {
|
||||
return new TimetableWidgetController();
|
||||
}
|
||||
|
||||
//时间转换为时间轴的piexl值的函数
|
||||
List<Offset> convertTimeList(List<DateTime> timePoints, double deviceWidth) {
|
||||
List<Offset> convertedTimes = [];
|
||||
for (var time in timePoints) {
|
||||
int hour = time.hour;
|
||||
int minute = time.minute;
|
||||
|
||||
int totalMinutes = (hour - 7) * 60 + minute;
|
||||
double convertedTime = totalMinutes * pixelToMinuteRatio;
|
||||
convertedTimes.add(Offset(deviceWidth * 0.015, convertedTime));
|
||||
}
|
||||
|
||||
return convertedTimes;
|
||||
}
|
||||
|
||||
int getWeekCount() {
|
||||
weekCount = DateTime.now().difference(termStartDate).inDays ~/ 7 + 1;
|
||||
return weekCount;
|
||||
}
|
||||
|
||||
DateTime getmondayTime() {
|
||||
mondayTime = DateTime.now();
|
||||
//获取本周星期一是几号
|
||||
while (mondayTime.weekday != 1) {
|
||||
mondayTime = mondayTime.subtract(Duration(days: 1));
|
||||
}
|
||||
return mondayTime;
|
||||
}
|
||||
|
||||
Map<int, List> transformCourseMap(List blockList) {
|
||||
Map<int, List> timeblockMap = {};
|
||||
for (var timeBlock in blockList) {
|
||||
int weekCount = timeBlock.startTime.difference(termStartDate).inDays ~/ 7 + 1; //
|
||||
if (timeblockMap.containsKey(weekCount)) {
|
||||
timeblockMap[weekCount]!.add(timeBlock);
|
||||
} else {
|
||||
timeblockMap[weekCount] = [timeBlock];
|
||||
}
|
||||
}
|
||||
return timeblockMap;
|
||||
}
|
||||
|
||||
//初始化任务在周几对应的x坐标
|
||||
var weekListPixel=[0,Setting.deviceWidth*0.12,Setting.deviceWidth*0.24,Setting.deviceWidth*0.36,Setting.deviceWidth*0.48,Setting.deviceWidth*0.60,Setting.deviceWidth*0.72];
|
||||
// Course(this.name, this.teacher, this.location, this.startTime, this.endTime);
|
||||
|
||||
double getdy(timeBlock)
|
||||
{
|
||||
double y=(((timeBlock.startTime.hour-7)*60+timeBlock.startTime.minute)*0.9)*Setting.pixelToMinuteRatio_ratio;
|
||||
return y;
|
||||
}
|
||||
|
||||
double getdx(timeBlock)
|
||||
{
|
||||
int x=timeBlock.startTime.weekday-1;
|
||||
return weekListPixel[x].toDouble();
|
||||
}
|
||||
|
||||
double getHeight(timeBlock){
|
||||
return (((timeBlock.endTime.hour-7)*60+timeBlock.endTime.minute)*0.9-this.getdy(timeBlock))*Setting.pixelToMinuteRatio_ratio;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in new issue