@Override
  public void getData(final Range visibleRange) {
    try {
      if (!isAddingDefaultFilters()) {
        FilterSettings currentTableSettings = dataSetQueryHelper.getCurrentTableSettings();
        if (currentTableSettings != null) {
          currentTableSettings.setTablePageSize(view.getListGrid().getPageSize());
          ColumnSortList columnSortList = view.getListGrid().getColumnSortList();
          // GWT.log( "-----PIVarList getData table name " + currentTableSettings.getTableName() );
          if (columnSortList != null && columnSortList.size() > 0) {
            dataSetQueryHelper.setLastOrderedColumn(
                (columnSortList.size() > 0)
                    ? columnSortList.get(0).getColumn().getDataStoreName()
                    : "");
            dataSetQueryHelper.setLastSortOrder(
                (columnSortList.size() > 0) && columnSortList.get(0).isAscending()
                    ? SortOrder.ASCENDING
                    : SortOrder.DESCENDING);
          } else {
            dataSetQueryHelper.setLastOrderedColumn(
                DataSetProcessInstanceListVariableViewImpl.VARIABLE_NAME);
            dataSetQueryHelper.setLastSortOrder(SortOrder.ASCENDING);
          }

          if (textSearchStr != null && textSearchStr.trim().length() > 0) {

            DataSetFilter filter = new DataSetFilter();
            List<ColumnFilter> filters = new ArrayList<ColumnFilter>();
            filters.add(
                likeTo(
                    DataSetProcessInstanceListVariableViewImpl.PROCESS_NAME,
                    "%" + textSearchStr.toLowerCase() + "%",
                    false));
            filters.add(
                likeTo(
                    DataSetProcessInstanceListVariableViewImpl.PROCESS_INSTANCE_ID,
                    "%" + textSearchStr.toLowerCase() + "%",
                    false));
            filters.add(
                likeTo(
                    DataSetProcessInstanceListVariableViewImpl.VARIABLE_VALUE,
                    "%" + textSearchStr.toLowerCase() + "%",
                    false));
            filter.addFilterColumn(OR(filters));

            if (currentTableSettings.getDataSetLookup().getFirstFilterOp() != null) {
              currentTableSettings
                  .getDataSetLookup()
                  .getFirstFilterOp()
                  .addFilterColumn(OR(filters));
            } else {
              currentTableSettings.getDataSetLookup().addOperation(filter);
            }
            textSearchStr = "";
          }
          dataSetQueryHelper.setDataSetHandler(currentTableSettings);
          dataSetQueryHelper.lookupDataSet(
              visibleRange.getStart(),
              new DataSetReadyCallback() {
                @Override
                public void callback(DataSet dataSet) {
                  if (dataSet != null) {
                    List<ProcessInstanceVariableSummary> myProcessInstancesFromDataSet =
                        new ArrayList<ProcessInstanceVariableSummary>();

                    for (int i = 0; i < dataSet.getRowCount(); i++) {
                      myProcessInstancesFromDataSet.add(
                          new ProcessInstanceVariableSummary(
                              dataSetQueryHelper.getColumnLongValue(
                                  dataSet,
                                  DataSetProcessInstanceListVariableViewImpl.PROCESS_INSTANCE_ID,
                                  i),
                              dataSetQueryHelper.getColumnStringValue(
                                  dataSet,
                                  DataSetProcessInstanceListVariableViewImpl.PROCESS_NAME,
                                  i),
                              dataSetQueryHelper.getColumnLongValue(
                                  dataSet,
                                  DataSetProcessInstanceListVariableViewImpl.VARIABLE_ID,
                                  i),
                              dataSetQueryHelper.getColumnStringValue(
                                  dataSet,
                                  DataSetProcessInstanceListVariableViewImpl.VARIABLE_NAME,
                                  i),
                              dataSetQueryHelper.getColumnStringValue(
                                  dataSet,
                                  DataSetProcessInstanceListVariableViewImpl.VARIABLE_VALUE,
                                  i)));
                    }
                    PageResponse<ProcessInstanceVariableSummary>
                        processInstanceSummaryPageResponse =
                            new PageResponse<ProcessInstanceVariableSummary>();
                    processInstanceSummaryPageResponse.setPageRowList(
                        myProcessInstancesFromDataSet);
                    processInstanceSummaryPageResponse.setStartRowIndex(visibleRange.getStart());
                    processInstanceSummaryPageResponse.setTotalRowSize(
                        dataSet.getRowCountNonTrimmed());
                    processInstanceSummaryPageResponse.setTotalRowSizeExact(true);
                    if (visibleRange.getStart() + dataSet.getRowCount()
                        == dataSet.getRowCountNonTrimmed()) {
                      processInstanceSummaryPageResponse.setLastPage(true);
                    } else {
                      processInstanceSummaryPageResponse.setLastPage(false);
                    }
                    DataSetProcessInstanceVariableListPresenter.this.updateDataOnCallback(
                        processInstanceSummaryPageResponse);
                  }
                  view.hideBusyIndicator();
                }

                @Override
                public void notFound() {
                  view.hideBusyIndicator();
                  errorPopup.showMessage(
                      "Not found DataSet with UUID [  "
                          + PROCESS_INSTANCE_WITH_VARIABLES_DATASET
                          + " ] ");
                  GWT.log(
                      "DataSet with UUID [  "
                          + PROCESS_INSTANCE_WITH_VARIABLES_DATASET
                          + " ] not found.");
                }

                @Override
                public boolean onError(final ClientRuntimeError error) {
                  view.hideBusyIndicator();
                  errorPopup.showMessage(
                      "DataSet with UUID [  "
                          + PROCESS_INSTANCE_WITH_VARIABLES_DATASET
                          + " ] error: "
                          + error.getThrowable());
                  GWT.log(
                      "DataSet with UUID [  "
                          + PROCESS_INSTANCE_WITH_VARIABLES_DATASET
                          + " ] error: ",
                      error.getThrowable());
                  return false;
                }
              });
        } else {
          view.hideBusyIndicator();
        }
      }
    } catch (Exception e) {
      GWT.log(
          "Error looking up dataset with UUID [ " + PROCESS_INSTANCE_WITH_VARIABLES_DATASET + " ]");
    }
  }