Skip to content
Snippets Groups Projects
Commit c2851879 authored by doodlezucc's avatar doodlezucc
Browse files

adapt page title in room/lecture timetable views

parent b4367525
No related branches found
No related tags found
No related merge requests found
......@@ -42,7 +42,7 @@ class _ViewPageState extends State<ViewPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('View Page'),
title: Text(widget.view.viewPageTitle),
),
body: Column(
children: [
......
......@@ -3,10 +3,10 @@ import 'package:flutter/material.dart';
import '../untis/element.dart';
import 'lesson_chip.dart';
class LessonChipCollection extends StatelessWidget {
class LessonChipCollection<T extends UntisElement> extends StatelessWidget {
final IconData icon;
final Iterable<UntisElement> elements;
final void Function(UntisElement element)? onChipTap;
final Iterable<T> elements;
final void Function(T element)? onChipTap;
const LessonChipCollection(
this.icon,
......
......@@ -85,7 +85,7 @@ class _LessonDialogState extends State<LessonDialog> {
child: LessonChipCollection(
BrandingIcons.lecture,
[lesson.lecture],
onChipTap: (e) => changeView(LectureView(lectureId: e.id)),
onChipTap: (e) => changeView(LectureView(lecture: e)),
)),
IconButton(
onPressed: () {
......@@ -101,7 +101,7 @@ class _LessonDialogState extends State<LessonDialog> {
LessonChipCollection(
BrandingIcons.room,
lesson.rooms,
onChipTap: (e) => changeView(RoomView(roomId: e.id)),
onChipTap: (e) => changeView(RoomView(room: e)),
),
],
const Divider(),
......
import '../untis/element_type.dart';
import '../untis/lecture.dart';
import 'single_element_view.dart';
class LectureView extends SingleElementView {
LectureView({required int lectureId}) : super(elementId: lectureId);
LectureView({required Lecture lecture}) : super(element: lecture);
@override
ElementType get elementType => ElementType.lecture;
@override
String get viewPageTitle => element.name;
}
......@@ -27,4 +27,7 @@ class MixedClassView extends TimetableView {
return TimetableData.mergeAll(allTimetables);
}
@override
String get viewPageTitle => 'Mixed Classes';
}
import '../untis/element_type.dart';
import '../untis/room.dart';
import 'single_element_view.dart';
class RoomView extends SingleElementView {
RoomView({required int roomId}) : super(elementId: roomId);
RoomView({required Room room}) : super(element: room);
@override
ElementType get elementType => ElementType.room;
@override
String get viewPageTitle => 'Raum ${element.name}';
}
......@@ -7,10 +7,11 @@ import 'dart:async';
import 'view.dart';
abstract class SingleElementView<T extends UntisElement> extends TimetableView {
final int elementId;
final T element;
SingleElementView({required this.elementId});
SingleElementView({required this.element});
int get elementId => element.id;
ElementType get elementType;
@override
......
import '../untis/element_type.dart';
import '../untis/teacher.dart';
import 'single_element_view.dart';
@Deprecated('Only logged in users can see teacher timetables')
class TeacherView extends SingleElementView {
TeacherView({required int teacherId}) : super(elementId: teacherId);
TeacherView({required Teacher teacher}) : super(element: teacher);
@override
ElementType get elementType => ElementType.teacher;
@override
String get viewPageTitle => element.name;
}
......@@ -4,6 +4,8 @@ import '../untis/fetch.dart';
import '../untis/timetable.dart';
abstract class TimetableView {
String get viewPageTitle;
FutureOr<TimetableData?> timetableOf(
DateTime date, {
required UntisFetch untis,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment