public PlanViewPanel(
      PlannerUI plannerUI, StudentPlan plan, boolean showOptional, SchoolAdapter schoolAdapter) {
    _plannerUI = plannerUI;
    _plan = plan;
    _schoolAdapter = schoolAdapter;
    _showOptional = showOptional;

    _semesterPanels = new PlanViewSemesterPanel[_plan.years()][_plan.semesters(0)];
    for (int i = 0; i < _semesterPanels.length; i++)
      for (int j = 0; j < _semesterPanels[i].length; j++)
        _semesterPanels[i][j] = new PlanViewSemesterPanel(_plan, this, i, j);
    _semesterPanels[_selectedYear][_selectedSemester].setSelected(true);

    // monitorStudentPlan(_plan);

    draw();
  }