/// <summary> /// Called to update the branches of the tree once the root nodes /// have been added. This method is meant to be called recursively. /// </summary> /// <param name="root">Root node</param> /// <param name="child">Current Child</param> /// <param name="branchRoot">Original root of this branch</param> private void BuildAssignmentTree(AssignmentTreeViewItem root, ejsAssignment child, AssignmentTreeViewItem branchRoot) { if (root.Assignment.ExternalAssignmentId == child.ParentAssignmentId) { CommentedAssignmentTreeViewItem cat = new CommentedAssignmentTreeViewItem(child); cat.BranchRoot = branchRoot; if (child.IsAvailable) { cat.DefaultImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/caTvS.png")); cat.SelectedImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/caTvD.png")); } else { cat.DefaultImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aNA.png")); cat.SelectedImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aNA.png")); } root.Items.Add(cat); //Add up the total number of comments in this branch.. branchRoot.Assignment.CommentCount += child.CommentCount; } else { foreach (AssignmentTreeViewItem childItem in root.Items) { this.BuildAssignmentTree(childItem, child, branchRoot); } } }
private void OnHideCurrentItem(object sender, RoutedEventArgs e) { if (this._tv_Assignments.SelectedItem == null) { return; } if (this._tv_Assignments.SelectedItem is CourseTreeViewItem) { return; } AssignmentTreeViewItem assignment = this._tv_Assignments.SelectedItem as AssignmentTreeViewItem; this.HideAssignment(assignment.Assignment); }
private void OnDeleteCurrentItem(object sender, RoutedEventArgs e) { if (this._tv_Assignments.SelectedItem == null) { return; } if (this._tv_Assignments.SelectedItem is CourseTreeViewItem) { return; } if (this.GetDeleteConfirmation() == true) { AssignmentTreeViewItem assignment = this._tv_Assignments.SelectedItem as AssignmentTreeViewItem; this.DeleteAssignment(assignment.Assignment); } }
private void OrganizeAssignments(ObservableAssignmentList assignments) { this._tv_Assignments.Items.Clear(); ObservableCourseList clist = App.Current.Resources["CompleteCoursesList"] as ObservableCourseList; foreach (ejsCourse course in clist) { CourseTreeViewItem c = new CourseTreeViewItem(course); this._tv_Assignments.Items.Add(c); } List <AssignmentTreeViewItem> topAssignments = new List <AssignmentTreeViewItem>(); foreach (ejsAssignment assignment in assignments) { //1 = Commented Assignment if (assignment.AssignmentContentType == 1) { continue; //We only add the 'real' assignments first } AssignmentTreeViewItem t = new AssignmentTreeViewItem(assignment); if (assignment.IsAvailable) { t.DefaultImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aTvS.png")); t.SelectedImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aTvD.png")); } else { t.DefaultImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aNA.png")); t.SelectedImage = new BitmapImage(new Uri("pack://application:,,,/Stages/imgData/aNA.png")); } foreach (CourseTreeViewItem cItem in this._tv_Assignments.Items) { if (cItem.Course._id == assignment.CourseId) { cItem.Items.Add(t); } } topAssignments.Add(t); } //Second run to add all the children foreach (ejsAssignment assignment in assignments) { //0 = Normal Assignment if (assignment.AssignmentContentType == 0) { continue; //We're only adding the Commented Assignments } if (assignment.CourseId == -1) //-1 = commented assignments do not belong to courses { foreach (AssignmentTreeViewItem ParentAssignment in topAssignments) { this.BuildAssignmentTree(ParentAssignment, assignment, ParentAssignment); } } } foreach (AssignmentTreeViewItem ParentAssignment in topAssignments) { ParentAssignment.TextDetails.Text += " Comments: " + ParentAssignment.Assignment.CommentCount.ToString(); } }