private void GetAllChildAssignmentsForParent( CommentedAssignmentTreeViewItem currentTop, List <ejsAssignment> list) { foreach (CommentedAssignmentTreeViewItem catvi in currentTop.Items) { this.GetAllChildAssignmentsForParent(catvi, list); list.Add(catvi.Assignment); //list.Add(currentTop.Assignment); } }
/// <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; cat.DefaultImage = new BitmapImage(new Uri("pack://application:,,,/imgData/caTvS.png")); cat.SelectedImage = new BitmapImage(new Uri("pack://application:,,,/imgData/caTvD.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 _tv_Assignments_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { if (e.NewValue is AssignmentTreeViewItem) { AssignmentTreeViewItem selAss = e.NewValue as AssignmentTreeViewItem; this._b_OpenAssignment.IsEnabled = true; //Do not enable anything else... if (this.OpenForMerge) { return; } this._b_OpenCommentedAssignment.IsEnabled = true; if (App._currentEjpStudent.Id == selAss.Assignment.OwnerUserId) { this._b_DeleteAssignment.IsEnabled = true; if (selAss.Items.Count != 0) { this._b_MergeAndOpen.IsEnabled = true; } else { this._b_MergeAndOpen.IsEnabled = false; } } else { this._b_DeleteAssignment.IsEnabled = false; this._b_MergeAndOpen.IsEnabled = false; } //Version Check if (selAss.Assignment.ExternalAssignmentId == Guid.Empty) { this._b_OpenCommentedAssignment.IsEnabled = false; } } if (e.NewValue is CommentedAssignmentTreeViewItem) { //Do not enable anything... if (this.OpenForMerge) { return; } CommentedAssignmentTreeViewItem selAss = e.NewValue as CommentedAssignmentTreeViewItem; this._b_OpenAssignment.IsEnabled = false; this._b_OpenCommentedAssignment.IsEnabled = true; this._b_MergeAndOpen.IsEnabled = false; if (selAss.BranchRoot.Assignment.OwnerUserId == App._currentEjpStudent.Id) { this._b_DeleteAssignment.IsEnabled = true; } else { this._b_DeleteAssignment.IsEnabled = false; } //Version Check if (selAss.Assignment.ExternalAssignmentId == Guid.Empty) { this._b_OpenCommentedAssignment.IsEnabled = false; } } }