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

Commit 68f01f4

Browse files
1 parent 7121bf0 commit 68f01f4

1 file changed

Lines changed: 81 additions & 40 deletions

File tree

sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseFilterForm.java

Lines changed: 81 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
package de.symeda.sormas.ui.caze;
22

3-
import static de.symeda.sormas.ui.utils.LayoutUtil.filterLocs;
4-
import static de.symeda.sormas.ui.utils.LayoutUtil.filterLocsCss;
5-
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
6-
7-
import java.util.Date;
8-
import java.util.stream.Stream;
9-
103
import com.vaadin.server.Page;
114
import com.vaadin.server.Sizeable;
125
import com.vaadin.ui.CustomLayout;
@@ -19,7 +12,6 @@
1912
import com.vaadin.v7.ui.ComboBox;
2013
import com.vaadin.v7.ui.Field;
2114
import com.vaadin.v7.ui.TextField;
22-
2315
import de.symeda.sormas.api.FacadeProvider;
2416
import de.symeda.sormas.api.caze.CaseClassification;
2517
import de.symeda.sormas.api.caze.CaseCriteria;
@@ -52,6 +44,13 @@
5244
import de.symeda.sormas.ui.utils.FieldConfiguration;
5345
import de.symeda.sormas.ui.utils.FieldHelper;
5446

47+
import java.util.Date;
48+
import java.util.stream.Stream;
49+
50+
import static de.symeda.sormas.ui.utils.LayoutUtil.filterLocs;
51+
import static de.symeda.sormas.ui.utils.LayoutUtil.filterLocsCss;
52+
import static de.symeda.sormas.ui.utils.LayoutUtil.loc;
53+
5554
public class CaseFilterForm extends AbstractFilterForm<CaseCriteria> {
5655

5756
private static final long serialVersionUID = -8326451364091398731L;
@@ -287,13 +286,16 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
287286

288287
ComboBox districtField = getField(CaseDataDto.DISTRICT);
289288
ComboBox communityField = getField(CaseDataDto.COMMUNITY);
289+
ComboBox facilityTypeGroupField = getField(CaseCriteria.FACILITY_TYPE_GROUP);
290290
ComboBox facilityTypeField = getField(CaseCriteria.FACILITY_TYPE);
291291
ComboBox facilityField = getField(CaseDataDto.HEALTH_FACILITY);
292292
ComboBox pointOfEntryField = getField(CaseDataDto.POINT_OF_ENTRY);
293+
ComboBox caseOriginField = getField(CaseDataDto.CASE_ORIGIN);
293294

294295
UserDto user = UserProvider.getCurrent().getUser();
295296
DistrictReferenceDto currentDistrict = user.getDistrict() != null ? user.getDistrict() : (DistrictReferenceDto) districtField.getValue();
296-
CaseOrigin currentCaseOrigin = (CaseOrigin) getField(CaseDataDto.CASE_ORIGIN).getValue();
297+
CaseOrigin currentCaseOrigin =
298+
caseOriginField != null ? (CaseOrigin) getField(CaseDataDto.CASE_ORIGIN).getValue() : CaseOrigin.POINT_OF_ENTRY;
297299

298300
switch (propertyId) {
299301
case CaseDataDto.REGION: {
@@ -304,22 +306,33 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
304306
enableFields(CaseDataDto.DISTRICT);
305307
FieldHelper.updateItems(districtField, FacadeProvider.getDistrictFacade().getAllActiveByRegion(region.getUuid()));
306308

307-
clearAndDisableFields(
308-
CaseDataDto.COMMUNITY,
309-
CaseCriteria.FACILITY_TYPE_GROUP,
310-
CaseCriteria.FACILITY_TYPE,
311-
CaseDataDto.HEALTH_FACILITY);
309+
clearAndDisableFields(CaseDataDto.COMMUNITY);
310+
311+
if (facilityField != null) {
312+
clearAndDisableFields(CaseDataDto.HEALTH_FACILITY);
313+
}
314+
if (facilityTypeField != null) {
315+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE);
316+
}
317+
if (facilityTypeGroupField != null) {
318+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE_GROUP);
319+
}
312320

313321
if (pointOfEntryField != null) {
314322
pointOfEntryField.setEnabled(false);
315323
}
316324
} else {
317-
clearAndDisableFields(
318-
CaseDataDto.DISTRICT,
319-
CaseDataDto.COMMUNITY,
320-
CaseCriteria.FACILITY_TYPE_GROUP,
321-
CaseCriteria.FACILITY_TYPE,
322-
CaseDataDto.HEALTH_FACILITY);
325+
clearAndDisableFields(CaseDataDto.DISTRICT, CaseDataDto.COMMUNITY);
326+
327+
if (facilityField != null) {
328+
clearAndDisableFields(CaseDataDto.HEALTH_FACILITY);
329+
}
330+
if (facilityTypeField != null) {
331+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE);
332+
}
333+
if (facilityTypeGroupField != null) {
334+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE_GROUP);
335+
}
323336

324337
if (pointOfEntryField != null) {
325338
pointOfEntryField.setEnabled(false);
@@ -334,8 +347,16 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
334347

335348
if (!DataHelper.equal(newDistrict, criteria.getDistrict())) {
336349
if (newDistrict != null) {
337-
enableFields(CaseDataDto.COMMUNITY, CaseCriteria.FACILITY_TYPE_GROUP);
338-
clearAndDisableFields(CaseCriteria.FACILITY_TYPE, CaseDataDto.HEALTH_FACILITY);
350+
communityField.setEnabled(true);
351+
if (facilityTypeGroupField != null) {
352+
facilityTypeGroupField.setEnabled(true);
353+
}
354+
if (facilityField != null) {
355+
clearAndDisableFields(CaseDataDto.HEALTH_FACILITY);
356+
}
357+
if (facilityTypeField != null) {
358+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE);
359+
}
339360
FieldHelper.updateItems(communityField, FacadeProvider.getCommunityFacade().getAllActiveByDistrict(newDistrict.getUuid()));
340361

341362
if (pointOfEntryField != null && currentCaseOrigin == CaseOrigin.POINT_OF_ENTRY) {
@@ -345,11 +366,17 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
345366
FacadeProvider.getPointOfEntryFacade().getAllActiveByDistrict(newDistrict.getUuid(), true));
346367
}
347368
} else {
348-
clearAndDisableFields(
349-
CaseDataDto.COMMUNITY,
350-
CaseCriteria.FACILITY_TYPE_GROUP,
351-
CaseCriteria.FACILITY_TYPE,
352-
CaseDataDto.HEALTH_FACILITY);
369+
clearAndDisableFields(CaseDataDto.COMMUNITY);
370+
371+
if (facilityField != null) {
372+
clearAndDisableFields(CaseDataDto.HEALTH_FACILITY);
373+
}
374+
if (facilityTypeGroupField != null) {
375+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE_GROUP);
376+
}
377+
if (facilityTypeField != null) {
378+
clearAndDisableFields(CaseCriteria.FACILITY_TYPE);
379+
}
353380

354381
if (pointOfEntryField != null) {
355382
clearAndDisableFields(CaseDataDto.POINT_OF_ENTRY);
@@ -362,13 +389,15 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
362389
case CaseDataDto.COMMUNITY: {
363390
CommunityReferenceDto community = (CommunityReferenceDto) event.getProperty().getValue();
364391
if (!DataHelper.equal(community, criteria.getCommunity())) {
365-
facilityField.setValue(null);
392+
if (facilityField != null) {
393+
facilityField.setValue(null);
394+
}
366395

367-
FacilityType facilityType = (FacilityType) facilityTypeField.getValue();
396+
FacilityType facilityType = facilityTypeField != null ? (FacilityType) facilityTypeField.getValue() : null;
368397

369-
if (facilityType == null) {
398+
if (facilityType == null && facilityField != null) {
370399
facilityField.removeAllItems();
371-
} else {
400+
} else if (facilityField != null) {
372401
if (community == null) {
373402
FieldHelper.updateItems(
374403
facilityField,
@@ -495,15 +524,23 @@ protected void applyDependenciesOnNewValue(CaseCriteria criteria) {
495524
if (user.getDistrict() != null && user.getCommunity() == null) {
496525
communityField.addItems(FacadeProvider.getCommunityFacade().getAllActiveByDistrict(user.getDistrict().getUuid()));
497526
communityField.setEnabled(true);
498-
typeGroupField.setEnabled(true);
527+
if (typeGroupField != null) {
528+
typeGroupField.setEnabled(true);
529+
}
499530
} else if (criteria.getDistrict() != null) {
500531
communityField.addItems(FacadeProvider.getCommunityFacade().getAllActiveByDistrict(criteria.getDistrict().getUuid()));
501532
communityField.setEnabled(true);
502-
typeGroupField.setEnabled(true);
533+
if (typeGroupField != null) {
534+
typeGroupField.setEnabled(true);
535+
}
503536
} else {
504537
communityField.setEnabled(false);
505-
typeGroupField.setEnabled(false);
506-
typeField.setEnabled(false);
538+
if (typeGroupField != null) {
539+
typeGroupField.setEnabled(false);
540+
}
541+
if (typeField != null) {
542+
typeField.setEnabled(false);
543+
}
507544
}
508545

509546
ComboBox facilityField = getField(CaseDataDto.HEALTH_FACILITY);
@@ -516,8 +553,12 @@ protected void applyDependenciesOnNewValue(CaseCriteria criteria) {
516553

517554
if (district == null) {
518555
communityField.setEnabled(false);
519-
typeGroupField.setEnabled(false);
520-
typeField.setEnabled(false);
556+
if (typeGroupField != null) {
557+
typeGroupField.setEnabled(false);
558+
}
559+
if (typeField != null) {
560+
typeField.setEnabled(false);
561+
}
521562
if (facilityField != null) {
522563
facilityField.setEnabled(false);
523564
}
@@ -542,13 +583,13 @@ protected void applyDependenciesOnNewValue(CaseCriteria criteria) {
542583
}
543584
}
544585

545-
if (district != null && typeGroup != null) {
586+
if (district != null && typeGroup != null && typeField != null) {
546587
FacilityType facilityType = (FacilityType) typeField.getValue();
547588
typeField.removeAllItems();
548589
typeField.setEnabled(true);
549590
FieldHelper.updateEnumData(typeField, FacilityType.getAccommodationTypes(typeGroup));
550591
typeField.setValue(facilityType);
551-
} else {
592+
} else if (typeField != null) {
552593
typeField.setEnabled(false);
553594
}
554595

@@ -560,7 +601,7 @@ protected void applyDependenciesOnNewValue(CaseCriteria criteria) {
560601
} else {
561602
facilityField.addItems(FacadeProvider.getFacilityFacade().getActiveFacilitiesByCommunityAndType(community, type, true, false));
562603
}
563-
} else {
604+
} else if (facilityField != null) {
564605
facilityField.setEnabled(false);
565606
}
566607

0 commit comments

Comments
 (0)