@Override
  public void whenSelectedEvent(Object model, NSIndexPath indexPath) {
    if (indexPath.section >= self.getReviewsSectionIndex()) {
      Review review = (Review) model;

      self.selectedReview = review;
      self.performSegueWithIdentifier(MainSegueIdentifier.detailReviewSegueIdentifier, self);
    }
  }
  protected void registerReviewTableCells() {
    int reviewSectionIndex = self.getReviewsSectionIndex();
    for (int i = 0; i < Review.MAX_FETCHED_REVIEWS_IN_DetailPage; i++) {
      self.setRegisterCellClass(IEAReviewUserCell.getType(), reviewSectionIndex + i);
      self.setRegisterCellClassWhenSelected(IEAReviewsCell.getType(), reviewSectionIndex + i, 1);
    }

    self.setRegisterFooterClass(IEAMoreReviewsFooterCell.getType());
  }
  @Override
  public void setItemsForReviewsSection(List<ParseModelAbstract> fetchedReviewPeople) {
    int startIndex = self.getReviewsSectionIndex();

    List<Object> array = Review.getReviewItems(self.fetchedReviews, fetchedReviewPeople);
    int sectionCount = array.size() / 2;
    for (int i = 0; i < sectionCount; i++) {
      Object[] item = {array.get(i * 2 + 0), array.get(i * 2 + 1)};
      setSectionItems(CollectionUtils.createList(item), startIndex + i);
    }

    // 2. refresh section tableview footer view.
    setFooterModelInSection(
        new SectionMoreReviewsFooterCellModel(IEAEditKey.Section_Title, self.getPageModel(), self),
        self.getMoreReviewSectionIndex(),
        IEAMoreReviewsFooterCell.getType());
  }
 // MARK: NSNotificationCenter notification handlers
 @Override
 protected void ReviewWasCreated(NSNotification note) {
   self.getReviewsRelatedModelQueryTask()
       .onSuccess(
           new Continuation<Boolean, Object>() {
             @Override
             public Object then(Task<Boolean> task) throws Exception {
               self.configureReviewsSection();
               return null;
             }
           });
 }
 private int getMoreReviewSectionIndex() {
   return (self.getReviewsSectionIndex() + Review.MAX_FETCHED_REVIEWS_IN_DetailPage + 1);
 }
 // MARK: Show all posted reviews for Restaurant,Recipe and Event.
 public void performSegueForSeeReviews() {
   self.performSegueWithIdentifier(MainSegueIdentifier.detailSeeReviewSegueIdentifier, self);
 }