Example usage for com.vaadin.v7.ui ComboBox getValue

List of usage examples for com.vaadin.v7.ui ComboBox getValue

Introduction

In this page you can find the example usage for com.vaadin.v7.ui ComboBox getValue.

Prototype

@Override
public Object getValue() 

Source Link

Document

Gets the selected item id or in multiselect mode a set of selected ids.

Usage

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());
}