List of usage examples for com.vaadin.v7.ui ComboBox getValue
@Override
public Object getValue()
From source file:de.symeda.sormas.ui.caze.CaseCreateForm.java
License:Open Source License
@Override protected void addFields() { addField(CaseDataDto.REPORT_DATE, DateField.class); addDiseaseField(CaseDataDto.DISEASE, false); addField(CaseDataDto.DISEASE_DETAILS, TextField.class); OptionGroup plagueType = addField(CaseDataDto.PLAGUE_TYPE, OptionGroup.class); addField(CaseDataDto.DENGUE_FEVER_TYPE, OptionGroup.class); addCustomField(FIRST_NAME, String.class, TextField.class); addCustomField(LAST_NAME, String.class, TextField.class); ComboBox region = addField(CaseDataDto.REGION, ComboBox.class); ComboBox district = addField(CaseDataDto.DISTRICT, ComboBox.class); ComboBox community = addField(CaseDataDto.COMMUNITY, ComboBox.class); community.setNullSelectionAllowed(true); ComboBox facility = addField(CaseDataDto.HEALTH_FACILITY, ComboBox.class); facility.setImmediate(true);// www .ja va 2s.c o m TextField facilityDetails = addField(CaseDataDto.HEALTH_FACILITY_DETAILS, TextField.class); facilityDetails.setVisible(false); ComboBox cbPointOfEntry = addField(CaseDataDto.POINT_OF_ENTRY, ComboBox.class); cbPointOfEntry.setImmediate(true); TextField tfPointOfEntryDetails = addField(CaseDataDto.POINT_OF_ENTRY_DETAILS, TextField.class); tfPointOfEntryDetails.setVisible(false); region.addValueChangeListener(e -> { RegionReferenceDto regionDto = (RegionReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(district, regionDto != null ? FacadeProvider.getDistrictFacade().getAllByRegion(regionDto.getUuid()) : null); }); district.addValueChangeListener(e -> { if (community.getValue() == null) { FieldHelper.removeItems(facility); } FieldHelper.removeItems(community); DistrictReferenceDto districtDto = (DistrictReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(community, districtDto != null ? FacadeProvider.getCommunityFacade().getAllByDistrict(districtDto.getUuid()) : null); FieldHelper.updateItems(facility, districtDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict(districtDto, true) : null); FieldHelper.updateItems(cbPointOfEntry, districtDto != null ? FacadeProvider.getPointOfEntryFacade().getAllByDistrict(districtDto.getUuid(), true) : null); }); community.addValueChangeListener(e -> { FieldHelper.removeItems(facility); CommunityReferenceDto communityDto = (CommunityReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(facility, communityDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByCommunity(communityDto, true) : district.getValue() != null ? FacadeProvider.getFacilityFacade() .getHealthFacilitiesByDistrict((DistrictReferenceDto) district.getValue(), true) : null); }); region.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); OptionGroup ogCaseOrigin = addField(CaseDataDto.CASE_ORIGIN, OptionGroup.class); ogCaseOrigin.setRequired(true); if (UserRole.isPortHealthUser(UserProvider.getCurrent().getUserRoles())) { setVisible(false, CaseDataDto.CASE_ORIGIN, CaseDataDto.DISEASE, CaseDataDto.COMMUNITY, CaseDataDto.HEALTH_FACILITY); setVisible(true, CaseDataDto.POINT_OF_ENTRY); } else { ogCaseOrigin.addValueChangeListener(e -> { if (e.getProperty().getValue() == CaseOrigin.IN_COUNTRY) { setVisible(false, CaseDataDto.POINT_OF_ENTRY, CaseDataDto.POINT_OF_ENTRY_DETAILS); setRequired(true, CaseDataDto.HEALTH_FACILITY); setRequired(false, CaseDataDto.POINT_OF_ENTRY); updateFacilityFields(facility, facilityDetails); } else { setVisible(true, CaseDataDto.POINT_OF_ENTRY); setRequired(true, CaseDataDto.POINT_OF_ENTRY); setRequired(false, CaseDataDto.HEALTH_FACILITY); updatePointOfEntryFields(cbPointOfEntry, tfPointOfEntryDetails); } }); } setRequired(true, CaseDataDto.REPORT_DATE, FIRST_NAME, LAST_NAME, CaseDataDto.DISEASE, CaseDataDto.REGION, CaseDataDto.DISTRICT); FieldHelper.addSoftRequiredStyle(plagueType, community, facilityDetails); FieldHelper.setVisibleWhen(getFieldGroup(), Arrays.asList(CaseDataDto.DISEASE_DETAILS), CaseDataDto.DISEASE, Arrays.asList(Disease.OTHER), true); FieldHelper.setRequiredWhen(getFieldGroup(), CaseDataDto.DISEASE, Arrays.asList(CaseDataDto.DISEASE_DETAILS), Arrays.asList(Disease.OTHER)); FieldHelper.setRequiredWhen(getFieldGroup(), CaseDataDto.CASE_ORIGIN, Arrays.asList(CaseDataDto.HEALTH_FACILITY), Arrays.asList(CaseOrigin.IN_COUNTRY)); FieldHelper.setRequiredWhen(getFieldGroup(), CaseDataDto.CASE_ORIGIN, Arrays.asList(CaseDataDto.POINT_OF_ENTRY), Arrays.asList(CaseOrigin.POINT_OF_ENTRY)); FieldHelper.setVisibleWhen(getFieldGroup(), Arrays.asList(CaseDataDto.PLAGUE_TYPE), CaseDataDto.DISEASE, Arrays.asList(Disease.PLAGUE), true); FieldHelper.setVisibleWhen(getFieldGroup(), Arrays.asList(CaseDataDto.DENGUE_FEVER_TYPE), CaseDataDto.DISEASE, Arrays.asList(Disease.DENGUE), true); facility.addValueChangeListener(e -> { updateFacilityFields(facility, facilityDetails); }); cbPointOfEntry.addValueChangeListener(e -> { updatePointOfEntryFields(cbPointOfEntry, tfPointOfEntryDetails); }); }
From source file:de.symeda.sormas.ui.caze.CaseCreateForm.java
License:Open Source License
private void updateFacilityFields(ComboBox cbFacility, TextField tfFacilityDetails) { if (cbFacility.getValue() != null) { boolean otherHealthFacility = ((FacilityReferenceDto) cbFacility.getValue()).getUuid() .equals(FacilityDto.OTHER_FACILITY_UUID); boolean noneHealthFacility = ((FacilityReferenceDto) cbFacility.getValue()).getUuid() .equals(FacilityDto.NONE_FACILITY_UUID); boolean visibleAndRequired = otherHealthFacility || noneHealthFacility; tfFacilityDetails.setVisible(visibleAndRequired); tfFacilityDetails.setRequired(visibleAndRequired); if (otherHealthFacility) { tfFacilityDetails.setCaption(I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, CaseDataDto.HEALTH_FACILITY_DETAILS)); }// ww w . j av a 2 s . c om if (noneHealthFacility) { tfFacilityDetails.setCaption( I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, NONE_HEALTH_FACILITY_DETAILS)); } if (!visibleAndRequired) { tfFacilityDetails.clear(); } } else { tfFacilityDetails.setVisible(false); tfFacilityDetails.setRequired(false); tfFacilityDetails.clear(); } }
From source file:de.symeda.sormas.ui.caze.CaseCreateForm.java
License:Open Source License
private void updatePointOfEntryFields(ComboBox cbPointOfEntry, TextField tfPointOfEntryDetails) { if (cbPointOfEntry.getValue() != null) { boolean isOtherPointOfEntry = ((PointOfEntryReferenceDto) cbPointOfEntry.getValue()) .isOtherPointOfEntry();/* w ww .jav a 2 s . com*/ setVisible(isOtherPointOfEntry, CaseDataDto.POINT_OF_ENTRY_DETAILS); setRequired(isOtherPointOfEntry, CaseDataDto.POINT_OF_ENTRY_DETAILS); if (!isOtherPointOfEntry) { tfPointOfEntryDetails.clear(); } } else { tfPointOfEntryDetails.setVisible(false); tfPointOfEntryDetails.setRequired(false); tfPointOfEntryDetails.clear(); } }
From source file:de.symeda.sormas.ui.caze.CaseFacilityChangeForm.java
License:Open Source License
@Override protected void addFields() { ComboBox region = addField(CaseDataDto.REGION, ComboBox.class); ComboBox district = addField(CaseDataDto.DISTRICT, ComboBox.class); ComboBox community = addField(CaseDataDto.COMMUNITY, ComboBox.class); community.setNullSelectionAllowed(true); ComboBox facility = addField(CaseDataDto.HEALTH_FACILITY, ComboBox.class); ComboBox officer = addField(CaseDataDto.SURVEILLANCE_OFFICER, ComboBox.class); TextField facilityDetails = addField(CaseDataDto.HEALTH_FACILITY_DETAILS, TextField.class); region.addValueChangeListener(e -> { RegionReferenceDto regionDto = (RegionReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(district, regionDto != null ? FacadeProvider.getDistrictFacade().getAllByRegion(regionDto.getUuid()) : null);//w w w.j a va 2 s . c o m }); district.addValueChangeListener(e -> { if (community.getValue() == null) { FieldHelper.removeItems(facility); } FieldHelper.removeItems(community); DistrictReferenceDto districtDto = (DistrictReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(community, districtDto != null ? FacadeProvider.getCommunityFacade().getAllByDistrict(districtDto.getUuid()) : null); FieldHelper.updateItems(facility, districtDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict(districtDto, true) : null); List<UserReferenceDto> assignableSurveillanceOfficers = FacadeProvider.getUserFacade() .getUserRefsByDistrict(districtDto, false, UserRole.SURVEILLANCE_OFFICER); FieldHelper.updateItems(officer, assignableSurveillanceOfficers); if (assignableSurveillanceOfficers.size() == 1) { officer.setValue(assignableSurveillanceOfficers.get(0)); } else { officer.setValue(null); } }); community.addValueChangeListener(e -> { FieldHelper.removeItems(facility); CommunityReferenceDto communityDto = (CommunityReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(facility, communityDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByCommunity(communityDto, true) : district.getValue() != null ? FacadeProvider.getFacilityFacade() .getHealthFacilitiesByDistrict((DistrictReferenceDto) district.getValue(), true) : null); }); facility.addValueChangeListener(e -> { if (e.getProperty().getValue() != null) { boolean otherHealthFacility = ((FacilityReferenceDto) e.getProperty().getValue()).getUuid() .equals(FacilityDto.OTHER_FACILITY_UUID); boolean noneHealthFacility = ((FacilityReferenceDto) e.getProperty().getValue()).getUuid() .equals(FacilityDto.NONE_FACILITY_UUID); boolean visibleAndRequired = otherHealthFacility || noneHealthFacility; facilityDetails.setVisible(visibleAndRequired); facilityDetails.setRequired(visibleAndRequired); if (otherHealthFacility) { facilityDetails.setCaption(I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, CaseDataDto.HEALTH_FACILITY_DETAILS)); } if (noneHealthFacility) { facilityDetails.setCaption( I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, NONE_HEALTH_FACILITY_DETAILS)); } if (!visibleAndRequired) { facilityDetails.clear(); } } else { facilityDetails.setVisible(false); facilityDetails.setRequired(false); facilityDetails.clear(); } }); region.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); FieldHelper.addSoftRequiredStyle(community, facilityDetails, officer); setRequired(true, CaseDataDto.REGION, CaseDataDto.DISTRICT, CaseDataDto.HEALTH_FACILITY); officer.setNullSelectionAllowed(true); }
From source file:de.symeda.sormas.ui.configuration.infrastructure.CommunityEditForm.java
License:Open Source License
@Override protected void addFields() { addField(CommunityDto.NAME, TextField.class); ComboBox region = new ComboBox(); region.setCaption(I18nProperties.getPrefixCaption(CommunityDto.I18N_PREFIX, REGION_LOC)); region.setWidth(100, Unit.PERCENTAGE); getContent().addComponent(region, REGION_LOC); ComboBox district = addField(CommunityDto.DISTRICT, ComboBox.class); setRequired(true, CommunityDto.NAME, CommunityDto.DISTRICT); region.setRequired(true);/*from w w w.ja v a 2s . c om*/ region.addValueChangeListener(e -> { RegionReferenceDto regionDto = (RegionReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(district, regionDto != null ? FacadeProvider.getDistrictFacade().getAllByRegion(regionDto.getUuid()) : null); }); district.addValueChangeListener(e -> { if (e.getProperty().getValue() != null && region.getValue() == null) { DistrictDto communityDistrict = FacadeProvider.getDistrictFacade() .getDistrictByUuid(((DistrictReferenceDto) e.getProperty().getValue()).getUuid()); region.setValue(communityDistrict.getRegion()); } }); region.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); // TODO: Workaround until cases and other data is properly transfered when infrastructure data changes if (!create) { region.setEnabled(false); district.setEnabled(false); } }
From source file:de.symeda.sormas.ui.events.EventDataForm.java
License:Open Source License
@Override protected void addFields() { if (isCreateForm == null) { return;//from ww w. j a v a 2 s .c o m } addField(EventDto.UUID, TextField.class); addDiseaseField(EventDto.DISEASE, false); addField(EventDto.DISEASE_DETAILS, TextField.class); DateField eventDate = addField(EventDto.EVENT_DATE, DateField.class); addField(EventDto.EVENT_STATUS, OptionGroup.class); addField(EventDto.EVENT_DESC, TextArea.class).setRows(2); addField(EventDto.EVENT_LOCATION, LocationEditForm.class).setCaption(null); LocationEditForm locationForm = (LocationEditForm) getFieldGroup().getField(EventDto.EVENT_LOCATION); if (isCreateForm) { locationForm.hideValidationUntilNextCommit(); } ComboBox districtField = (ComboBox) locationForm.getFieldGroup().getField(LocationDto.DISTRICT); ComboBox surveillanceOfficerField = addField(EventDto.SURVEILLANCE_OFFICER, ComboBox.class); surveillanceOfficerField.setNullSelectionAllowed(true); ComboBox typeOfPlace = addField(EventDto.TYPE_OF_PLACE, ComboBox.class); typeOfPlace.setNullSelectionAllowed(true); addField(EventDto.TYPE_OF_PLACE_TEXT, TextField.class); addField(EventDto.REPORT_DATE_TIME, DateTimeField.class); addField(EventDto.REPORTING_USER, ComboBox.class); TextField srcFirstName = addField(EventDto.SRC_FIRST_NAME, TextField.class); TextField srcLastName = addField(EventDto.SRC_LAST_NAME, TextField.class); TextField srcTelNo = addField(EventDto.SRC_TEL_NO, TextField.class); addField(EventDto.SRC_EMAIL, TextField.class); setReadOnly(true, EventDto.UUID, EventDto.REPORT_DATE_TIME, EventDto.REPORTING_USER); FieldHelper.setVisibleWhen(getFieldGroup(), EventDto.TYPE_OF_PLACE_TEXT, EventDto.TYPE_OF_PLACE, Arrays.asList(TypeOfPlace.OTHER), true); FieldHelper.setVisibleWhen(getFieldGroup(), Arrays.asList(EventDto.DISEASE_DETAILS), EventDto.DISEASE, Arrays.asList(Disease.OTHER), true); FieldHelper.setRequiredWhen(getFieldGroup(), EventDto.DISEASE, Arrays.asList(EventDto.DISEASE_DETAILS), Arrays.asList(Disease.OTHER)); setRequired(true, EventDto.EVENT_STATUS, EventDto.UUID, EventDto.EVENT_DESC, EventDto.REPORT_DATE_TIME, EventDto.REPORTING_USER); setTypeOfPlaceTextRequirement(); locationForm.setFieldsRequirement(true, LocationDto.REGION, LocationDto.DISTRICT); districtField.addValueChangeListener(e -> { List<UserReferenceDto> assignableSurveillanceOfficers = FacadeProvider.getUserFacade() .getUserRefsByDistrict((DistrictReferenceDto) districtField.getValue(), false, UserRole.SURVEILLANCE_OFFICER); FieldHelper.updateItems(surveillanceOfficerField, assignableSurveillanceOfficers); }); FieldHelper.addSoftRequiredStyle(eventDate, typeOfPlace, surveillanceOfficerField, srcFirstName, srcLastName, srcTelNo); }
From source file:de.symeda.sormas.ui.events.EventDataForm.java
License:Open Source License
@SuppressWarnings("rawtypes") public void setTypeOfPlaceTextRequirement() { FieldGroup fieldGroup = getFieldGroup(); ComboBox typeOfPlaceField = (ComboBox) fieldGroup.getField(EventDto.TYPE_OF_PLACE); TextField typeOfPlaceTextField = (TextField) fieldGroup.getField(EventDto.TYPE_OF_PLACE_TEXT); ((AbstractField) typeOfPlaceField).setImmediate(true); // initialize {/*from ww w .j a v a 2 s .c o m*/ typeOfPlaceTextField.setRequired(typeOfPlaceField.getValue() == TypeOfPlace.OTHER); } typeOfPlaceField.addValueChangeListener(event -> { typeOfPlaceTextField.setRequired(typeOfPlaceField.getValue() == TypeOfPlace.OTHER); }); }
From source file:de.symeda.sormas.ui.hospitalization.PreviousHospitalizationEditForm.java
License:Open Source License
@Override protected void addFields() { DateField admissionDate = addField(PreviousHospitalizationDto.ADMISSION_DATE, DateField.class); DateField dischargeDate = addField(PreviousHospitalizationDto.DISCHARGE_DATE, DateField.class); addField(PreviousHospitalizationDto.ISOLATED, OptionGroup.class); addField(PreviousHospitalizationDto.DESCRIPTION, TextArea.class).setRows(2); ComboBox facilityRegion = addField(PreviousHospitalizationDto.REGION, ComboBox.class); ComboBox facilityDistrict = addField(PreviousHospitalizationDto.DISTRICT, ComboBox.class); ComboBox facilityCommunity = addField(PreviousHospitalizationDto.COMMUNITY, ComboBox.class); facilityCommunity.setNullSelectionAllowed(true); ComboBox healthFacility = addField(PreviousHospitalizationDto.HEALTH_FACILITY, ComboBox.class); TextField healthFacilityDetails = addField(CaseDataDto.HEALTH_FACILITY_DETAILS, TextField.class); healthFacilityDetails.setVisible(false); healthFacility.setImmediate(true);/*from w w w. ja v a2 s . com*/ facilityRegion.addValueChangeListener(e -> { RegionReferenceDto regionDto = (RegionReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(facilityDistrict, regionDto != null ? FacadeProvider.getDistrictFacade().getAllByRegion(regionDto.getUuid()) : null); }); facilityDistrict.addValueChangeListener(e -> { if (facilityCommunity.getValue() == null) { FieldHelper.removeItems(healthFacility); } FieldHelper.removeItems(facilityCommunity); DistrictReferenceDto districtDto = (DistrictReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(facilityCommunity, districtDto != null ? FacadeProvider.getCommunityFacade().getAllByDistrict(districtDto.getUuid()) : null); FieldHelper.updateItems(healthFacility, districtDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict(districtDto, true) : null); }); facilityCommunity.addValueChangeListener(e -> { FieldHelper.removeItems(healthFacility); CommunityReferenceDto communityDto = (CommunityReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(healthFacility, communityDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByCommunity(communityDto, true) : facilityDistrict.getValue() != null ? FacadeProvider.getFacilityFacade() .getHealthFacilitiesByDistrict((DistrictReferenceDto) facilityDistrict.getValue(), true) : null); }); facilityRegion.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); healthFacility.addValueChangeListener(e -> { if (e.getProperty().getValue() != null) { boolean otherHealthFacility = ((FacilityReferenceDto) e.getProperty().getValue()).getUuid() .equals(FacilityDto.OTHER_FACILITY_UUID); boolean noneHealthFacility = ((FacilityReferenceDto) e.getProperty().getValue()).getUuid() .equals(FacilityDto.NONE_FACILITY_UUID); boolean visibleAndRequired = otherHealthFacility || noneHealthFacility; healthFacilityDetails.setVisible(visibleAndRequired); healthFacilityDetails.setRequired(visibleAndRequired); if (otherHealthFacility) { healthFacilityDetails.setCaption(I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, CaseDataDto.HEALTH_FACILITY_DETAILS)); } if (noneHealthFacility) { healthFacilityDetails.setCaption(I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX, CaseDataDto.NONE_HEALTH_FACILITY_DETAILS)); } if (!visibleAndRequired) { healthFacilityDetails.clear(); } } else { healthFacilityDetails.setVisible(false); healthFacilityDetails.setRequired(false); healthFacilityDetails.clear(); } }); // Validations admissionDate.addValidator(new DateComparisonValidator(admissionDate, dischargeDate, true, false, I18nProperties.getValidationError(Validations.beforeDate, admissionDate.getCaption(), dischargeDate.getCaption()))); dischargeDate.addValidator(new DateComparisonValidator(dischargeDate, admissionDate, false, false, I18nProperties.getValidationError(Validations.afterDate, dischargeDate.getCaption(), admissionDate.getCaption()))); FieldHelper.addSoftRequiredStyle(admissionDate, dischargeDate, facilityCommunity, healthFacilityDetails); setRequired(true, PreviousHospitalizationDto.REGION, PreviousHospitalizationDto.DISTRICT, PreviousHospitalizationDto.HEALTH_FACILITY); }
From source file:de.symeda.sormas.ui.person.PersonEditForm.java
License:Open Source License
@Override protected void addFields() { if (!initialized) { // vars have to be set first return;// ww w. j a v a 2 s .c o m } addField(PersonDto.FIRST_NAME, TextField.class); addField(PersonDto.LAST_NAME, TextField.class); ComboBox sex = addField(PersonDto.SEX, ComboBox.class); addField(PersonDto.NICKNAME, TextField.class); addField(PersonDto.MOTHERS_MAIDEN_NAME, TextField.class); addFields(PersonDto.MOTHERS_NAME, PersonDto.FATHERS_NAME); ComboBox presentCondition = addField(PersonDto.PRESENT_CONDITION, ComboBox.class); birthDateDay = addField(PersonDto.BIRTH_DATE_DD, ComboBox.class); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 birthDateDay.setNullSelectionAllowed(true); ComboBox birthDateMonth = addField(PersonDto.BIRTH_DATE_MM, ComboBox.class); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 birthDateMonth.setNullSelectionAllowed(true); birthDateMonth.addItems(DateHelper.getMonthsInYear()); birthDateMonth.setPageLength(12); setItemCaptionsForMonths(birthDateMonth); ComboBox birthDateYear = addField(PersonDto.BIRTH_DATE_YYYY, ComboBox.class); birthDateYear.setCaption(I18nProperties.getPrefixCaption(PersonDto.I18N_PREFIX, PersonDto.BIRTH_DATE)); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 birthDateYear.setNullSelectionAllowed(true); birthDateYear.addItems(DateHelper.getYearsToNow()); birthDateYear.setItemCaptionMode(ItemCaptionMode.ID_TOSTRING); DateField deathDate = addField(PersonDto.DEATH_DATE, DateField.class); TextField approximateAgeField = addField(PersonDto.APPROXIMATE_AGE, TextField.class); ComboBox approximateAgeTypeField = addField(PersonDto.APPROXIMATE_AGE_TYPE, ComboBox.class); addField(PersonDto.APPROXIMATE_AGE_REFERENCE_DATE, DateField.class); TextField tfGestationAgeAtBirth = addField(PersonDto.GESTATION_AGE_AT_BIRTH, TextField.class); tfGestationAgeAtBirth.setConversionError(I18nProperties.getValidationError(Validations.onlyNumbersAllowed, tfGestationAgeAtBirth.getCaption())); TextField tfBirthWeight = addField(PersonDto.BIRTH_WEIGHT, TextField.class); tfBirthWeight.setConversionError( I18nProperties.getValidationError(Validations.onlyNumbersAllowed, tfBirthWeight.getCaption())); AbstractSelect deathPlaceType = addField(PersonDto.DEATH_PLACE_TYPE, ComboBox.class); deathPlaceType.setNullSelectionAllowed(true); TextField deathPlaceDesc = addField(PersonDto.DEATH_PLACE_DESCRIPTION, TextField.class); DateField burialDate = addField(PersonDto.BURIAL_DATE, DateField.class); TextField burialPlaceDesc = addField(PersonDto.BURIAL_PLACE_DESCRIPTION, TextField.class); ComboBox burialConductor = addField(PersonDto.BURIAL_CONDUCTOR, ComboBox.class); addField(PersonDto.ADDRESS, LocationEditForm.class).setCaption(null); addField(PersonDto.PHONE, TextField.class); addField(PersonDto.PHONE_OWNER, TextField.class); addFields(PersonDto.OCCUPATION_TYPE, PersonDto.OCCUPATION_DETAILS, PersonDto.EDUCATION_TYPE, PersonDto.EDUCATION_DETAILS); ComboBox cbPlaceOfBirthRegion = addField(PersonDto.PLACE_OF_BIRTH_REGION, ComboBox.class); ComboBox cbPlaceOfBirthDistrict = addField(PersonDto.PLACE_OF_BIRTH_DISTRICT, ComboBox.class); ComboBox cbPlaceOfBirthCommunity = addField(PersonDto.PLACE_OF_BIRTH_COMMUNITY, ComboBox.class); ComboBox cbPlaceOfBirthFacility = addField(PersonDto.PLACE_OF_BIRTH_FACILITY, ComboBox.class); TextField tfPlaceOfBirthFacilityDetails = addField(PersonDto.PLACE_OF_BIRTH_FACILITY_DETAILS, TextField.class); causeOfDeathField = addField(PersonDto.CAUSE_OF_DEATH, ComboBox.class); causeOfDeathDiseaseField = addDiseaseField(PersonDto.CAUSE_OF_DEATH_DISEASE, true); causeOfDeathDetailsField = addField(PersonDto.CAUSE_OF_DEATH_DETAILS, TextField.class); ComboBox facilityRegion = addField(PersonDto.OCCUPATION_REGION, ComboBox.class); facilityRegion.setImmediate(true); facilityRegion.setNullSelectionAllowed(true); ComboBox facilityDistrict = addField(PersonDto.OCCUPATION_DISTRICT, ComboBox.class); facilityDistrict.setImmediate(true); facilityDistrict.setNullSelectionAllowed(true); ComboBox facilityCommunity = addField(PersonDto.OCCUPATION_COMMUNITY, ComboBox.class); facilityCommunity.setImmediate(true); facilityCommunity.setNullSelectionAllowed(true); occupationFacility = addField(PersonDto.OCCUPATION_FACILITY, ComboBox.class); occupationFacility.setImmediate(true); occupationFacility.setNullSelectionAllowed(true); occupationFacilityDetails = addField(PersonDto.OCCUPATION_FACILITY_DETAILS, TextField.class); // Set requirements that don't need visibility changes and read only status setReadOnly(true, PersonDto.APPROXIMATE_AGE_REFERENCE_DATE); setRequired(true, PersonDto.FIRST_NAME, PersonDto.LAST_NAME); setVisible(false, PersonDto.OCCUPATION_DETAILS, PersonDto.OCCUPATION_FACILITY, PersonDto.OCCUPATION_FACILITY_DETAILS, PersonDto.OCCUPATION_REGION, PersonDto.OCCUPATION_DISTRICT, PersonDto.OCCUPATION_COMMUNITY, PersonDto.DEATH_DATE, PersonDto.DEATH_PLACE_TYPE, PersonDto.DEATH_PLACE_DESCRIPTION, PersonDto.BURIAL_DATE, PersonDto.BURIAL_PLACE_DESCRIPTION, PersonDto.BURIAL_CONDUCTOR, PersonDto.CAUSE_OF_DEATH, PersonDto.CAUSE_OF_DEATH_DETAILS, PersonDto.CAUSE_OF_DEATH_DISEASE); FieldHelper.setVisibleWhen(getFieldGroup(), PersonDto.EDUCATION_DETAILS, PersonDto.EDUCATION_TYPE, Arrays.asList(EducationType.OTHER), true); FieldHelper.addSoftRequiredStyle(presentCondition, sex, deathDate, deathPlaceDesc, deathPlaceType, causeOfDeathField, causeOfDeathDiseaseField, causeOfDeathDetailsField, burialDate, burialPlaceDesc, burialConductor); // Set initial visibilities initializeVisibilitiesAndAllowedVisibilities(disease, viewMode); if (!getField(PersonDto.OCCUPATION_TYPE).isVisible() && !getField(PersonDto.EDUCATION_TYPE).isVisible()) occupationHeader.setVisible(false); if (!getField(PersonDto.ADDRESS).isVisible()) addressHeader.setVisible(false); // Add listeners FieldHelper.setRequiredWhenNotNull(getFieldGroup(), PersonDto.APPROXIMATE_AGE, PersonDto.APPROXIMATE_AGE_TYPE); addFieldListeners(PersonDto.APPROXIMATE_AGE, e -> { @SuppressWarnings("unchecked") Field<ApproximateAgeType> ageTypeField = (Field<ApproximateAgeType>) getField( PersonDto.APPROXIMATE_AGE_TYPE); if (e.getProperty().getValue() == null) { ageTypeField.clear(); } else { if (ageTypeField.isEmpty()) { ageTypeField.setValue(ApproximateAgeType.YEARS); } } }); addFieldListeners(PersonDto.BIRTH_DATE_DD, e -> { updateApproximateAge(); updateReadyOnlyApproximateAge(); }); addFieldListeners(PersonDto.BIRTH_DATE_MM, e -> { updateApproximateAge(); updateReadyOnlyApproximateAge(); }); addFieldListeners(PersonDto.BIRTH_DATE_YYYY, e -> { updateApproximateAge(); updateReadyOnlyApproximateAge(); }); addFieldListeners(PersonDto.DEATH_DATE, e -> updateApproximateAge()); addFieldListeners(PersonDto.OCCUPATION_TYPE, e -> { updateOccupationFieldCaptions(); toogleOccupationMetaFields(); }); addListenersToInfrastructureFields(cbPlaceOfBirthRegion, cbPlaceOfBirthDistrict, cbPlaceOfBirthCommunity, cbPlaceOfBirthFacility, tfPlaceOfBirthFacilityDetails); addListenersToInfrastructureFields(facilityRegion, facilityDistrict, facilityCommunity, occupationFacility, occupationFacilityDetails); cbPlaceOfBirthRegion.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); facilityRegion.addItems(FacadeProvider.getRegionFacade().getAllAsReference()); addFieldListeners(PersonDto.PRESENT_CONDITION, e -> toogleDeathAndBurialFields()); causeOfDeathField.addValueChangeListener(e -> { toggleCauseOfDeathFields( presentCondition.getValue() != PresentCondition.ALIVE && presentCondition.getValue() != null); }); causeOfDeathDiseaseField.addValueChangeListener(e -> { toggleCauseOfDeathFields( presentCondition.getValue() != PresentCondition.ALIVE && presentCondition.getValue() != null); }); addValueChangeListener(e -> { fillDeathAndBurialFields(deathPlaceType, deathPlaceDesc, burialPlaceDesc); }); deathDate.addValidator(new DateComparisonValidator(deathDate, this::calcBirthDateValue, false, false, I18nProperties.getValidationError(Validations.afterDate, deathDate.getCaption(), birthDateYear.getCaption()))); burialDate.addValidator(new DateComparisonValidator(burialDate, deathDate, false, false, I18nProperties .getValidationError(Validations.afterDate, burialDate.getCaption(), deathDate.getCaption()))); // Update the list of days according to the selected month and year birthDateYear.addValueChangeListener(e -> { updateListOfDays((Integer) e.getProperty().getValue(), (Integer) birthDateMonth.getValue()); }); birthDateMonth.addValueChangeListener(e -> { updateListOfDays((Integer) birthDateYear.getValue(), (Integer) e.getProperty().getValue()); }); }
From source file:de.symeda.sormas.ui.person.PersonEditForm.java
License:Open Source License
private void addListenersToInfrastructureFields(ComboBox regionField, ComboBox districtField, ComboBox communityField, ComboBox facilityField, TextField detailsField) { regionField.addValueChangeListener(e -> { RegionReferenceDto regionDto = (RegionReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(districtField, regionDto != null ? FacadeProvider.getDistrictFacade().getAllByRegion(regionDto.getUuid()) : null);/*from ww w . ja v a 2s . c om*/ }); districtField.addValueChangeListener(e -> { if (communityField.getValue() == null) { FieldHelper.removeItems(facilityField); } FieldHelper.removeItems(communityField); DistrictReferenceDto districtDto = (DistrictReferenceDto) e.getProperty().getValue(); FieldHelper.updateItems(communityField, districtDto != null ? FacadeProvider.getCommunityFacade().getAllByDistrict(districtDto.getUuid()) : null); FieldHelper.updateItems(facilityField, districtDto != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict(districtDto, true) : null); }); communityField.addValueChangeListener(e -> { if (occupationFacility.getValue() == null) { FieldHelper.removeItems(facilityField); CommunityReferenceDto communityDto = (CommunityReferenceDto) e.getProperty().getValue(); FieldHelper .updateItems(facilityField, communityDto != null ? FacadeProvider.getFacilityFacade() .getHealthFacilitiesByCommunity(communityDto, true) : districtField.getValue() != null ? FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict( (DistrictReferenceDto) districtField.getValue(), true) : null); } }); facilityField.addValueChangeListener(e -> { updateFacilityDetailsVisibility(detailsField, (FacilityReferenceDto) e.getProperty().getValue()); }); // Set initial visibility updateFacilityDetailsVisibility(detailsField, (FacilityReferenceDto) facilityField.getValue()); }