Exemplo n.º 1
0
        private static void markNotPossibleTimeSlotsRelTeacher(TimeSlotPanel tsp, Teacher dragedTeacher, ArrayList notPossibleTimeSlots)
        {
            if (!notPossibleTimeSlots.Contains(tsp))
            {
                if (dragedTeacher.getAllowedTimeSlots()[tsp.getIndexRow(), tsp.getIndexCol()])
                {
                    foreach (EduProgramGroup epg in AppForm.CURR_OCTT_DOC.CoursesRootNode.Nodes)
                    {
                        foreach (EduProgram ep in epg.Nodes)
                        {
                            ArrayList [,] eptt = ep.getTimetable();
                            ArrayList lessonsInOneTimeSlot = eptt[tsp.getIndexRow(), tsp.getIndexCol()];
                            if (lessonsInOneTimeSlot != null)
                            {
                                foreach (Object [] courseAndRoomPair in lessonsInOneTimeSlot)
                                {
                                    Course  edu_program_group = (Course)courseAndRoomPair[0];
                                    Teacher teacher           = edu_program_group.getTeacher();
                                    if (teacher == dragedTeacher)
                                    {
                                        tsp.BackColor = System.Drawing.Color.DarkSalmon;
                                        tsp.AllowDrop = false;
                                        notPossibleTimeSlots.Add(tsp);

                                        ArrayList subLabels = tsp.getAllSubLabels();
                                        foreach (Label [] courseRoomLabel in subLabels)
                                        {
                                            Label courseLabel = courseRoomLabel[0];
                                            Label roomLabel   = courseRoomLabel[1];

                                            courseLabel.BackColor = System.Drawing.Color.DarkSalmon;
                                            roomLabel.BackColor   = System.Drawing.Color.DarkSalmon;
                                        }

                                        goto stop;
                                    }
                                }
                            }
                        }
                    }
                    stop :;
                }
                else
                {
                    tsp.BackColor = System.Drawing.Color.DarkSalmon;
                    tsp.AllowDrop = false;
                    notPossibleTimeSlots.Add(tsp);

                    ArrayList subLabels = tsp.getAllSubLabels();
                    foreach (Label [] courseRoomLabel in subLabels)
                    {
                        Label courseLabel = courseRoomLabel[0];
                        Label roomLabel   = courseRoomLabel[1];

                        courseLabel.BackColor = System.Drawing.Color.DarkSalmon;
                        roomLabel.BackColor   = System.Drawing.Color.DarkSalmon;
                    }
                }
            }
        }
Exemplo n.º 2
0
        public ChangeAllowedTimeSlotsCmd(Object workingObject, int cmdType, AllowedTimeSlotsForm atsf)
        {
            _atsf          = atsf;
            _cmdType       = cmdType;
            _workingObject = workingObject;

            if (_cmdType == Constants.ATSF_TIME_SLOT_TYPE_TEACHER)
            {
                Teacher teacher = (Teacher)_workingObject;
                _oldAllowedTimeSlots = teacher.getAllowedTimeSlots();
            }
            else if (_cmdType == Constants.ATSF_TIME_SLOT_TYPE_EDU_PROGRAM)
            {
                EduProgram ep = (EduProgram)_workingObject;
                _oldAllowedTimeSlots = ep.getAllowedTimeSlots();
            }
            else if (_cmdType == Constants.ATSF_TIME_SLOT_TYPE_EDU_PROGRAM_GROUP)
            {
                EduProgramGroup epg = (EduProgramGroup)_workingObject;
                _oldAllowedTimeSlots = epg.getAllowedTimeSlots();
            }
            else if (_cmdType == Constants.ATSF_TIME_SLOT_TYPE_ROOM)
            {
                Room room = (Room)_workingObject;
                _oldAllowedTimeSlots = room.getAllowedTimeSlots();
            }

            _newAllowedTimeSlots = (bool [, ])_oldAllowedTimeSlots.Clone();

            foreach (Label edotlW in _atsf.getMainPanel().Controls)
            {
                if (edotlW.GetType().FullName == "OpenCTT.EnableDisableOneTermLabel")
                {
                    EnableDisableOneTermLabel edotl = (EnableDisableOneTermLabel)edotlW;

                    if (edotl.getIsTermEnabled())
                    {
                        _newAllowedTimeSlots[edotl.getIndexRow(), edotl.getIndexCol()] = true;
                    }
                    else
                    {
                        _newAllowedTimeSlots[edotl.getIndexRow(), edotl.getIndexCol()] = false;
                    }
                }
            }
        }
Exemplo n.º 3
0
        public override void undo()
        {
            AppForm.CURR_OCTT_DOC.setIsDayIncluded(_guiIndex, true);

            ModelOperations.addDayInModel(_dayIndexInModel);

            ArrayList epgURList      = _undoRedoLists[0];
            ArrayList epURList       = _undoRedoLists[1];
            ArrayList teachersURList = _undoRedoLists[2];
            ArrayList roomsURList    = _undoRedoLists[3];

            foreach (object [] oneItem in epgURList)
            {
                EduProgramGroup epg = (EduProgramGroup)oneItem[0];
                bool [,] epgAllowedTimeSlotsUR = (bool[, ])oneItem[1];

                for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++)
                {
                    epg.getAllowedTimeSlots()[j, _dayIndexInModel] = epgAllowedTimeSlotsUR[j, 0];
                }
            }

            foreach (object [] oneItem in epURList)
            {
                EduProgram ep = (EduProgram)oneItem[0];
                bool [,] epAllowedTimeSlotsUR = (bool[, ])oneItem[1];

                for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++)
                {
                    ep.getAllowedTimeSlots()[j, _dayIndexInModel] = epAllowedTimeSlotsUR[j, 0];
                }
            }


            foreach (object [] oneItem in teachersURList)
            {
                Teacher teacher = (Teacher)oneItem[0];
                bool [,] teacherAllowedTimeSlotsUR = (bool[, ])oneItem[1];

                for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++)
                {
                    teacher.getAllowedTimeSlots()[j, _dayIndexInModel] = teacherAllowedTimeSlotsUR[j, 0];
                }
            }


            foreach (object [] oneItem in roomsURList)
            {
                Room room = (Room)oneItem[0];
                bool [,] roomAllowedTimeSlotsUR = (bool[, ])oneItem[1];

                for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++)
                {
                    room.getAllowedTimeSlots()[j, _dayIndexInModel] = roomAllowedTimeSlotsUR[j, 0];
                }
            }

            AppForm.getAppForm().getTreeTabControl().SelectedIndexChanged -= new System.EventHandler(AppForm.getAppForm().treeTabControl_SelectedIndexChanged);
            AppForm.getAppForm().getTreeTabControl().SelectedIndex         = _tabIndex;
            AppForm.getAppForm().getTreeTabControl().SelectedIndexChanged += new System.EventHandler(AppForm.getAppForm().treeTabControl_SelectedIndexChanged);

            AppForm.getAppForm().refreshGUIAfterDaysTermsChange(false);

            if (_tabIndex == 0)
            {
                AppForm.CURR_OCTT_DOC.CTVSelectedNode = _workingNode;
                AppForm.getAppForm().ctvRefreshTimetablePanel(_workingNode, true, true);

                AppForm.getAppForm().getCoursesTreeView().AfterSelect -= new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().coursesTreeView_AfterSelect);
                AppForm.getAppForm().getCoursesTreeView().SelectedNode = _workingNode;
                AppForm.getAppForm().getCoursesTreeView().AfterSelect += new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().coursesTreeView_AfterSelect);
            }
            else if (_tabIndex == 1)
            {
                AppForm.getAppForm().getTeachersTreeView().AfterSelect -= new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().teachersTreeView_AfterSelect);
                AppForm.getAppForm().getTeachersTreeView().SelectedNode = _workingNode;
                AppForm.getAppForm().getTeachersTreeView().AfterSelect += new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().teachersTreeView_AfterSelect);

                AppForm.CURR_OCTT_DOC.TTVSelectedNode = _workingNode;
                AppForm.getAppForm().ttvRefreshTimetablePanel(_workingNode, true);
            }
            else if (_tabIndex == 2)
            {
                AppForm.getAppForm().getRoomsTreeView().AfterSelect -= new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().roomsTreeView_AfterSelect);
                AppForm.getAppForm().getRoomsTreeView().SelectedNode = _workingNode;
                AppForm.getAppForm().getRoomsTreeView().AfterSelect += new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().roomsTreeView_AfterSelect);

                AppForm.CURR_OCTT_DOC.RTVSelectedNode = _workingNode;
                AppForm.getAppForm().rtvRefreshTimetablePanel(_workingNode, true);
            }
        }
Exemplo n.º 4
0
        private ArrayList getUnallowedTSForTeacher(Teacher teacher)
        {
            ArrayList teacherUnallowedTS = new ArrayList();

            int[]     roomRestrictions = null;
            ArrayList rr = teacher.getAllowedRoomsList();

            if (rr != null && rr.Count > 0)
            {
                roomRestrictions = new int[rr.Count];
                int rri = 0;
                foreach (Room room in rr)
                {
                    int roomIndex = _sortedRoomsRelCapacityList.IndexOf(room);
                    roomRestrictions[rri] = roomIndex;
                    rri++;
                }
            }


            ArrayList tempUnallowedTSList = new ArrayList();
            int       wtuts = 0;

            for (int k = 0; k < AppForm.CURR_OCTT_DOC.getNumberOfDays(); k++)
            {
                for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++)
                {
                    wtuts++;
                    if (teacher.getAllowedTimeSlots()[j, k] == false)
                    {
                        for (int qq = 0; qq < NUM_OF_ROOMS; qq++)
                        {
                            tempUnallowedTSList.Add(qq * NUM_OF_SLOTS_PER_ROOM + wtuts);
                        }
                    }
                }
            }

            //Console.WriteLine(tempUnallowedTSList.Count);

            int[] unallowedTS = new int[tempUnallowedTSList.Count];
            int   tss         = 0;

            //Console.WriteLine("New teacher");
            foreach (int tsindex in tempUnallowedTSList)
            {
                unallowedTS[tss] = tsindex;
                tss++;
            }

            foreach (int unallTS in unallowedTS)
            {
                teacherUnallowedTS.Add(unallTS);
            }

            if (roomRestrictions != null && roomRestrictions.GetLength(0) > 0)
            {
                ArrayList rrList = new ArrayList();
                foreach (int rrcc in roomRestrictions)
                {
                    rrList.Add(rrcc);
                }

                for (int rsroom = 0; rsroom < NUM_OF_ROOMS; rsroom++)
                {
                    if (!rrList.Contains(rsroom))
                    {
                        for (int rs = 0; rs < NUM_OF_SLOTS_PER_ROOM; rs++)
                        {
                            int newitem = rsroom * NUM_OF_SLOTS_PER_ROOM + rs + 1;
                            if (!teacherUnallowedTS.Contains(newitem))
                            {
                                teacherUnallowedTS.Add(newitem);
                            }
                        }
                    }
                }
            }
            //

            return(teacherUnallowedTS);
        }