From ce8ef5097cf84ab8132b13d4942a6a4ae1d54809 Mon Sep 17 00:00:00 2001 From: nmirasch Date: Fri, 3 Jun 2016 13:26:26 +0200 Subject: [PATCH 1/2] jobs list pagination not depending on totalRowSize. --- .../requestlist/RequestListPresenter.java | 15 +++++---------- .../list/base/AbstractListPresenter.java | 8 ++++---- .../list/base/AbstractListPresenterTest.java | 4 ++-- .../grid/AbstractTasksListGridPresenter.java | 18 +++++++++--------- ...cessInstanceWithVariablesListPresenter.java | 10 +++++----- 5 files changed, 25 insertions(+), 30 deletions(-) diff --git a/jbpm-console-ng-executor-service/jbpm-console-ng-executor-service-client/src/main/java/org/jbpm/console/ng/es/client/editors/requestlist/RequestListPresenter.java b/jbpm-console-ng-executor-service/jbpm-console-ng-executor-service-client/src/main/java/org/jbpm/console/ng/es/client/editors/requestlist/RequestListPresenter.java index 4dffbc683c..470ab2bcd0 100644 --- a/jbpm-console-ng-executor-service/jbpm-console-ng-executor-service-client/src/main/java/org/jbpm/console/ng/es/client/editors/requestlist/RequestListPresenter.java +++ b/jbpm-console-ng-executor-service/jbpm-console-ng-executor-service-client/src/main/java/org/jbpm/console/ng/es/client/editors/requestlist/RequestListPresenter.java @@ -212,17 +212,12 @@ public void callback(DataSet dataSet) { dataSetQueryHelper.getColumnStringValue(dataSet, COLUMN_BUSINESSKEY, i))); } - PageResponse requestSummaryPageResponse = new PageResponse(); - requestSummaryPageResponse.setPageRowList(myRequestSumaryFromDataSet); - requestSummaryPageResponse.setStartRowIndex(visibleRange.getStart()); - requestSummaryPageResponse.setTotalRowSize(dataSet.getRowCountNonTrimmed()); - requestSummaryPageResponse.setTotalRowSizeExact(true); - if (visibleRange.getStart() + dataSet.getRowCount() == dataSet.getRowCountNonTrimmed()) { - requestSummaryPageResponse.setLastPage(true); - } else { - requestSummaryPageResponse.setLastPage(false); + boolean lastPageExactCount=false; + if( dataSet.getRowCount() < view.getListGrid().getPageSize()) { + lastPageExactCount=true; } - updateDataOnCallback(requestSummaryPageResponse); + updateDataOnCallback(myRequestSumaryFromDataSet,visibleRange.getStart(),visibleRange.getStart()+ myRequestSumaryFromDataSet.size(), lastPageExactCount); + } } }); diff --git a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java index 5078e947ff..46d2cc83a7 100644 --- a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java +++ b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java @@ -93,7 +93,7 @@ protected void updateRefreshTimer() { if (refreshTimer == null) { refreshTimer = new Timer() { public void run() { - getData(dataProvider.getDataDisplays().iterator().next().getVisibleRange()); + getData(getListView().getListGrid().getVisibleRange()); } }; }else{ @@ -130,11 +130,11 @@ public void updateDataOnCallback(PageResponse response){ updateRefreshTimer(); } - public void updateDataOnCallback(List instanceSummaries, int startRange, boolean lastPage){ + public void updateDataOnCallback(List instanceSummaries, int startRange, int totalRowCount, boolean isExact){ getListView().hideBusyIndicator(); - dataProvider.updateRowCount(instanceSummaries.size() + startRange, - lastPage); + dataProvider.updateRowCount(totalRowCount, + isExact); dataProvider.updateRowData(startRange, instanceSummaries); diff --git a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java index 13b2adb70e..c49c1cdc62 100644 --- a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java +++ b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java @@ -135,7 +135,7 @@ public void testUpDateDataOnCallBackFirstPage() { int startRange = 0; testListPresenter.setDataProvider(dataProviderMock); - testListPresenter.updateDataOnCallback(instanceSummaries, startRange, false); + testListPresenter.updateDataOnCallback(instanceSummaries, startRange, startRange + instanceSummaries.size(), false); verify(dataProviderMock).updateRowCount(2, false); verify(dataProviderMock).updateRowData(0, instanceSummaries); @@ -150,7 +150,7 @@ public void testUpDateDataOnCallBackMiddlePage() { int startRange = 10; testListPresenter.setDataProvider(dataProviderMock); - testListPresenter.updateDataOnCallback(instanceSummaries, startRange, true); + testListPresenter.updateDataOnCallback(instanceSummaries, startRange,startRange + instanceSummaries.size(), true); verify(dataProviderMock).updateRowCount(startRange + instanceSummaries.size(), true); verify(dataProviderMock).updateRowData(startRange, instanceSummaries); diff --git a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/grid/AbstractTasksListGridPresenter.java b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/grid/AbstractTasksListGridPresenter.java index 4124dfbc0b..4cdb374c97 100644 --- a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/grid/AbstractTasksListGridPresenter.java +++ b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/grid/AbstractTasksListGridPresenter.java @@ -184,7 +184,7 @@ public void callback(List taskSummaries) { if ( taskSummaries.size() < visibleRange.getLength() ) { lastPage = true; } - updateDataOnCallback(taskSummaries,visibleRange.getStart(),lastPage); + updateDataOnCallback(taskSummaries,visibleRange.getStart(), visibleRange.getStart() + taskSummaries.size(), lastPage); } }).getActiveTasks(selectedServerTemplate, visibleRange.getStart()/visibleRange.getLength(), visibleRange.getLength()); @@ -253,15 +253,15 @@ public void callback(DataSet dataSet) { List ops = tableSettings.getDataSetLookup().getOperationList(); String filterValue = isFilteredByTaskName(ops); //Add here the check to add the domain data columns taskName? - boolean lastPage=false; + boolean lastPageExactCount = false; if( dataSet.getRowCount() < view.getListGrid().getPageSize()) { - lastPage=true; + lastPageExactCount = true; } if (filterValue != null) { - getDomainSpecifDataForTasks(startRange, filterValue, myTasksFromDataSet, lastPage); + getDomainSpecifDataForTasks(startRange, filterValue, myTasksFromDataSet, lastPageExactCount); } else { - updateDataOnCallback(myTasksFromDataSet,startRange,lastPage); + updateDataOnCallback(myTasksFromDataSet, startRange,startRange + myTasksFromDataSet.size(), lastPageExactCount); } } @@ -297,7 +297,7 @@ protected String isFilteredByTaskName(List ops) { } - public void getDomainSpecifDataForTasks(final int startRange, String filterValue, final List myTasksFromDataSet, boolean lastPage) { + public void getDomainSpecifDataForTasks(final int startRange, String filterValue, final List myTasksFromDataSet, boolean lastPageExactCount) { FilterSettings variablesTableSettings = view.getVariablesTableSettings(filterValue); variablesTableSettings.setTablePageSize(-1); @@ -317,11 +317,11 @@ public void getDomainSpecifDataForTasks(final int startRange, String filterValue filter.addFilterColumn(filter1); variablesTableSettings.getDataSetLookup().addOperation(filter); - dataSetQueryHelperDomainSpecific.lookupDataSet(0, createDataSetDomainSpecificCallback(startRange, myTasksFromDataSet, variablesTableSettings.getDataSet(),lastPage)); + dataSetQueryHelperDomainSpecific.lookupDataSet(0, createDataSetDomainSpecificCallback(startRange, myTasksFromDataSet, variablesTableSettings.getDataSet(),lastPageExactCount)); } - protected DataSetReadyCallback createDataSetDomainSpecificCallback(final int startRange, final List instances, final DataSet dataset, boolean lastPage) { + protected DataSetReadyCallback createDataSetDomainSpecificCallback(final int startRange, final List instances, final DataSet dataset, boolean lastPageExactCount) { return new AbstractDataSetReadyCallback(errorPopup, view, dataset) { @Override public void callback(DataSet dataSet) { @@ -341,7 +341,7 @@ public void callback(DataSet dataSet) { } view.addDomainSpecifColumns(view.getListGrid(), columns); } - updateDataOnCallback(instances,startRange,lastPage); + updateDataOnCallback(instances, startRange, startRange + instances.size(), lastPageExactCount); } }; diff --git a/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/main/java/org/jbpm/console/ng/pr/client/editors/instance/list/variables/dash/DataSetProcessInstanceWithVariablesListPresenter.java b/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/main/java/org/jbpm/console/ng/pr/client/editors/instance/list/variables/dash/DataSetProcessInstanceWithVariablesListPresenter.java index 8be6970d3e..54b11a18b1 100644 --- a/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/main/java/org/jbpm/console/ng/pr/client/editors/instance/list/variables/dash/DataSetProcessInstanceWithVariablesListPresenter.java +++ b/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/main/java/org/jbpm/console/ng/pr/client/editors/instance/list/variables/dash/DataSetProcessInstanceWithVariablesListPresenter.java @@ -189,11 +189,11 @@ public void getData( final Range visibleRange ) { remoteRuntimeDataService.call(new RemoteCallback>() { @Override public void callback(List processInstanceSummaries) { - boolean lastPage=false; + boolean lastPageExactCount=false; if ( processInstanceSummaries.size() < visibleRange.getLength() ) { - lastPage = true; + lastPageExactCount = true; } - updateDataOnCallback(processInstanceSummaries,visibleRange.getStart(),lastPage); + updateDataOnCallback(processInstanceSummaries, visibleRange.getStart(), visibleRange.getStart()+processInstanceSummaries.size(), lastPageExactCount); } }).getProcessInstances(selectedServerTemplate, statuses, visibleRange.getStart()/visibleRange.getLength(), visibleRange.getLength()); @@ -242,7 +242,7 @@ public void callback( DataSet dataSet ) { } view.addDomainSpecifColumns(view.getListGrid(), columns); - updateDataOnCallback(myProcessInstancesFromDataSet, startRange, lastPage); + updateDataOnCallback(myProcessInstancesFromDataSet, startRange, startRange+myProcessInstancesFromDataSet.size(), lastPage); } }; @@ -272,7 +272,7 @@ public void callback( DataSet dataSet ) { if ( filterValue != null ) { getDomainSpecifDataForProcessInstances( startRange, filterValue, lastPage ); } else { - updateDataOnCallback(myProcessInstancesFromDataSet, startRange, lastPage); + updateDataOnCallback(myProcessInstancesFromDataSet, startRange, startRange+myProcessInstancesFromDataSet.size(), lastPage); } } From 20a4df0fa653495d2a5f1983c0ca1d43c3938fbe Mon Sep 17 00:00:00 2001 From: nmirasch Date: Mon, 6 Jun 2016 17:23:15 +0200 Subject: [PATCH 2/2] remove OEID alias from taskqueries. Fixed test and refreshGrid errors --- .../list/base/AbstractListPresenter.java | 4 +++- .../list/base/AbstractListPresenterTest.java | 20 ++++++++++++++++++- .../ng/ht/model/TaskDataSetConstants.java | 2 +- .../backend/server/DataSetDefsBootstrap.java | 4 ++-- .../ProcessVariableListPresenterTest.java | 5 +++++ 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java index 46d2cc83a7..cd5f63a495 100644 --- a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java +++ b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/main/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenter.java @@ -155,7 +155,9 @@ public void onRefresh() { } public void refreshGrid() { - getListView().getListGrid().setVisibleRangeAndClearData(getListView().getListGrid().getVisibleRange(),true); + if(getListView().getListGrid()!=null) { + getListView().getListGrid().setVisibleRangeAndClearData(getListView().getListGrid().getVisibleRange(), true); + } } protected void onSearchEvent(@Observes SearchEvent searchEvent) { diff --git a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java index c49c1cdc62..30bc8936f1 100644 --- a/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java +++ b/jbpm-console-ng-generic/jbpm-console-ng-generic-client/src/test/java/org/jbpm/console/ng/gc/client/list/base/AbstractListPresenterTest.java @@ -25,7 +25,7 @@ import com.google.gwt.view.client.Range; import com.google.gwtmockito.GwtMockitoTestRunner; import org.apache.commons.lang3.RandomStringUtils; -import org.drools.core.spi.DataProvider; +import org.jbpm.console.ng.gc.client.experimental.grid.base.ExtendedPagedTable; import org.jbpm.console.ng.gc.client.list.base.events.SearchEvent; import org.junit.Before; import org.junit.Test; @@ -46,6 +46,9 @@ public class AbstractListPresenterTest { @Mock private AbstractListView.ListView viewMock; + @Mock + ExtendedPagedTable extendedPagedTable; + @Mock HasData next; @@ -157,4 +160,19 @@ public void testUpDateDataOnCallBackMiddlePage() { } + @Test + public void testRefreshGrid() { + + Range range = new Range(0,5); + + when(viewMock.getListGrid()).thenReturn(extendedPagedTable); + when(extendedPagedTable.getVisibleRange()).thenReturn(range); + + testListPresenter.refreshGrid(); + + verify(extendedPagedTable).setVisibleRangeAndClearData(range, true); + + } + + } \ No newline at end of file diff --git a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-api/src/main/java/org/jbpm/console/ng/ht/model/TaskDataSetConstants.java b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-api/src/main/java/org/jbpm/console/ng/ht/model/TaskDataSetConstants.java index d2b968f592..ea6e413bac 100644 --- a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-api/src/main/java/org/jbpm/console/ng/ht/model/TaskDataSetConstants.java +++ b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-api/src/main/java/org/jbpm/console/ng/ht/model/TaskDataSetConstants.java @@ -38,7 +38,7 @@ public final class TaskDataSetConstants { public static final String COLUMN_STATUS = "status"; public static final String COLUMN_TASK_ID = "taskId"; public static final String COLUMN_WORK_ITEM_ID = "workItemId"; - public static final String COLUMN_ORGANIZATIONAL_ENTITY = "oeid"; + public static final String COLUMN_ORGANIZATIONAL_ENTITY = "id"; public static final String COLUMN_TASK_VARIABLE_TASK_ID = "taskId"; public static final String COLUMN_TASK_VARIABLE_TASK_NAME = "TASKNAME"; diff --git a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-backend/src/main/java/org/jbpm/console/ng/ht/backend/server/DataSetDefsBootstrap.java b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-backend/src/main/java/org/jbpm/console/ng/ht/backend/server/DataSetDefsBootstrap.java index 6730663545..5c1e468ea0 100644 --- a/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-backend/src/main/java/org/jbpm/console/ng/ht/backend/server/DataSetDefsBootstrap.java +++ b/jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-backend/src/main/java/org/jbpm/console/ng/ht/backend/server/DataSetDefsBootstrap.java @@ -124,7 +124,7 @@ protected void registerDataSetDefinitions() { "t.status, " + "t.taskId, " + "t.workItemId, " + - "oe.id as OEID " + + "oe.id " + "from " + "AuditTaskImpl t, " + "PeopleAssignments_PotOwners po, " + @@ -172,7 +172,7 @@ protected void registerDataSetDefinitions() { "t.status, " + "t.taskId, " + "t.workItemId, " + - "oe.id as OEID " + + "oe.id " + "from " + "AuditTaskImpl t, " + "PeopleAssignments_BAs bas, " + diff --git a/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/test/java/org/jbpm/console/ng/pr/client/editors/variables/list/ProcessVariableListPresenterTest.java b/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/test/java/org/jbpm/console/ng/pr/client/editors/variables/list/ProcessVariableListPresenterTest.java index 65786fedbf..8a73e0dd1a 100644 --- a/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/test/java/org/jbpm/console/ng/pr/client/editors/variables/list/ProcessVariableListPresenterTest.java +++ b/jbpm-console-ng-process-runtime/jbpm-console-ng-process-runtime-client/src/test/java/org/jbpm/console/ng/pr/client/editors/variables/list/ProcessVariableListPresenterTest.java @@ -22,6 +22,7 @@ import com.google.gwtmockito.GwtMockitoTestRunner; import org.jboss.errai.common.client.api.Caller; import org.jbpm.console.ng.bd.model.ProcessVariableSummary; +import org.jbpm.console.ng.gc.client.experimental.grid.base.ExtendedPagedTable; import org.jbpm.console.ng.pr.model.events.ProcessInstanceSelectionEvent; import org.jbpm.console.ng.pr.service.ProcessVariablesService; import org.junit.Before; @@ -39,6 +40,9 @@ public class ProcessVariableListPresenterTest { @Mock ProcessVariableListPresenter.ProcessVariableListView view; + @Mock + ExtendedPagedTable extendedPagedTable; + Caller variablesServicesCaller; @Mock @@ -61,6 +65,7 @@ public void testLoadVariableHistory() { final ProcessVariableSummary summary = new ProcessVariableSummary(variableName, "variableInstanceId", processInstanceId, "oldValue", "newValue", System.currentTimeMillis(), "type"); final List summaries = Arrays.asList(summary); when(processVariablesService.getVariableHistory(anyString(), eq(deploymentId), eq(processInstanceId), eq(variableName))).thenReturn(summaries); + when(view.getListGrid()).thenReturn(extendedPagedTable); final ProcessInstanceSelectionEvent event = new ProcessInstanceSelectionEvent(deploymentId, processInstanceId, "processDefId", "processDefName", 1);