private void makeSelectionOnTaskDataGrid( MultiSelectionModel<TaskDataDto> model, List<TaskDataDto> tests) { if (selectTests) { if (!previousSelectedSet.isEmpty()) { for (TaskDataDto taskDataDto : tests) { for (TaskDataDto taskDataPrevious : previousSelectedSet) { if (taskDataDto.getTaskName().equals(taskDataPrevious.getTaskName())) { model.setSelected(taskDataDto, true); } } } SelectionChangeEvent.fire(testDataGrid.getSelectionModel()); } } else { Set<TestsMetrics> testsMetrics = place.getSelectedTestsMetrics(); for (TaskDataDto taskDataDto : tests) { for (TestsMetrics testMetric : testsMetrics) { if (testMetric.getTestName().equals(taskDataDto.getTaskName())) { model.setSelected(taskDataDto, true); } } } model.addSelectionChangeHandler(new TestSelectChangeHandler()); SelectionChangeEvent.fire(model); } previousSelectedSet.clear(); }
@Override public void onSelectionChange(SelectionChangeEvent event) { Set<TaskDataDto> selected = ((MultiSelectionModel<TaskDataDto>) event.getSource()).getSelectedSet(); List<TaskDataDto> result = new ArrayList<TaskDataDto>(selected); TaskDataTreeViewModel taskDataTreeViewModel = (TaskDataTreeViewModel) taskDetailsTree.getTreeViewModel(); MultiSelectionModel<PlotNameDto> plotNameSelectionModel = taskDataTreeViewModel.getSelectionModel(); // chosen plots Set<PlotNameDto> plotTempSet = plotNameSelectionModel.getSelectedSet(); // chosen metrics Set<MetricNameDto> metricTempSet = metricPanel.getSelected(); chosenPlots.clear(); // Clear markings dto map markingsMap.clear(); taskDataTreeViewModel.clear(); plotNameSelectionModel.clear(); metricPanel.updateTests(result); taskDataTreeViewModel.populateTaskList(result); // Populate available plots tree level for each task for selected session for (TaskDataDto taskDataDto : result) { taskDataTreeViewModel .getPlotNameDataProviders() .put( taskDataDto, new TaskPlotNamesAsyncDataProvider(taskDataDto, summaryPanel.getSessionIds())); } summaryPanel.updateTests(result); if (selectTests) { makeSelectionForMetricPanel(metricTempSet, metricPanel, result); makeSelectionForTaskDetailsTree(plotTempSet, plotNameSelectionModel, result); } else { selectTests = true; ifItWasLink(result, metricPanel, taskDataTreeViewModel); } metricTempSet.clear(); plotTempSet.clear(); }