protected function init()
 {
     $header2 = new DueDateHeader();
     $header3 = new ReviewPeriodHeader();
     $header4 = new ListHeader();
     $header5 = new ListHeader();
     $header6 = new ListHeader();
     if ($this->isReviewer) {
         $header1 = new ListHeader();
         $header7 = new ManagePerformanceActionHeader();
         $header1->populateFromArray(array('name' => 'Employee', 'width' => '25%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getEmployee', 'getFullName'))));
         $reviewStatus = array();
         $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
         $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
         $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
         $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
         $header6->populateFromArray(array('name' => 'Status', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getStatusId')));
         $header7->populateFromArray(array('name' => 'Action', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ManagePerformanceAction', 'elementProperty' => array('placeholderGetters' => array('id' => 'getId'), 'urlPattern' => 'index.php/performance/performanceReviewProgress?id={id}')));
     } else {
         $header1 = new PerformanceEvaluationLinkHeader();
         $header7 = new ListHeader();
         $header1->populateFromArray(array('name' => 'Employee', 'width' => '20%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'performanceEvaluationLink', 'elementProperty' => array('labelGetter' => array('getEmployee', 'getFullName'), 'placeholderGetters' => array('id' => 'getId'), 'urlPattern' => 'index.php/performance/reviewEvaluate/id/{id}')));
         $reviewStatus = array();
         $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
         $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
         $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
         $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
         $header6->populateFromArray(array('name' => 'Status', 'width' => '15%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getStatusId')));
         $reviewStatus = array();
         $reviewStatus[ReviewerReviewStatusActivated::getInstance()->getStatusId()] = ReviewerReviewStatusActivated::getInstance()->getName();
         $reviewStatus[ReviewerReviewStatusCompleted::getInstance()->getStatusId()] = ReviewerReviewStatusCompleted::getInstance()->getName();
         $reviewStatus[ReviewerReviewStatusInProgress::getInstance()->getStatusId()] = ReviewerReviewStatusInProgress::getInstance()->getName();
         $header7->populateFromArray(array('name' => 'Evaluation Status', 'width' => '15%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => array('getReviewers', 'getFirst', 'getStatus'))));
     }
     $header2->populateFromArray(array('name' => 'Due Date', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'DueDate'));
     $header3->populateFromArray(array('name' => 'Review Period', 'width' => '20%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ReviewPeriod'));
     $header4->populateFromArray(array('name' => 'Job Title', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle'))));
     $header5->populateFromArray(array('name' => 'Department', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getDepartment', 'getName'))));
     $this->headers = array($header1, $header2, $header3, $header4, $header5, $header6, $header7);
 }
 protected function init()
 {
     $headerArray = array();
     $header1 = new ListHeader();
     $header2 = new DueDateHeader();
     $header3 = new ReviewPeriodHeader();
     $header4 = new ListHeader();
     $header6 = new ManagePerformanceActionHeader();
     $header5 = new ListHeader();
     $header1->populateFromArray(array('name' => 'Employee', 'isSortable' => true, 'sortField' => 'employeeId', 'elementType' => 'label', 'elementProperty' => array('getter' => array('getEmployee', 'getFullName'))));
     $header2->populateFromArray(array('name' => 'Due Date', 'isSortable' => true, 'sortField' => 'due_date', 'elementType' => 'DueDate'));
     $header3->populateFromArray(array('name' => 'Review Period', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ReviewPeriod', 'elementProperty' => array('getter' => 'getWorkPeriodStart')));
     $header4->populateFromArray(array('name' => 'Work Period End Date', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => 'getWorkPeriodEnd')));
     $header4->populateFromArray(array('name' => 'Job Title', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle'))));
     $header6->populateFromArray(array('name' => 'Action', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ManagePerformanceAction', 'elementProperty' => array('placeholderGetters' => array('id' => 'getId'), 'urlPattern' => 'index.php/performance/performanceReviewProgress?id={id}')));
     $reviewStatus = array();
     $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
     $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
     $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
     $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
     $header5->populateFromArray(array('name' => 'Status', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getStatusId')));
     $this->headers = array($header1, $header2, $header3, $header4, $header5, $header6);
 }