Search in sources :

Example 1 with EventParticipantDownloadUtil

use of de.symeda.sormas.ui.utils.EventParticipantDownloadUtil in project SORMAS-Project by hzi-braunschweig.

the class EventParticipantsView method createTopBar.

public HorizontalLayout createTopBar() {
    HorizontalLayout topLayout = new HorizontalLayout();
    topLayout.setSpacing(true);
    topLayout.setWidth("100%");
    VerticalLayout exportLayout = new VerticalLayout();
    {
        exportLayout.setSpacing(true);
        exportLayout.setMargin(true);
        exportLayout.addStyleName(CssStyles.LAYOUT_MINIMAL);
        exportLayout.setWidth(250, Unit.PIXELS);
    }
    // import
    if (UserProvider.getCurrent().hasUserRight(UserRight.EVENTPARTICIPANT_IMPORT)) {
        Button importButton = ButtonHelper.createIconButton(Captions.actionImport, VaadinIcons.UPLOAD, e -> {
            Window popupWindow = VaadinUiUtil.showPopupWindow(new EventParticipantImportLayout(getEventRef()));
            popupWindow.setCaption(I18nProperties.getString(Strings.headingImportEventParticipant));
            popupWindow.addCloseListener(c -> this.grid.reload());
        }, ValoTheme.BUTTON_PRIMARY);
        addHeaderComponent(importButton);
    }
    // export
    PopupButton exportPopupButton = ButtonHelper.createIconPopupButton(Captions.export, VaadinIcons.DOWNLOAD, exportLayout);
    addHeaderComponent(exportPopupButton);
    {
        StreamResource streamResource = GridExportStreamResource.createStreamResourceWithSelectedItems(grid, () -> this.grid.getSelectionModel() instanceof MultiSelectionModelImpl ? this.grid.asMultiSelect().getSelectedItems() : null, ExportEntityName.EVENT_PARTICIPANTS);
        addExportButton(streamResource, exportPopupButton, exportLayout, VaadinIcons.TABLE, Captions.exportBasic, Strings.infoBasicExport);
    }
    {
        StreamResource extendedExportStreamResource = EventParticipantDownloadUtil.createExtendedEventParticipantExportResource(grid.getCriteria(), this::getSelectedRows, null);
        addExportButton(extendedExportStreamResource, exportPopupButton, exportLayout, VaadinIcons.FILE_TEXT, Captions.exportDetailed, Descriptions.descDetailedExportButton);
    }
    {
        Button btnCustomExport = ButtonHelper.createIconButton(Captions.exportCustom, VaadinIcons.FILE_TEXT, e -> {
            Window customExportWindow = VaadinUiUtil.createPopupWindow();
            ExportConfigurationsLayout customExportsLayout = new ExportConfigurationsLayout(ExportType.EVENT_PARTICIPANTS, ImportExportUtils.getEventParticipantExportProperties(EventParticipantDownloadUtil::getPropertyCaption, FacadeProvider.getConfigFacade().getCountryLocale()), customExportWindow::close);
            customExportsLayout.setExportCallback((exportConfig) -> Page.getCurrent().open(EventParticipantDownloadUtil.createExtendedEventParticipantExportResource(grid.getCriteria(), this::getSelectedRows, exportConfig), null, true));
            customExportWindow.setWidth(1024, Unit.PIXELS);
            customExportWindow.setCaption(I18nProperties.getCaption(Captions.exportCustom));
            customExportWindow.setContent(customExportsLayout);
            UI.getCurrent().addWindow(customExportWindow);
            exportPopupButton.setPopupVisible(false);
        }, ValoTheme.BUTTON_PRIMARY);
        btnCustomExport.setDescription(I18nProperties.getString(Strings.infoCustomExport));
        btnCustomExport.setWidth(100, Unit.PERCENTAGE);
        exportLayout.addComponent(btnCustomExport);
    }
    filterForm = new EventParticipantsFilterForm();
    filterForm.addValueChangeListener(e -> {
        if (!filterForm.hasFilter()) {
            navigateTo(null);
        }
    });
    filterForm.addResetHandler(e -> {
        ViewModelProviders.of(EventParticipantsView.class).remove(EventParticipantCriteria.class);
        navigateTo(null);
    });
    filterForm.addApplyHandler(e -> navigateTo(criteria));
    topLayout.addComponent(filterForm);
    // Bulk operation dropdown
    if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS_EVENTPARTICIPANT)) {
        topLayout.setWidth(100, Unit.PERCENTAGE);
        List<MenuBarHelper.MenuBarItem> bulkActions = new ArrayList<>();
        bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkEventParticipantsToContacts), VaadinIcons.HAND, mi -> {
            grid.bulkActionHandler(items -> {
                EventDto eventDto = FacadeProvider.getEventFacade().getEventByUuid(getEventRef().getUuid(), false);
                ControllerProvider.getContactController().openLineListingWindow(eventDto, items);
            }, true);
        }));
        if (UserProvider.getCurrent().hasUserRight(UserRight.EVENTPARTICIPANT_DELETE)) {
            bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkDelete), VaadinIcons.TRASH, mi -> {
                grid.bulkActionHandler(items -> {
                    ControllerProvider.getEventParticipantController().deleteAllSelectedItems(items, () -> navigateTo(criteria));
                }, true);
            }));
        }
        if (isDocGenerationAllowed()) {
            bulkActions.add(new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkActionCreatDocuments), VaadinIcons.FILE_TEXT, mi -> {
                grid.bulkActionHandler(items -> {
                    List<EventParticipantReferenceDto> references = grid.asMultiSelect().getSelectedItems().stream().map(EventParticipantIndexDto::toReference).collect(Collectors.toList());
                    if (references.size() == 0) {
                        new Notification(I18nProperties.getString(Strings.headingNoEventParticipantsSelected), I18nProperties.getString(Strings.messageNoEventParticipantsSelected), Notification.Type.WARNING_MESSAGE, false).show(Page.getCurrent());
                        return;
                    }
                    EventDto eventDto = FacadeProvider.getEventFacade().getEventByUuid(getEventRef().getUuid(), false);
                    ControllerProvider.getDocGenerationController().showBulkEventParticipantQuarantineOrderDocumentDialog(references, eventDto.getDisease());
                });
            }));
        }
        MenuBar bulkOperationsDropdown = MenuBarHelper.createDropDown(Captions.bulkActions, bulkActions);
        topLayout.addComponent(bulkOperationsDropdown);
        topLayout.setComponentAlignment(bulkOperationsDropdown, Alignment.TOP_RIGHT);
    }
    topLayout.addStyleName(CssStyles.VSPACE_3);
    return topLayout;
}
Also used : Window(com.vaadin.ui.Window) FeatureType(de.symeda.sormas.api.feature.FeatureType) I18nProperties(de.symeda.sormas.api.i18n.I18nProperties) Alignment(com.vaadin.ui.Alignment) UI(com.vaadin.ui.UI) Window(com.vaadin.ui.Window) DetailSubComponentWrapper(de.symeda.sormas.ui.utils.DetailSubComponentWrapper) ControllerProvider(de.symeda.sormas.ui.ControllerProvider) ExportEntityName(de.symeda.sormas.ui.utils.ExportEntityName) ViewModelProviders(de.symeda.sormas.ui.ViewModelProviders) CssStyles(de.symeda.sormas.ui.utils.CssStyles) MenuBarHelper(de.symeda.sormas.ui.utils.MenuBarHelper) Page(com.vaadin.server.Page) VaadinIcons(com.vaadin.icons.VaadinIcons) ComboBoxHelper(de.symeda.sormas.ui.utils.ComboBoxHelper) EventParticipantReferenceDto(de.symeda.sormas.api.event.EventParticipantReferenceDto) UserProvider(de.symeda.sormas.ui.UserProvider) ValoTheme(com.vaadin.ui.themes.ValoTheme) MenuBar(com.vaadin.ui.MenuBar) ComboBox(com.vaadin.v7.ui.ComboBox) ExportType(de.symeda.sormas.api.importexport.ExportType) Set(java.util.Set) EventDto(de.symeda.sormas.api.event.EventDto) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) MultiSelectionModelImpl(com.vaadin.ui.components.grid.MultiSelectionModelImpl) CoreEntityType(de.symeda.sormas.api.common.CoreEntityType) Descriptions(de.symeda.sormas.api.i18n.Descriptions) ExportConfigurationsLayout(de.symeda.sormas.ui.customexport.ExportConfigurationsLayout) StreamResource(com.vaadin.server.StreamResource) VaadinUiUtil(de.symeda.sormas.ui.utils.VaadinUiUtil) FacadeProvider(de.symeda.sormas.api.FacadeProvider) VerticalLayout(com.vaadin.ui.VerticalLayout) EventParticipantCriteria(de.symeda.sormas.api.event.EventParticipantCriteria) GridExportStreamResource(de.symeda.sormas.ui.utils.GridExportStreamResource) PopupButton(org.vaadin.hene.popupbutton.PopupButton) EntityRelevanceStatus(de.symeda.sormas.api.EntityRelevanceStatus) ArrayList(java.util.ArrayList) EventParticipantImportLayout(de.symeda.sormas.ui.events.eventparticipantimporter.EventParticipantImportLayout) Notification(com.vaadin.ui.Notification) Label(com.vaadin.ui.Label) EventParticipantIndexDto(de.symeda.sormas.api.event.EventParticipantIndexDto) ButtonHelper(de.symeda.sormas.ui.utils.ButtonHelper) ContentMode(com.vaadin.shared.ui.ContentMode) Captions(de.symeda.sormas.api.i18n.Captions) UserRight(de.symeda.sormas.api.user.UserRight) Button(com.vaadin.ui.Button) LayoutUtil(de.symeda.sormas.ui.utils.LayoutUtil) ImportExportUtils(de.symeda.sormas.api.importexport.ImportExportUtils) HorizontalLayout(com.vaadin.ui.HorizontalLayout) EventParticipantDownloadUtil(de.symeda.sormas.ui.utils.EventParticipantDownloadUtil) FeatureTypeProperty(de.symeda.sormas.api.feature.FeatureTypeProperty) Strings(de.symeda.sormas.api.i18n.Strings) DocGenerationHelper.isDocGenerationAllowed(de.symeda.sormas.ui.docgeneration.DocGenerationHelper.isDocGenerationAllowed) Collections(java.util.Collections) ExportConfigurationsLayout(de.symeda.sormas.ui.customexport.ExportConfigurationsLayout) EventParticipantImportLayout(de.symeda.sormas.ui.events.eventparticipantimporter.EventParticipantImportLayout) EventParticipantDownloadUtil(de.symeda.sormas.ui.utils.EventParticipantDownloadUtil) ArrayList(java.util.ArrayList) EventDto(de.symeda.sormas.api.event.EventDto) MenuBar(com.vaadin.ui.MenuBar) Notification(com.vaadin.ui.Notification) HorizontalLayout(com.vaadin.ui.HorizontalLayout) MenuBarHelper(de.symeda.sormas.ui.utils.MenuBarHelper) PopupButton(org.vaadin.hene.popupbutton.PopupButton) StreamResource(com.vaadin.server.StreamResource) GridExportStreamResource(de.symeda.sormas.ui.utils.GridExportStreamResource) PopupButton(org.vaadin.hene.popupbutton.PopupButton) Button(com.vaadin.ui.Button) MultiSelectionModelImpl(com.vaadin.ui.components.grid.MultiSelectionModelImpl) VerticalLayout(com.vaadin.ui.VerticalLayout) List(java.util.List) ArrayList(java.util.ArrayList) EventParticipantIndexDto(de.symeda.sormas.api.event.EventParticipantIndexDto)

Aggregations

VaadinIcons (com.vaadin.icons.VaadinIcons)1 Page (com.vaadin.server.Page)1 StreamResource (com.vaadin.server.StreamResource)1 ContentMode (com.vaadin.shared.ui.ContentMode)1 Alignment (com.vaadin.ui.Alignment)1 Button (com.vaadin.ui.Button)1 HorizontalLayout (com.vaadin.ui.HorizontalLayout)1 Label (com.vaadin.ui.Label)1 MenuBar (com.vaadin.ui.MenuBar)1 Notification (com.vaadin.ui.Notification)1 UI (com.vaadin.ui.UI)1 VerticalLayout (com.vaadin.ui.VerticalLayout)1 Window (com.vaadin.ui.Window)1 MultiSelectionModelImpl (com.vaadin.ui.components.grid.MultiSelectionModelImpl)1 ValoTheme (com.vaadin.ui.themes.ValoTheme)1 ComboBox (com.vaadin.v7.ui.ComboBox)1 EntityRelevanceStatus (de.symeda.sormas.api.EntityRelevanceStatus)1 FacadeProvider (de.symeda.sormas.api.FacadeProvider)1 CoreEntityType (de.symeda.sormas.api.common.CoreEntityType)1 EventDto (de.symeda.sormas.api.event.EventDto)1