private void RegisterClicks(ClassListUI view) { foreach (System.Windows.Controls.ListView control in view.ListViews) { control.PreviewMouseMove += new System.Windows.Input.MouseEventHandler(lstCourses_PreviewMouseMove); control.DragEnter += new System.Windows.DragEventHandler(lstCourses_DragEnter); control.DragLeave += new System.Windows.DragEventHandler(lstCourses_DragLeave); control.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(lstCourses_PreviewMouseLeftButtonDown); } }
private void lstCourses_Drop(object sender, System.Windows.DragEventArgs e) { try { if (e.Data.GetDataPresent("ListViewItem")) { ListViewItem courseItem = e.Data.GetData("ListViewItem") as ListViewItem; ListView listView = sender as ListView; SemesterControl control = GetSemesterControlFromListView(listView); int indexOf = mSemesters.IndexOf(control); string course = CourseCanBeTaken(courseItem.Content.ToString(), indexOf); if (course == "") { try { ListView parent1 = courseItem.Parent as ListView; Expander parent2 = parent1.Parent as Expander; ClassListUI parent3 = parent2.Parent as ClassListUI; parent1.Items.Remove(courseItem); } catch { //means it is another semester } listView.Items.Add(courseItem); int end = mSemesters.IndexOf(control); int start = mSemesters.IndexOf(GetSemesterControlFromListView(mDraggedParent)); if (Verify()) { MessageBox.Show("Warning: Degree now contains a schedule in which course(s) are taken before prerequisite. Schedule may be impossible." + Environment.NewLine + "Invalid course selections will be marked in yellow."); } } else { System.Windows.Forms.MessageBox.Show("Course cannot be moved to that semester. Prerequisite class " + course + " has not yet been taken."); mDraggedParent.Items.Add(mDraggedClass); } // contact.Background = System.Windows.Media.Brushes.Aqua; } } catch { } }
//contructor public GenerateSchedulesForm(String degreeType, Degree degree, DBClass db) { InitializeComponent(); //setup the class list uiClassList = new ClassListUI(this); this.elementHost3.Child = uiClassList; mDb = db; //setup the degree and taken list mDegree = degree; // removes classes taken from the default schedule mCoursesTaken = degree.TakenCourses; uiClassList.SetTakenClass(mCoursesTaken); // RegisterClicks(); //add the degree control to the tab while (mDegree.Semesters.Count < mDegree.MaxSemesters) { mDegree.Semesters.Add(new Semester()); } DegreeControl page = new DegreeControl(mDegree, mCoursesTaken, this, "Default"); mTabs = new System.Windows.Controls.TabControl(); mTabs.Items.Add(page); elementHost1.Child = mTabs; mTabs.SelectionChanged += new WPF.SelectionChangedEventHandler(mTabs_SelectionChanged); uiClassList.lstElectives.SelectionChanged += new WPF.SelectionChangedEventHandler(lstElectives_SelectionChanged); //UpdateCourseList(mDegree, control); //mDegreeControls.Add(control); List <string> codes = db.GetDegreeCodes(); this.cmboDegreeSwitch.Items.Clear(); foreach (string code in codes) { cmboDegreeSwitch.Items.Add(code); } }