private void setSelectedCareer()
        {
            List <Course> finalCoursesToTake = DatabaseConnection.readCareerFinalCourses(departmentWindow.selectedCareer);

            TreeViewItem[] finalCoursesItems = new TreeViewItem[finalCoursesToTake.Count];

            // Clear tree before repopulating
            //
            treeView.Items.Clear();

            for (int i = 0; i < finalCoursesToTake.Count; i++)
            {
                if (finalCoursesItems[i] == null)
                {
                    finalCoursesItems[i] = new TreeViewItem();
                }

                // Select the first item
                //
                if (i == 0)
                {
                    finalCoursesItems[i].IsSelected = true;
                }

                finalCoursesItems[i].IsExpanded = false;

                createCourseListButton(finalCoursesItems[i], BasicManipulation.Properties.Resources.programmeIcon, finalCoursesToTake.ElementAt(i).id);

                treeView.Items.Add(finalCoursesItems[i]);
            }
        }
        /// <summary>
        /// Handles the career selection.
        /// </summary>
        private void careerTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            TreeViewItem tvi = (TreeViewItem)e.NewValue;

            if (tvi != null)
            {
                tvi.IsExpanded = !tvi.IsExpanded;

                StackPanel itemHeader = (StackPanel)((TreeViewItem)((TreeView)sender).SelectedItem).Header;

                var careerLabel = itemHeader.Children.OfType <Label>().FirstOrDefault();

                foreach (var career in careers)
                {
                    if (career.name == careerLabel.Content.ToString())
                    {
                        selectedCareer = null;

                        // Set the final courses for this career
                        //
                        careerFinalCoursesGrid.Items.Clear();
                        List <Course> finalCoursesToTake = DatabaseConnection.readCareerFinalCourses(career);
                        foreach (Course course in finalCoursesToTake)
                        {
                            careerFinalCoursesGrid.Items.Add(new CareerInfoDataItem()
                            {
                                finalCourse = course.id + " - " + course.name
                            });
                        }
                        // Workaround to fill the table
                        //
                        for (int i = 0; i < 5; i++)
                        {
                            careerFinalCoursesGrid.Items.Add(new CareerInfoDataItem()
                            {
                                finalCourse = ""
                            });
                        }
                        //careerFinalCoursesGrid.Visibility = Visibility.Visible;

                        if (selectedCareer == null)
                        {
                            selectedCareer = new Career(career.id,
                                                        career.name,
                                                        career.description);
                        }
                        else
                        {
                            selectedCareer.id          = career.id;
                            selectedCareer.name        = career.name;
                            selectedCareer.description = career.description;
                        }

                        Logger.Info("selectedCareer.name: " + selectedCareer.name);
                        break;
                    }
                }
            }
        }