@Override
 public FilterState getCurrentFilterState(IFilterView view) {
   FilterState filterState = new FilterState();
   filterState.setFromDate(view.getFromDate());
   filterState.setToDate(view.getToDate());
   filterState.setServiceType(view.getServiceType());
   return filterState;
 }
  @Override
  public void getReport(
      ReportFilterStateModel searchParam,
      FilterState currentFilterState,
      ITableController tableController) {
    Boolean isMunicipal = searchParam.getIsMunicipal();
    Boolean isRegional = searchParam.getIsRegional();

    List<Report> municipalReportList = null;
    if (isMunicipal) {
      searchParam.setIsMunicipal(true);
      searchParam.setIsRegional(false);
      municipalReportList = StatisticalReportDAO.getServicesReport(searchParam);
    }

    List<Report> regionalReportList = null;
    if (isRegional) {
      searchParam.setIsMunicipal(false);
      searchParam.setIsRegional(true);
      regionalReportList = StatisticalReportDAO.getServicesReport(searchParam);
    }

    createTableModel(
        searchParam,
        tableController,
        currentFilterState.getCheckedStatuses(),
        municipalReportList,
        regionalReportList);
  }
 @Override
 public boolean validateFitlerState(FilterState filterState) {
   return FilterStateValidator.validateDates(filterState.getFromDate(), filterState.getToDate());
 }