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+
310import com .vaadin .server .Page ;
411import com .vaadin .server .Sizeable ;
512import com .vaadin .ui .CustomLayout ;
1219import com .vaadin .v7 .ui .ComboBox ;
1320import com .vaadin .v7 .ui .Field ;
1421import com .vaadin .v7 .ui .TextField ;
22+
1523import de .symeda .sormas .api .FacadeProvider ;
1624import de .symeda .sormas .api .caze .CaseClassification ;
1725import de .symeda .sormas .api .caze .CaseCriteria ;
4452import de .symeda .sormas .ui .utils .FieldConfiguration ;
4553import de .symeda .sormas .ui .utils .FieldHelper ;
4654
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-
5455public class CaseFilterForm extends AbstractFilterForm <CaseCriteria > {
5556
5657 private static final long serialVersionUID = -8326451364091398731L ;
@@ -161,9 +162,7 @@ public void addMoreFilters(CustomLayout moreFiltersContainer) {
161162 }
162163
163164 ComboBox officerField = addField (moreFiltersContainer , FieldConfiguration .pixelSized (CaseDataDto .SURVEILLANCE_OFFICER , 140 ));
164- if (user .getRegion () != null ) {
165- officerField .addItems (FacadeProvider .getUserFacade ().getUsersByRegionAndRoles (user .getRegion (), UserRole .SURVEILLANCE_OFFICER ));
166- }
165+ officerField .addItems (FacadeProvider .getUserFacade ().getUsersByRegionAndRoles (user .getRegion (), UserRole .SURVEILLANCE_OFFICER ));
167166
168167 if (FacadeProvider .getFeatureConfigurationFacade ().isFeatureEnabled (FeatureType .CASE_FOLLOWUP )) {
169168 Field <?> followUpUntilTo = addField (
@@ -302,6 +301,8 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
302301 RegionReferenceDto region = user .getRegion () != null ? user .getRegion () : (RegionReferenceDto ) event .getProperty ().getValue ();
303302
304303 if (!DataHelper .equal (region , criteria .getRegion ())) {
304+ final ComboBox officerField = getField (CaseDataDto .SURVEILLANCE_OFFICER );
305+ officerField .removeAllItems ();
305306 if (region != null ) {
306307 enableFields (CaseDataDto .DISTRICT );
307308 FieldHelper .updateItems (districtField , FacadeProvider .getDistrictFacade ().getAllActiveByRegion (region .getUuid ()));
@@ -321,6 +322,7 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
321322 if (pointOfEntryField != null ) {
322323 pointOfEntryField .setEnabled (false );
323324 }
325+ officerField .addItems (FacadeProvider .getUserFacade ().getUsersByRegionAndRoles (region , UserRole .SURVEILLANCE_OFFICER ));
324326 } else {
325327 clearAndDisableFields (CaseDataDto .DISTRICT , CaseDataDto .COMMUNITY );
326328
@@ -337,6 +339,8 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
337339 if (pointOfEntryField != null ) {
338340 pointOfEntryField .setEnabled (false );
339341 }
342+
343+ officerField .addItems (FacadeProvider .getUserFacade ().getUsersByRegionAndRoles (user .getRegion (), UserRole .SURVEILLANCE_OFFICER ));
340344 }
341345 }
342346
@@ -346,6 +350,8 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
346350 DistrictReferenceDto newDistrict = (DistrictReferenceDto ) event .getProperty ().getValue ();
347351
348352 if (!DataHelper .equal (newDistrict , criteria .getDistrict ())) {
353+ final ComboBox officerField = getField (CaseDataDto .SURVEILLANCE_OFFICER );
354+ officerField .removeAllItems ();
349355 if (newDistrict != null ) {
350356 communityField .setEnabled (true );
351357 if (facilityTypeGroupField != null ) {
@@ -365,6 +371,8 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
365371 pointOfEntryField ,
366372 FacadeProvider .getPointOfEntryFacade ().getAllActiveByDistrict (newDistrict .getUuid (), true ));
367373 }
374+
375+ officerField .addItems (FacadeProvider .getUserFacade ().getUserRefsByDistrict (newDistrict , false , UserRole .SURVEILLANCE_OFFICER ));
368376 } else {
369377 clearAndDisableFields (CaseDataDto .COMMUNITY );
370378
@@ -381,6 +389,16 @@ protected void applyDependenciesOnFieldChange(String propertyId, Property.ValueC
381389 if (pointOfEntryField != null ) {
382390 clearAndDisableFields (CaseDataDto .POINT_OF_ENTRY );
383391 }
392+
393+ final Object region = getField (CaseDataDto .REGION ).getValue ();
394+ if (region != null ) {
395+ officerField .addItems (
396+ FacadeProvider .getUserFacade ().getUsersByRegionAndRoles ((RegionReferenceDto ) region , UserRole .SURVEILLANCE_OFFICER ));
397+ } else {
398+ officerField
399+ .addItems (FacadeProvider .getUserFacade ().getUsersByRegionAndRoles (user .getRegion (), UserRole .SURVEILLANCE_OFFICER ));
400+ }
401+
384402 }
385403 }
386404
0 commit comments