예제 #1
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        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;
                }
            }
        }
예제 #3
0
파일: Form1.cs 프로젝트: OhmGeek/TimeLord
        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;
            }
        }