Source:
<code>public void loadProcessInstanceLogs() { try { final FilterSettings currentTableSettings = dataSetQueryHelper.getCurrentTableSettings(); currentTableSettings.setServerTemplateId(this.serverTemplateId); currentTableSettings.setTablePageSize(PAGE_SIZE); <START> currentTableSettings.addSorOperation(new ColumnSort(COLUMN_LOG_DATE, <END> SortOrder.DESCENDING), new ColumnSort(COLUMN_LOG_ID, SortOrder.DESCENDING), new ColumnSort(COLUMN_LOG_TYPE, SortOrder.DESCENDING)); dataSetQueryHelper.setCurrentTableSettings(currentTableSettings); dataSetQueryHelper.setDataSetHandler(currentTableSettings); dataSetQueryHelper.resetLookupOperations(); dataSetQueryHelper.enableMultipleColumnSorting(true); dataSetQueryHelper.lookupDataSet( currentPage * getPageSize(), new DataSetReadyCallback() { @Override public void callback(DataSet dataSet) { if (dataSet != null && dataSetQueryHelper.getCurrentTableSettings().getKey().equals(currentTableSettings.getKey())) { List<ProcessInstanceLogSummary> logs = new ArrayList<ProcessInstanceLogSummary>(); for (int i = 0; i < dataSet.getRowCount(); i++) { logs.add(new ProcessInstanceLogSummaryDataSetMapper().apply(dataSet, i)); } visibleLogs.addAll(logs); view.hideLoadButton(logs.size() < PAGE_SIZE); view.setLogsList(visibleLogs); } } @Override public void notFound() { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.DataSetNotFound(currentTableSettings.getDataSet().getUUID())); } @Override public boolean onError(ClientRuntimeError error) { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.DataSetError(currentTableSettings.getDataSet().getUUID(), error.getMessage())); return false; } }); } catch (Exception e) { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.UnexpectedError(e.getMessage())); } }</code><technical_language>expect sort order change, thinking this done filtersettings creation time, avoid do manipulations table settings, wdyt? _FilterSettingsBuilderHelper_ need improved accept multiple columns</technical_language>

Target:
public void loadProcessInstanceLogs() { try { final FilterSettings currentTableSettings = dataSetQueryHelper.getCurrentTableSettings(); currentTableSettings.setServerTemplateId(this.serverTemplateId); currentTableSettings.setTablePageSize(PAGE_SIZE); dataSetQueryHelper.setCurrentTableSettings(currentTableSettings); dataSetQueryHelper.setDataSetHandler(currentTableSettings); dataSetQueryHelper.lookupDataSet( currentPage * getPageSize(), new DataSetReadyCallback() { @Override public void callback(DataSet dataSet) { if (dataSet != null && dataSetQueryHelper.getCurrentTableSettings().getKey().equals(currentTableSettings.getKey())) { List<ProcessInstanceLogSummary> logs = new ArrayList<ProcessInstanceLogSummary>(); for (int i = 0; i < dataSet.getRowCount(); i++) { logs.add(new ProcessInstanceLogSummaryDataSetMapper().apply(dataSet, i)); } visibleLogs.addAll(logs); view.hideLoadButton(logs.size() < PAGE_SIZE); view.setLogsList(visibleLogs.stream().collect(Collectors.toList())); } } @Override public void notFound() { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.DataSetNotFound(currentTableSettings.getDataSet().getUUID())); } @Override public boolean onError(ClientRuntimeError error) { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.DataSetError(currentTableSettings.getDataSet().getUUID(), error.getMessage())); return false; } }); } catch (Exception e) { errorPopup.showMessage(org.jbpm.workbench.common.client.resources.i18n.Constants.INSTANCE.UnexpectedError(e.getMessage())); } }