private void updateTests(List<TaskDataDto> tests) { MultiSelectionModel<TaskDataDto> model = (MultiSelectionModel) testDataGrid.getSelectionModel(); previousSelectedSet.addAll(model.getSelectedSet()); model.clear(); testDataGrid.redraw(); testDataGrid.setRowData(tests); if (chosenSessions.size() == 1) { metricPanel.getSelectionModel().clear(); final boolean selectTestsFinal = selectTests; final String sessionId = chosenSessions.get(0); PlotProviderService.Async.getInstance() .getSessionScopePlotList( sessionId, new AsyncCallback<Set<String>>() { @Override public void onFailure(Throwable throwable) { throwable.printStackTrace(); } @Override public void onSuccess(Set<String> plotNames) { sessionPlotPanel.update(sessionId, plotNames); if (!selectTestsFinal) { sessionPlotPanel.setSelected(place.getSessionTrends()); } sessionPlotPanel .getSelectionModel() .addSelectionChangeHandler(new SessionScopePlotSelectionChangedHandler()); SelectionChangeEvent.fire(sessionPlotPanel.getSelectionModel()); } }); } makeSelectionOnTaskDataGrid(model, tests); }