public override void undo() { _ullv.Items.Remove(_lviDroped); Course dropedCourse = (Course)_lviDroped.Tag; EduProgram ep = (EduProgram)dropedCourse.Parent; ep.removeOneLessonFromUnallocatedLessonsModel(dropedCourse); AppForm.CURR_OCTT_DOC.decrUnallocatedLessonsCounter(1); if (dropedCourse.getCoursesToHoldTogetherList().Count > 0) { foreach (Course courseHT in dropedCourse.getCoursesToHoldTogetherList()) { EduProgram epHT = (EduProgram)courseHT.Parent; epHT.removeOneLessonFromUnallocatedLessonsModel(courseHT); } } AppForm.getAppForm().getStatusBarPanel2().Text = AppForm.CURR_OCTT_DOC.getNumOfUnallocatedLessonsStatusText(); if (AppForm.getAppForm().getTreeTabControl().SelectedIndex != 1) { AppForm.getAppForm().getTreeTabControl().SelectedIndexChanged -= new System.EventHandler(AppForm.getAppForm().treeTabControl_SelectedIndexChanged); AppForm.getAppForm().getTreeTabControl().SelectedIndex = 1; AppForm.getAppForm().getTreeTabControl().SelectedIndexChanged += new System.EventHandler(AppForm.getAppForm().treeTabControl_SelectedIndexChanged); } AppForm.getAppForm().getTeachersTreeView().AfterSelect -= new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().teachersTreeView_AfterSelect); AppForm.getAppForm().getTeachersTreeView().SelectedNode = _selectedNode; AppForm.getAppForm().getTeachersTreeView().AfterSelect += new System.Windows.Forms.TreeViewEventHandler(AppForm.getAppForm().teachersTreeView_AfterSelect); AppForm.getAppForm().ttvRefreshTimetablePanel(_selectedNode, false); }
public override void doit() { AppForm.CURR_OCTT_DOC.decrUnallocatedLessonsCounter(1); _unallocatedLessonsTeacherListView.Items.Remove(_dragedLvi); Course dragedCourse = (Course)_dragedLvi.Tag; EduProgram epInDrag = (EduProgram)dragedCourse.Parent; epInDrag.removeOneLessonFromUnallocatedLessonsModel(dragedCourse); if (dragedCourse.getCoursesToHoldTogetherList().Count > 0) { foreach (Course courseHT in dragedCourse.getCoursesToHoldTogetherList()) { EduProgram epHT = (EduProgram)courseHT.Parent; epHT.removeOneLessonFromUnallocatedLessonsModel(courseHT); ListViewItem itemForDel = null; foreach (ListViewItem listViewItem in _unallocatedLessonsTeacherListView.Items) { Course tagCourse = (Course)listViewItem.Tag; if (tagCourse == courseHT) { itemForDel = listViewItem; break; } } _unallocatedLessonsTeacherListView.Items.Remove(itemForDel); } } AppForm.getAppForm().getStatusBarPanel2().Text = AppForm.CURR_OCTT_DOC.getNumOfUnallocatedLessonsStatusText(); }
public override void doit() { _unallocatedLessonsListView.Items.Remove(_dragedLvi); Course dragedCourse = (Course)_dragedLvi.Tag; EduProgram ep = (EduProgram)dragedCourse.Parent; ep.removeOneLessonFromUnallocatedLessonsModel(dragedCourse); AppForm.CURR_OCTT_DOC.decrUnallocatedLessonsCounter(1); if (dragedCourse.getCoursesToHoldTogetherList().Count > 0) { foreach (Course courseHT in dragedCourse.getCoursesToHoldTogetherList()) { EduProgram epHT = (EduProgram)courseHT.Parent; epHT.removeOneLessonFromUnallocatedLessonsModel(courseHT); } } AppForm.getAppForm().getStatusBarPanel2().Text = AppForm.CURR_OCTT_DOC.getNumOfUnallocatedLessonsStatusText(); }
private void acceptTheBestSolution() { /*foreach (ACourse ac in _aglobal._allACourses) * { * Console.WriteLine("------------"); * Console.WriteLine(ac.Name); * foreach (ALessonNode aln in ac.MyAllLessonNodesForAllocation) * { * Console.WriteLine(aln.PositionInGlobalBestSolution); * } * * }*/ if (_isRunFromEmptySolution) { foreach (EduProgramGroup epg in AppForm.CURR_OCTT_DOC.CoursesRootNode.Nodes) { foreach (EduProgram ep in epg.Nodes) { ep.setTimetable(new ArrayList[AppForm.CURR_OCTT_DOC.IncludedTerms.Count, AppForm.CURR_OCTT_DOC.getNumberOfDays()]); AppForm.CURR_OCTT_DOC.TotalNumberOfUnallocatedLessons = 0; ep.setUnallocatedLessonsList(new ArrayList()); } } } foreach (EduProgramGroup epg in AppForm.CURR_OCTT_DOC.CoursesRootNode.Nodes) { foreach (EduProgram ep in epg.Nodes) { foreach (Course course in ep.Nodes) { int epgIndex = AppForm.CURR_OCTT_DOC.CoursesRootNode.Nodes.IndexOf(epg); int epIndex = epg.Nodes.IndexOf(ep); int courseIndex = ep.Nodes.IndexOf(course); ACourse ac = (ACourse)_coursesMapping[epgIndex + "," + epIndex + "," + courseIndex]; if (ac != null && !ac.IsHTCourse) { foreach (ALessonNode aln in ac.MyAllLessonNodesForAllocation) { //Console.WriteLine(aln.PositionInBestSolution); int indexRow, indexCol, roomIndex; this.convertNumberOfTimeSlotToRowColumnAndRoom(aln.PositionInGlobalBestSolution, out indexRow, out indexCol, out roomIndex); Room room = (Room)_sortedRoomsRelCapacityList[roomIndex]; ArrayList[,] mytt = ep.getTimetable(); ArrayList lessonsInOneTimeSlot; if (mytt[indexRow, indexCol] == null) { lessonsInOneTimeSlot = new ArrayList(); } else { lessonsInOneTimeSlot = mytt[indexRow, indexCol]; } Object[] courseAndRoomPair = new Object[2]; courseAndRoomPair[0] = course; courseAndRoomPair[1] = room; lessonsInOneTimeSlot.Add(courseAndRoomPair); mytt[indexRow, indexCol] = lessonsInOneTimeSlot; // if (!_isRunFromEmptySolution) { ep.removeOneLessonFromUnallocatedLessonsModel(course); AppForm.CURR_OCTT_DOC.decrUnallocatedLessonsCounter(1); } // if (course.getCoursesToHoldTogetherList().Count > 0) { foreach (Course courseHT in course.getCoursesToHoldTogetherList()) { EduProgram epHT = (EduProgram)courseHT.Parent; ArrayList[,] myttHT = epHT.getTimetable(); ArrayList lessonsInOneTimeSlotHT; if (myttHT[indexRow, indexCol] == null) { lessonsInOneTimeSlotHT = new ArrayList(); } else { lessonsInOneTimeSlotHT = myttHT[indexRow, indexCol]; } Object[] courseAndRoomPairHT = new Object[2]; courseAndRoomPairHT[0] = courseHT; courseAndRoomPairHT[1] = room; lessonsInOneTimeSlotHT.Add(courseAndRoomPairHT); myttHT[indexRow, indexCol] = lessonsInOneTimeSlotHT; // if (!_isRunFromEmptySolution) { epHT.removeOneLessonFromUnallocatedLessonsModel(courseHT); } // } } } } } } } // _acceptBestSolutionButton.Enabled = false; AppForm.getAppForm().getStatusBarPanel2().Text = AppForm.CURR_OCTT_DOC.getNumOfUnallocatedLessonsStatusText(); AppForm.getAppForm().getCommandProcessor().emptyAllStacks(); AppForm.getAppForm().getCommandProcessor().setUnReButtonState(); int tabIndex = AppForm.getAppForm().getTreeTabControl().SelectedIndex; TreeNode workingNode = null; if (tabIndex == 0) { workingNode = AppForm.getAppForm().getCoursesTreeView().SelectedNode; if (workingNode == null) { workingNode = AppForm.CURR_OCTT_DOC.CoursesRootNode; } 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) { workingNode = AppForm.getAppForm().getTeachersTreeView().SelectedNode; if (workingNode == null) { workingNode = AppForm.CURR_OCTT_DOC.TeachersRootNode; } 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) { workingNode = AppForm.getAppForm().getRoomsTreeView().SelectedNode; if (workingNode == null) { workingNode = AppForm.CURR_OCTT_DOC.RoomsRootNode; } 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); } }