Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 2681067

Browse files
SORMAS-Foundation#3279 fix NPE when deselecting Region + deselect District
1 parent 3d691b0 commit 2681067

1 file changed

Lines changed: 21 additions & 20 deletions

File tree

sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGridFilterForm.java

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import java.util.Date;
77
import java.util.stream.Stream;
88

9-
import org.apache.commons.lang3.StringUtils;
10-
119
import com.vaadin.server.Page;
1210
import com.vaadin.ui.CustomLayout;
1311
import com.vaadin.ui.HorizontalLayout;
@@ -69,24 +67,27 @@ protected void addFields() {
6967
addField(FieldConfiguration.pixelSized(TaskIndexDto.TASK_STATUS, 140));
7068

7169
final UserDto user = UserProvider.getCurrent().getUser();
72-
if (user.getRegion() == null && user.getDistrict() == null) {
73-
final ComboBox regionField = addField(FieldConfiguration.pixelSized(TaskIndexDto.REGION, 200));
74-
regionField.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
75-
76-
final ComboBox districtField = addDistrictField();
77-
districtField.setEnabled(false);
78-
79-
regionField.addValueChangeListener(e -> {
80-
RegionReferenceDto region = (RegionReferenceDto) e.getProperty().getValue();
81-
if (StringUtils.isNotBlank(region.getUuid())) {
82-
districtField.setEnabled(true);
83-
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
84-
} else {
85-
districtField.setEnabled(false);
86-
}
87-
});
88-
} else if (user.getDistrict() == null) {
89-
FieldHelper.updateItems(addDistrictField(), FacadeProvider.getDistrictFacade().getAllActiveByRegion(user.getRegion().getUuid()));
70+
if (user.getDistrict() == null) {
71+
if (user.getRegion() == null) {
72+
final ComboBox regionField = addField(FieldConfiguration.pixelSized(TaskIndexDto.REGION, 200));
73+
regionField.addItems(FacadeProvider.getRegionFacade().getAllActiveAsReference());
74+
75+
final ComboBox districtField = addDistrictField();
76+
districtField.setEnabled(false);
77+
78+
regionField.addValueChangeListener(e -> {
79+
RegionReferenceDto region = (RegionReferenceDto) e.getProperty().getValue();
80+
boolean hasRegion = null != region;
81+
districtField.setEnabled(hasRegion);
82+
if (hasRegion) {
83+
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
84+
} else {
85+
districtField.setValue(null);
86+
}
87+
});
88+
} else {
89+
FieldHelper.updateItems(addDistrictField(), FacadeProvider.getDistrictFacade().getAllActiveByRegion(user.getRegion().getUuid()));
90+
}
9091
}
9192

9293
addField(FieldConfiguration.withCaptionAndPixelSized(TaskCriteria.FREE_TEXT, I18nProperties.getString(Strings.promptTaskSearchField), 200));

0 commit comments

Comments
 (0)