Search in sources :

Example 1 with CountryIndexDto

use of de.symeda.sormas.api.infrastructure.country.CountryIndexDto in project SORMAS-Project by hzi-braunschweig.

the class CountryFacadeEjb method toIndexDto.

public CountryIndexDto toIndexDto(Country entity) {
    if (entity == null) {
        return null;
    }
    CountryIndexDto dto = new CountryIndexDto();
    DtoHelper.fillDto(dto, entity);
    String isoCode = entity.getIsoCode();
    String displayName = I18nProperties.getCountryName(isoCode, entity.getDefaultName());
    dto.setDisplayName(displayName);
    dto.setDefaultName(entity.getDefaultName());
    dto.setArchived(entity.isArchived());
    dto.setExternalId(entity.getExternalId());
    dto.setIsoCode(isoCode);
    dto.setUnoCode(entity.getUnoCode());
    dto.setUuid(entity.getUuid());
    dto.setSubcontinent(SubcontinentFacadeEjb.toReferenceDto(entity.getSubcontinent()));
    return dto;
}
Also used : CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto)

Example 2 with CountryIndexDto

use of de.symeda.sormas.api.infrastructure.country.CountryIndexDto in project SORMAS-Project by hzi-braunschweig.

the class InfrastructureController method archiveOrDearchiveAllSelectedItems.

@SuppressWarnings("unchecked")
public void archiveOrDearchiveAllSelectedItems(boolean archive, Collection<?> selectedRows, InfrastructureType infrastructureType, Runnable callback) {
    // Check that at least one entry is selected
    if (selectedRows.isEmpty()) {
        new Notification(I18nProperties.getString(Strings.headingNoRowsSelected), I18nProperties.getString(Strings.messageNoRowsSelected), Type.WARNING_MESSAGE, false).show(Page.getCurrent());
        return;
    }
    // Check if archiving/dearchiving is allowed concerning the hierarchy
    Set<String> selectedRowsUuids = selectedRows.stream().map(row -> ((HasUuid) row).getUuid()).collect(Collectors.toSet());
    if (InfrastructureType.AREA.equals(infrastructureType) && FacadeProvider.getAreaFacade().isUsedInOtherInfrastructureData(selectedRowsUuids) || InfrastructureType.CONTINENT.equals(infrastructureType) && FacadeProvider.getContinentFacade().isUsedInOtherInfrastructureData(selectedRowsUuids) || InfrastructureType.SUBCONTINENT.equals(infrastructureType) && FacadeProvider.getSubcontinentFacade().isUsedInOtherInfrastructureData(selectedRowsUuids) || InfrastructureType.REGION.equals(infrastructureType) && FacadeProvider.getRegionFacade().isUsedInOtherInfrastructureData(selectedRowsUuids) || InfrastructureType.DISTRICT.equals(infrastructureType) && FacadeProvider.getDistrictFacade().isUsedInOtherInfrastructureData(selectedRowsUuids) || InfrastructureType.COMMUNITY.equals(infrastructureType) && FacadeProvider.getCommunityFacade().isUsedInOtherInfrastructureData(selectedRowsUuids)) {
        showArchivingNotPossibleWindow(infrastructureType, true);
        return;
    }
    if (InfrastructureType.COUNTRY.equals(infrastructureType) && FacadeProvider.getCountryFacade().hasArchivedParentInfrastructure(selectedRowsUuids) || InfrastructureType.SUBCONTINENT.equals(infrastructureType) && FacadeProvider.getSubcontinentFacade().hasArchivedParentInfrastructure(selectedRowsUuids) || InfrastructureType.DISTRICT.equals(infrastructureType) && FacadeProvider.getDistrictFacade().hasArchivedParentInfrastructure(selectedRowsUuids) || InfrastructureType.COMMUNITY.equals(infrastructureType) && FacadeProvider.getCommunityFacade().hasArchivedParentInfrastructure(selectedRowsUuids) || InfrastructureType.FACILITY.equals(infrastructureType) && FacadeProvider.getFacilityFacade().hasArchivedParentInfrastructure(selectedRowsUuids) || InfrastructureType.POINT_OF_ENTRY.equals(infrastructureType) && FacadeProvider.getPointOfEntryFacade().hasArchivedParentInfrastructure(selectedRowsUuids)) {
        showDearchivingNotPossibleWindow(infrastructureType, false);
        return;
    }
    final String confirmationMessage;
    final String notificationMessage;
    switch(infrastructureType) {
        case CONTINENT:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveContinents) : I18nProperties.getString(Strings.confirmationDearchiveContinents);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageContinentsArchived) : I18nProperties.getString(Strings.messageContinentsDearchived);
            break;
        case SUBCONTINENT:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveSubcontinents) : I18nProperties.getString(Strings.confirmationDearchiveSubcontinents);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageSubcontinentsArchived) : I18nProperties.getString(Strings.messageSubcontinentsDearchived);
            break;
        case AREA:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveAreas) : I18nProperties.getString(Strings.confirmationDearchiveAreas);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageAreasArchived) : I18nProperties.getString(Strings.messageAreasDearchived);
            break;
        case COUNTRY:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveCountries) : I18nProperties.getString(Strings.confirmationDearchiveCountries);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageCountriesArchived) : I18nProperties.getString(Strings.messageCountriesDearchived);
            break;
        case REGION:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveRegions) : I18nProperties.getString(Strings.confirmationDearchiveRegions);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageRegionsArchived) : I18nProperties.getString(Strings.messageRegionsDearchived);
            break;
        case DISTRICT:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveDistricts) : I18nProperties.getString(Strings.confirmationDearchiveDistricts);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageDistrictsArchived) : I18nProperties.getString(Strings.messageDistrictsDearchived);
            break;
        case COMMUNITY:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveCommunities) : I18nProperties.getString(Strings.confirmationDearchiveCommunities);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageCommunitiesArchived) : I18nProperties.getString(Strings.messageCommunitiesDearchived);
            break;
        case FACILITY:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchiveFacilities) : I18nProperties.getString(Strings.confirmationDearchiveFacilities);
            notificationMessage = archive ? I18nProperties.getString(Strings.messageFacilitiesArchived) : I18nProperties.getString(Strings.messageFacilitiesDearchived);
            break;
        case POINT_OF_ENTRY:
            confirmationMessage = archive ? I18nProperties.getString(Strings.confirmationArchivePointsOfEntry) : I18nProperties.getString(Strings.confirmationDearchivePointsOfEntry);
            notificationMessage = archive ? I18nProperties.getString(Strings.messagePointsOfEntryArchived) : I18nProperties.getString(Strings.messagePointsOfEntryDearchived);
            break;
        default:
            throw new IllegalArgumentException(infrastructureType.name());
    }
    VaadinUiUtil.showConfirmationPopup(I18nProperties.getString(Strings.headingConfirmArchiving), new Label(String.format(confirmationMessage, selectedRows.size())), I18nProperties.getString(Strings.yes), I18nProperties.getString(Strings.no), null, e -> {
        if (e.booleanValue()) {
            switch(infrastructureType) {
                case CONTINENT:
                    for (ContinentDto selectedRow : (Collection<ContinentDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getContinentFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getContinentFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case SUBCONTINENT:
                    for (SubcontinentDto selectedRow : (Collection<SubcontinentDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getSubcontinentFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getSubcontinentFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case AREA:
                    for (AreaDto selectedRow : (Collection<AreaDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getAreaFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getAreaFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case COUNTRY:
                    for (CountryIndexDto selectedRow : (Collection<CountryIndexDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getCountryFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getCountryFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case REGION:
                    for (RegionIndexDto selectedRow : (Collection<RegionIndexDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getRegionFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getRegionFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case DISTRICT:
                    for (DistrictIndexDto selectedRow : (Collection<DistrictIndexDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getDistrictFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getDistrictFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case COMMUNITY:
                    for (CommunityDto selectedRow : (Collection<CommunityDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getCommunityFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getCommunityFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case FACILITY:
                    for (FacilityIndexDto selectedRow : (Collection<FacilityIndexDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getFacilityFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getFacilityFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                case POINT_OF_ENTRY:
                    for (PointOfEntryDto selectedRow : (Collection<PointOfEntryDto>) selectedRows) {
                        if (archive) {
                            FacadeProvider.getPointOfEntryFacade().archive(selectedRow.getUuid());
                        } else {
                            FacadeProvider.getPointOfEntryFacade().dearchive(selectedRow.getUuid());
                        }
                    }
                    break;
                default:
                    throw new IllegalArgumentException(infrastructureType.name());
            }
            callback.run();
            Notification.show(notificationMessage, Type.ASSISTIVE_NOTIFICATION);
        }
    });
}
Also used : AreaDto(de.symeda.sormas.api.infrastructure.area.AreaDto) Arrays(java.util.Arrays) FacilityDto(de.symeda.sormas.api.infrastructure.facility.FacilityDto) CountryDto(de.symeda.sormas.api.infrastructure.country.CountryDto) VaadinUiUtil(de.symeda.sormas.ui.utils.VaadinUiUtil) FacadeProvider(de.symeda.sormas.api.FacadeProvider) I18nProperties(de.symeda.sormas.api.i18n.I18nProperties) Alignment(com.vaadin.ui.Alignment) RegionDto(de.symeda.sormas.api.infrastructure.region.RegionDto) CommitListener(de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent.CommitListener) CommunityDto(de.symeda.sormas.api.infrastructure.community.CommunityDto) Notification(com.vaadin.ui.Notification) SormasUI(de.symeda.sormas.ui.SormasUI) CommitDiscardWrapperComponent(de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent) Page(com.vaadin.server.Page) Label(com.vaadin.ui.Label) ContinentDto(de.symeda.sormas.api.infrastructure.continent.ContinentDto) RegionIndexDto(de.symeda.sormas.api.infrastructure.region.RegionIndexDto) SubcontinentDto(de.symeda.sormas.api.infrastructure.subcontinent.SubcontinentDto) UserProvider(de.symeda.sormas.ui.UserProvider) ButtonHelper(de.symeda.sormas.ui.utils.ButtonHelper) ValoTheme(com.vaadin.ui.themes.ValoTheme) PointOfEntryDto(de.symeda.sormas.api.infrastructure.pointofentry.PointOfEntryDto) FacilityType(de.symeda.sormas.api.infrastructure.facility.FacilityType) Collection(java.util.Collection) HasUuid(de.symeda.sormas.api.HasUuid) InfrastructureType(de.symeda.sormas.api.infrastructure.InfrastructureType) Set(java.util.Set) CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto) Collectors(java.util.stream.Collectors) Captions(de.symeda.sormas.api.i18n.Captions) UserRight(de.symeda.sormas.api.user.UserRight) Button(com.vaadin.ui.Button) Type(com.vaadin.ui.Notification.Type) DistrictIndexDto(de.symeda.sormas.api.infrastructure.district.DistrictIndexDto) FacilityIndexDto(de.symeda.sormas.api.infrastructure.facility.FacilityIndexDto) DistrictDto(de.symeda.sormas.api.infrastructure.district.DistrictDto) Strings(de.symeda.sormas.api.i18n.Strings) DistrictIndexDto(de.symeda.sormas.api.infrastructure.district.DistrictIndexDto) FacilityIndexDto(de.symeda.sormas.api.infrastructure.facility.FacilityIndexDto) Label(com.vaadin.ui.Label) CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto) AreaDto(de.symeda.sormas.api.infrastructure.area.AreaDto) Notification(com.vaadin.ui.Notification) RegionIndexDto(de.symeda.sormas.api.infrastructure.region.RegionIndexDto) ContinentDto(de.symeda.sormas.api.infrastructure.continent.ContinentDto) HasUuid(de.symeda.sormas.api.HasUuid) SubcontinentDto(de.symeda.sormas.api.infrastructure.subcontinent.SubcontinentDto) CommunityDto(de.symeda.sormas.api.infrastructure.community.CommunityDto) PointOfEntryDto(de.symeda.sormas.api.infrastructure.pointofentry.PointOfEntryDto) Collection(java.util.Collection)

Example 3 with CountryIndexDto

use of de.symeda.sormas.api.infrastructure.country.CountryIndexDto in project SORMAS-Project by hzi-braunschweig.

the class CountriesGrid method createFilteredStream.

private Stream<CountryIndexDto> createFilteredStream() {
    // get all filter properties
    String nameCodeLike = getCriteria().getNameCodeLike() != null ? getCriteria().getNameCodeLike().toLowerCase() : null;
    String subcontinentUuid = getCriteria().getSubcontinent() != null ? getCriteria().getSubcontinent().getUuid() : null;
    EntityRelevanceStatus relevanceStatus = getCriteria().getRelevanceStatus();
    // "empty" basefilter
    Predicate<CountryIndexDto> filters = x -> true;
    // nameCodeLike Filter
    if (!StringUtils.isEmpty(nameCodeLike)) {
        filters = filters.and(country -> (country.getDefaultName().toLowerCase().contains(nameCodeLike) || country.getDisplayName().toLowerCase().contains(nameCodeLike) || country.getIsoCode().toLowerCase().contains(nameCodeLike) || (country.getUnoCode() != null && country.getUnoCode().toLowerCase().contains(nameCodeLike))));
    }
    // subcontinent filter
    if (subcontinentUuid != null) {
        filters = filters.and(country -> (country.getSubcontinent() != null && country.getSubcontinent().getUuid().equals(subcontinentUuid)));
    }
    // relevancestatus filter (active/archived/all)
    if (relevanceStatus != null) {
        switch(relevanceStatus) {
            case ACTIVE:
                filters = filters.and(country -> (!country.isArchived()));
                break;
            case ARCHIVED:
                filters = filters.and(country -> (country.isArchived()));
                break;
        }
    }
    // apply filters
    return allCountries.stream().filter(filters);
}
Also used : FeatureType(de.symeda.sormas.api.feature.FeatureType) CountryCriteria(de.symeda.sormas.api.infrastructure.country.CountryCriteria) FilteredGrid(de.symeda.sormas.ui.utils.FilteredGrid) CountryDto(de.symeda.sormas.api.infrastructure.country.CountryDto) Predicate(java.util.function.Predicate) FacadeProvider(de.symeda.sormas.api.FacadeProvider) I18nProperties(de.symeda.sormas.api.i18n.I18nProperties) EntityRelevanceStatus(de.symeda.sormas.api.EntityRelevanceStatus) CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto) StringUtils(org.apache.commons.lang3.StringUtils) ControllerProvider(de.symeda.sormas.ui.ControllerProvider) UserRight(de.symeda.sormas.api.user.UserRight) List(java.util.List) Stream(java.util.stream.Stream) ViewConfiguration(de.symeda.sormas.ui.utils.ViewConfiguration) ViewModelProviders(de.symeda.sormas.ui.ViewModelProviders) UserProvider(de.symeda.sormas.ui.UserProvider) EntityRelevanceStatus(de.symeda.sormas.api.EntityRelevanceStatus) CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto)

Example 4 with CountryIndexDto

use of de.symeda.sormas.api.infrastructure.country.CountryIndexDto in project SORMAS-Project by hzi-braunschweig.

the class CountryFacadeEjbTest method testGetIndexList.

@Test
public void testGetIndexList() {
    Country expected = creator.createCountry("Romania", "ROU", "642");
    creator.createCountry("Germany", "DEU", "276");
    CountryCriteria criteria = new CountryCriteria().nameCodeLike("ROU");
    List<CountryIndexDto> actualList = getCountryFacade().getIndexList(criteria, null, null, null);
    assertEquals(1, actualList.size());
    CountryIndexDto actual = actualList.get(0);
    assertEquals(expected.getUuid(), actual.getUuid());
    assertEquals(expected.getIsoCode(), actual.getIsoCode());
}
Also used : CountryCriteria(de.symeda.sormas.api.infrastructure.country.CountryCriteria) Country(de.symeda.sormas.backend.infrastructure.country.Country) CountryIndexDto(de.symeda.sormas.api.infrastructure.country.CountryIndexDto) Test(org.junit.Test) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest)

Aggregations

CountryIndexDto (de.symeda.sormas.api.infrastructure.country.CountryIndexDto)4 FacadeProvider (de.symeda.sormas.api.FacadeProvider)2 I18nProperties (de.symeda.sormas.api.i18n.I18nProperties)2 CountryCriteria (de.symeda.sormas.api.infrastructure.country.CountryCriteria)2 CountryDto (de.symeda.sormas.api.infrastructure.country.CountryDto)2 UserRight (de.symeda.sormas.api.user.UserRight)2 UserProvider (de.symeda.sormas.ui.UserProvider)2 Page (com.vaadin.server.Page)1 Alignment (com.vaadin.ui.Alignment)1 Button (com.vaadin.ui.Button)1 Label (com.vaadin.ui.Label)1 Notification (com.vaadin.ui.Notification)1 Type (com.vaadin.ui.Notification.Type)1 ValoTheme (com.vaadin.ui.themes.ValoTheme)1 EntityRelevanceStatus (de.symeda.sormas.api.EntityRelevanceStatus)1 HasUuid (de.symeda.sormas.api.HasUuid)1 FeatureType (de.symeda.sormas.api.feature.FeatureType)1 Captions (de.symeda.sormas.api.i18n.Captions)1 Strings (de.symeda.sormas.api.i18n.Strings)1 InfrastructureType (de.symeda.sormas.api.infrastructure.InfrastructureType)1