11package 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-
103import com .vaadin .server .Page ;
114import com .vaadin .server .Sizeable ;
125import com .vaadin .ui .CustomLayout ;
1912import com .vaadin .v7 .ui .ComboBox ;
2013import com .vaadin .v7 .ui .Field ;
2114import com .vaadin .v7 .ui .TextField ;
22-
2315import de .symeda .sormas .api .FacadeProvider ;
2416import de .symeda .sormas .api .caze .CaseClassification ;
2517import de .symeda .sormas .api .caze .CaseCriteria ;
5244import de .symeda .sormas .ui .utils .FieldConfiguration ;
5345import 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+
5554public 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