use of com.vaadin.ui.components.grid.MultiSelectionModelImpl in project SORMAS-Project by hzi-braunschweig.
the class ContactVisitsView method createTopBar.
public HorizontalLayout createTopBar() {
HorizontalLayout topLayout = new HorizontalLayout();
topLayout.setSpacing(true);
topLayout.setWidth(100, Unit.PERCENTAGE);
topLayout.addStyleName(CssStyles.VSPACE_3);
if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) {
topLayout.setWidth(100, Unit.PERCENTAGE);
MenuBar bulkOperationsDropdown = MenuBarHelper.createDropDown(Captions.bulkActions, new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkDelete), VaadinIcons.TRASH, selectedItem -> {
ControllerProvider.getVisitController().deleteAllSelectedItems(grid.asMultiSelect().getSelectedItems(), new Runnable() {
public void run() {
navigateTo(criteria);
}
});
}));
topLayout.addComponent(bulkOperationsDropdown);
topLayout.setComponentAlignment(bulkOperationsDropdown, Alignment.MIDDLE_RIGHT);
topLayout.setExpandRatio(bulkOperationsDropdown, 1);
}
if (UserProvider.getCurrent().hasUserRight(UserRight.VISIT_EXPORT)) {
Button exportButton = ButtonHelper.createIconButton(Captions.export, VaadinIcons.DOWNLOAD, null, ValoTheme.BUTTON_PRIMARY);
{
topLayout.addComponent(exportButton);
topLayout.setComponentAlignment(exportButton, Alignment.MIDDLE_RIGHT);
if (topLayout.getComponentCount() == 1) {
topLayout.setExpandRatio(exportButton, 1);
}
}
StreamResource exportStreamResource = DownloadUtil.createCsvExportStreamResource(VisitExportDto.class, VisitExportType.CONTACT_VISITS, (Integer start, Integer max) -> FacadeProvider.getVisitFacade().getVisitsExportList(grid.getCriteria(), grid.getSelectionModel() instanceof MultiSelectionModelImpl ? grid.asMultiSelect().getSelectedItems().stream().map(VisitIndexDto::getUuid).collect(Collectors.toSet()) : null, VisitExportType.CONTACT_VISITS, start, max, null), (propertyId, type) -> {
String caption = findPrefixCaption(propertyId, VisitExportDto.I18N_PREFIX, VisitDto.I18N_PREFIX, PersonDto.I18N_PREFIX, SymptomsDto.I18N_PREFIX);
if (Date.class.isAssignableFrom(type)) {
caption += " (" + DateFormatHelper.getDateFormatPattern() + ")";
}
return caption;
}, ExportEntityName.CONTACT_VISITS, null);
new FileDownloader(exportStreamResource).extend(exportButton);
}
if (UserProvider.getCurrent().hasUserRight(UserRight.VISIT_CREATE)) {
newButton = ButtonHelper.createIconButton(Captions.visitNewVisit, VaadinIcons.PLUS_CIRCLE, e -> ControllerProvider.getVisitController().createVisit(this.getContactRef(), r -> navigateTo(criteria)), ValoTheme.BUTTON_PRIMARY);
topLayout.addComponent(newButton);
topLayout.setComponentAlignment(newButton, Alignment.MIDDLE_RIGHT);
final ContactDto contactDto = FacadeProvider.getContactFacade().getByUuid(this.getContactRef().getUuid());
if (contactDto.getResultingCase() != null) {
newButton.setEnabled(false);
final Label label = new Label(VaadinIcons.INFO_CIRCLE.getHtml(), ContentMode.HTML);
label.setDescription(I18nProperties.getString(Strings.infoContactAlreadyConvertedToCase));
topLayout.addComponent(label);
topLayout.setComponentAlignment(label, Alignment.MIDDLE_RIGHT);
}
}
return topLayout;
}
use of com.vaadin.ui.components.grid.MultiSelectionModelImpl in project SORMAS-Project by hzi-braunschweig.
the class CaseVisitsView method createTopBar.
public HorizontalLayout createTopBar() {
HorizontalLayout topLayout = new HorizontalLayout();
topLayout.setSpacing(true);
topLayout.setWidth(100, Unit.PERCENTAGE);
topLayout.addStyleName(CssStyles.VSPACE_3);
if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) {
topLayout.setWidth(100, Unit.PERCENTAGE);
MenuBar bulkOperationsDropdown = MenuBarHelper.createDropDown(Captions.bulkActions, new MenuBarHelper.MenuBarItem(I18nProperties.getCaption(Captions.bulkDelete), VaadinIcons.TRASH, selectedItem -> {
ControllerProvider.getVisitController().deleteAllSelectedItems(grid.asMultiSelect().getSelectedItems(), () -> navigateTo(criteria));
}));
topLayout.addComponent(bulkOperationsDropdown);
topLayout.setComponentAlignment(bulkOperationsDropdown, Alignment.MIDDLE_RIGHT);
topLayout.setExpandRatio(bulkOperationsDropdown, 1);
}
if (UserProvider.getCurrent().hasUserRight(UserRight.VISIT_EXPORT)) {
Button exportButton = ButtonHelper.createIconButton(Captions.export, VaadinIcons.DOWNLOAD, null, ValoTheme.BUTTON_PRIMARY);
{
topLayout.addComponent(exportButton);
topLayout.setComponentAlignment(exportButton, Alignment.MIDDLE_RIGHT);
if (topLayout.getComponentCount() == 1) {
topLayout.setExpandRatio(exportButton, 1);
}
}
StreamResource exportStreamResource = DownloadUtil.createCsvExportStreamResource(VisitExportDto.class, VisitExportType.CONTACT_VISITS, (Integer start, Integer max) -> FacadeProvider.getVisitFacade().getVisitsExportList(grid.getCriteria(), grid.getSelectionModel() instanceof MultiSelectionModelImpl ? grid.asMultiSelect().getSelectedItems().stream().map(VisitIndexDto::getUuid).collect(Collectors.toSet()) : null, VisitExportType.CONTACT_VISITS, start, max, null), (propertyId, type) -> {
String caption = findPrefixCaption(propertyId, VisitExportDto.I18N_PREFIX, VisitDto.I18N_PREFIX, PersonDto.I18N_PREFIX, SymptomsDto.I18N_PREFIX);
if (Date.class.isAssignableFrom(type)) {
caption += " (" + DateFormatHelper.getDateFormatPattern() + ")";
}
return caption;
}, ExportEntityName.CASE_VISITS, null);
new FileDownloader(exportStreamResource).extend(exportButton);
}
if (UserProvider.getCurrent().hasUserRight(UserRight.VISIT_CREATE)) {
newButton = ButtonHelper.createIconButton(Captions.visitNewVisit, VaadinIcons.PLUS_CIRCLE, e -> {
ControllerProvider.getVisitController().createVisit(this.getCaseRef(), r -> navigateTo(criteria));
}, ValoTheme.BUTTON_PRIMARY);
topLayout.addComponent(newButton);
topLayout.setComponentAlignment(newButton, Alignment.MIDDLE_RIGHT);
}
return topLayout;
}
use of com.vaadin.ui.components.grid.MultiSelectionModelImpl 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;
}
Aggregations