private void DrawSubject(Graphics G, int cellWidth, int cellHeight, int marginLeft, int marginTop, int subjectIndex, bool printInvisible) { int col = 2 * cellWidth; foreach (YearGroup year in currentTT.Years) { G.DrawRectangle(Pens.Black, col + marginLeft, marginTop, cellWidth * year.Forms.Count, cellHeight); G.DrawString(year.YearName, new Font("Segoe UI", 12), Brushes.Black, col, marginTop); foreach (FormClass fc in year.Forms) { G.DrawRectangle(Pens.Black, col + marginLeft, cellHeight + marginTop, cellWidth, cellHeight); G.DrawString(fc.FormName, new Font("Segoe UI", 12), Brushes.Black, col + marginLeft, cellHeight + marginTop); col += cellWidth; } } int row = 2 * cellHeight; foreach (Day schoolDay in currentTT.Week) { G.DrawRectangle(Pens.Black, marginLeft, row + marginTop, cellWidth, cellHeight); G.DrawString(schoolDay.DayName, new Font("Segoe UI", 12), Brushes.Black, marginLeft, row + marginTop); //G.FillRectangle(Brushes.SkyBlue, schoolDay.dayBounds); foreach (Period singlePeriod in schoolDay.PeriodsInDay) { G.DrawRectangle(Pens.Black, marginLeft + cellWidth, row + marginTop, cellWidth, cellHeight); G.DrawString(singlePeriod.PeriodDisplay, new Font("Segoe UI", 12), Brushes.Black, marginLeft + cellWidth, row + marginTop); row += cellHeight; // G.FillRectangle(Brushes.Purple,singlePeriod.periodBounds); } if (currentTT.IsFinalised()) { //int xCoord = cellWidth + MarginLeft; int yCoord = cellHeight + marginTop; for (int dayIndex = 0; dayIndex < currentTT.Week.Count; dayIndex++) { for (int periodIndex = 0; periodIndex < currentTT.Week[dayIndex].PeriodsInDay.Count; periodIndex++) { int xCoord = 2 * cellWidth + marginLeft; yCoord += cellHeight; for (int yearIndex = 0; yearIndex < currentTT.Years.Count; yearIndex++) { for (int formIndex = 0; formIndex < currentTT.Years[yearIndex].Forms.Count; formIndex++) { Lesson obj = currentTT.mainTT[dayIndex][periodIndex][yearIndex][formIndex]; if ((obj != null) && (currentTT.Subjects[subjectIndex].SubjectAbbreviation == obj.SubjectAbbreviation) && (!obj.invisible | (obj.invisible & printInvisible))) { G.DrawRectangle(Pens.Black, xCoord, yCoord, cellWidth, cellHeight); G.DrawString(obj.ToString(), new Font("Segoe UI", 12), Brushes.Black, xCoord, yCoord); } xCoord += cellWidth; } } } } } } }
private void DrawStaff(Graphics G, int cellWidth, int cellHeight, int marginLeft, int marginTop, int staffIndex, bool printInvisible) { int col = cellWidth; int row = cellHeight; foreach (Day schoolDay in currentTT.Week) { G.DrawRectangle(Pens.Black, col + marginLeft, marginTop, cellWidth, cellHeight); G.DrawString(schoolDay.DayName, new Font("Segoe UI", 12), Brushes.Black, marginLeft + col, marginTop); col += cellWidth; } foreach (Period singlePeriod in currentTT.Week[0].PeriodsInDay) { G.DrawRectangle(Pens.Black, marginLeft, row + marginTop, cellWidth, cellHeight); G.DrawString(singlePeriod.PeriodDisplay, new Font("Segoe UI", 12), Brushes.Black, marginLeft, row + marginTop); row += cellHeight; } if (currentTT.IsFinalised()) { col = cellWidth; for (int d = 0; d < currentTT.Week.Count; d++) { row = cellHeight; for (int p = 0; p < currentTT.Week[d].PeriodsInDay.Count; p++) { Lesson selectedLesson = null; selectedLesson = currentTT.staffTT[d][p][staffIndex]; if ((selectedLesson != null) && (!selectedLesson.invisible | (selectedLesson.invisible & printInvisible))) { G.DrawRectangle(Pens.Black, marginLeft + col, row + marginTop, cellWidth, cellHeight); G.DrawString(selectedLesson.ToString(), new Font("Segoe UI", 12), Brushes.Black, marginLeft + col, row + marginTop); } row += cellHeight; } col += cellWidth; } } }
private void tabControl1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.F1: tabControl1.SelectTab(0); break; case Keys.F2: tabControl1.SelectTab(1); break; case Keys.F3: tabControl1.SelectTab(2); break; case Keys.F4: tabControl1.SelectTab(3); break; case Keys.F5: tabControl1.SelectedTab.Refresh(); break; case Keys.Up: if (displayedItem == null) return; displayedItem.selected = false; int DayIndex = displayedItem.DayIndex; int PeriodIndex = displayedItem.PeriodIndex; int YearIndex = displayedItem.YearIndex; int FormIndex = displayedItem.FormIndex; do { if ((PeriodIndex == 0) && (DayIndex != 0)) { DayIndex--; PeriodIndex = currentTT.Week[DayIndex].PeriodsInDay.Count; } else if ((PeriodIndex == 0)) return; PeriodIndex--; displayedItem = currentTT.mainTT[DayIndex][PeriodIndex][YearIndex][FormIndex]; } while (displayedItem == null); displayedItem.selected = true; DisplayInfoAboutLesson(displayedItem); pb_mainView.Refresh(); break; case Keys.Down: if (displayedItem == null) return; displayedItem.selected = false; DayIndex = displayedItem.DayIndex; PeriodIndex = displayedItem.PeriodIndex; YearIndex = displayedItem.YearIndex; FormIndex = displayedItem.FormIndex; do { if ((PeriodIndex == currentTT.Week[DayIndex].PeriodsInDay.Count - 1) && (DayIndex != currentTT.Week.Count - 1)) { DayIndex++; PeriodIndex = -1; } else if ((PeriodIndex == currentTT.Week[DayIndex].PeriodsInDay.Count - 1)) return; PeriodIndex++; displayedItem = currentTT.mainTT[DayIndex][PeriodIndex][YearIndex][FormIndex]; } while (displayedItem == null); displayedItem.selected = true; DisplayInfoAboutLesson(displayedItem); pb_mainView.Refresh(); break; case Keys.Left: e.Handled = true; //this escapes the automatic movement of tab pages, which can be annoying. if (displayedItem == null) return; displayedItem.selected = false; DayIndex = displayedItem.DayIndex; PeriodIndex = displayedItem.PeriodIndex; YearIndex = displayedItem.YearIndex; FormIndex = displayedItem.FormIndex; do { if ((FormIndex == 0) && (YearIndex != 0)) { YearIndex--; FormIndex = currentTT.Years[YearIndex].Forms.Count; } else if ((YearIndex == 0) && (FormIndex == 0)) return; FormIndex--; displayedItem = currentTT.mainTT[DayIndex][PeriodIndex][YearIndex][FormIndex]; } while (displayedItem == null); displayedItem.selected = true; DisplayInfoAboutLesson(displayedItem); pb_mainView.Refresh(); break; case Keys.Right: e.Handled = true; if (displayedItem == null) return; displayedItem.selected = false; DayIndex = displayedItem.DayIndex; PeriodIndex = displayedItem.PeriodIndex; YearIndex = displayedItem.YearIndex; FormIndex = displayedItem.FormIndex; do { if ((FormIndex == currentTT.Years[YearIndex].Forms.Count - 1) && (YearIndex != currentTT.Years.Count - 1)) { YearIndex++; FormIndex = -1; } else if ((YearIndex == currentTT.Years.Count - 1) && (FormIndex == currentTT.Years[YearIndex].Forms.Count - 1)) return; FormIndex++; displayedItem = currentTT.mainTT[DayIndex][PeriodIndex][YearIndex][FormIndex]; //MessageBox.Show("RIGHT!!!"); } while (displayedItem == null); displayedItem.selected = true; DisplayInfoAboutLesson(displayedItem); pb_mainView.Refresh(); break; case Keys.Delete: if (displayedItem == null) { MessageBox.Show("There is no item selected for deletion.", "Delete Lesson"); return; } if (MessageBox.Show("Are you sure you want to delete the selected lesson: " + displayedItem.ToString() + "?", "Delete Lesson", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { currentTT.DeleteLesson(displayedItem); RefreshViews(); } break; default: break; } }