Skip to content

Commit

Permalink
changes
Browse files Browse the repository at this point in the history
  • Loading branch information
benitsch committed Aug 6, 2024
1 parent 6b936d5 commit b227bd3
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,55 +120,59 @@ public DataView getView(String viewName, Integer studyGroupId, Integer participa
return new DataView(
dataView,
dataView.chartType(),
addMissingAnswerOptions(viewName, dataViewData)
addMissingAnswerOptions(dataView, dataViewData)
);

}

private DataViewData addMissingAnswerOptions(String viewName, DataViewData dataViewData) {
private DataViewData addMissingAnswerOptions(DataViewInfoType dataView, DataViewData dataViewData) {
ArrayList<String> allPossibleAnswerOptions = (ArrayList<String>) this.properties.get("answers");
List<String> labels = new ArrayList<>(dataViewData.labels());
List<DataViewRow> rows = new ArrayList<>(dataViewData.rows());

switch (viewName) {
case "response_distribution":
switch (dataView) {
case response_distribution:
if (allPossibleAnswerOptions.size() == dataViewData.labels().size() || dataViewData.labels().isEmpty()) {
return dataViewData;
}
for (String item : allPossibleAnswerOptions) {
if (!dataViewData.labels().contains(item)) {
dataViewData.labels().add(item);
dataViewData.rows().get(0).values().add(0.0);
if (!labels.contains(item)) {
labels.add(item);
if (!rows.isEmpty()) {
rows.get(0).values().add(0.0);
}
}
}
break;
case "answers_by_group":
case answers_by_group:
if (allPossibleAnswerOptions.size() == dataViewData.rows().size() || dataViewData.rows().isEmpty()) {
return dataViewData;
}
for (String item : allPossibleAnswerOptions) {
if (dataViewData.rows().stream().noneMatch(v -> v.label().equals(item))) {
if (rows.stream().noneMatch(v -> v.label().equals(item))) {
ArrayList<Double> values = Stream.generate(() -> (Double) null)
.limit(dataViewData.labels().size()).collect(Collectors.toCollection(ArrayList::new));
.limit(labels.size()).collect(Collectors.toCollection(ArrayList::new));

dataViewData.rows().add(new DataViewRow(item, values));
rows.add(new DataViewRow(item, values));
}
}
break;
case "group_by_answers":
case group_by_answers:
if (allPossibleAnswerOptions.size() == dataViewData.labels().size() || dataViewData.labels().isEmpty()) {
return dataViewData;
}

for (String item : allPossibleAnswerOptions) {
if (!dataViewData.labels().contains(item)) {
dataViewData.labels().add(item);
for (DataViewRow row : dataViewData.rows()) {
if (!labels.contains(item)) {
labels.add(item);
for (DataViewRow row : rows) {
row.values().add(0.0);
}
}
}
break;
}

return dataViewData;
return new DataViewData(labels, rows);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,13 @@ private DataViewData processDataPreviewResponse(ViewConfig viewConfig, SearchRes

final Function<String, String> rowTitleResolver = createTitleResolver(viewConfig.rowAggregation(), studyId);
return new DataViewData(
labels,
List.copyOf(labels),
rowMap.entrySet().stream()
.map(e -> new DataViewRow(
rowTitleResolver.apply(e.getKey()),
e.getValue()
))
.collect(Collectors.toCollection(ArrayList::new))
.toList()
);
}

Expand Down

0 comments on commit b227bd3

Please sign in to comment.