List of usage examples for com.vaadin.data.provider DataProvider fromFilteringCallbacks
public static <T, F> CallbackDataProvider<T, F> fromFilteringCallbacks(FetchCallback<T, F> fetchCallback, CountCallback<T, F> countCallback)
From source file:de.symeda.sormas.ui.caze.CaseGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public CaseGrid() { super(CaseIndexDto.class); setSizeFull();//from ww w . ja v a 2 s. co m if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<CaseIndexDto, CaseCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getCaseFacade() .getIndexList(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getCaseFacade().count(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<CaseIndexDto, String> diseaseShortColumn = addColumn( caze -> DiseaseHelper.toString(caze.getDisease(), caze.getDiseaseDetails())); diseaseShortColumn.setId(DISEASE_SHORT); diseaseShortColumn.setSortProperty(CaseIndexDto.DISEASE); setColumns(CaseIndexDto.UUID, CaseIndexDto.EPID_NUMBER, DISEASE_SHORT, CaseIndexDto.CASE_CLASSIFICATION, CaseIndexDto.OUTCOME, CaseIndexDto.INVESTIGATION_STATUS, CaseIndexDto.PERSON_FIRST_NAME, CaseIndexDto.PERSON_LAST_NAME, CaseIndexDto.DISTRICT_NAME, CaseIndexDto.HEALTH_FACILITY_NAME, CaseIndexDto.POINT_OF_ENTRY_NAME, CaseIndexDto.REPORT_DATE, CaseIndexDto.CREATION_DATE); ((Column<CaseIndexDto, String>) getColumn(CaseIndexDto.UUID)).setRenderer(new UuidRenderer()); ((Column<CaseIndexDto, Date>) getColumn(CaseIndexDto.REPORT_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); if (UserProvider.getCurrent().hasUserRight(UserRight.CASE_IMPORT)) { ((Column<CaseIndexDto, Date>) getColumn(CaseIndexDto.CREATION_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); } else { removeColumn(CaseIndexDto.CREATION_DATE); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(CaseIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(e -> { if ((e.getColumn() != null && CaseIndexDto.UUID.equals(e.getColumn().getId())) || e.getMouseEventDetails().isDoubleClick()) { ControllerProvider.getCaseController().navigateToCase(e.getItem().getUuid()); } }); }
From source file:de.symeda.sormas.ui.configuration.infrastructure.CommunitiesGrid.java
License:Open Source License
public CommunitiesGrid() { super(CommunityDto.class); setSizeFull();// ww w. ja v a 2 s . co m setSelectionMode(SelectionMode.NONE); DataProvider<CommunityDto, CommunityCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getCommunityFacade() .getIndexList(query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getCommunityFacade().count(query.getFilter().orElse(null)); }); setDataProvider(dataProvider); setColumns(CommunityDto.NAME, CommunityDto.REGION, CommunityDto.DISTRICT); if (UserProvider.getCurrent().hasUserRight(UserRight.INFRASTRUCTURE_EDIT)) { Column<CommunityDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); addItemClickListener(e -> { if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getInfrastructureController().editCommunity(e.getItem().getUuid()); } }); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(CommunityDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } }
From source file:de.symeda.sormas.ui.configuration.infrastructure.DistrictsGrid.java
License:Open Source License
public DistrictsGrid() { super(DistrictDto.class); setSizeFull();/*from w w w. j a va 2s .c om*/ setSelectionMode(SelectionMode.NONE); DataProvider<DistrictDto, DistrictCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getDistrictFacade() .getIndexList(query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getDistrictFacade().count(query.getFilter().orElse(null)); }); setDataProvider(dataProvider); setColumns(DistrictDto.NAME, DistrictDto.REGION, DistrictDto.EPID_CODE, DistrictDto.POPULATION, DistrictDto.GROWTH_RATE); if (UserProvider.getCurrent().hasUserRight(UserRight.INFRASTRUCTURE_EDIT)) { Column<DistrictDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); addItemClickListener(e -> { if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getInfrastructureController().editDistrict(e.getItem().getUuid()); } }); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(DistrictDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } }
From source file:de.symeda.sormas.ui.configuration.infrastructure.FacilitiesGrid.java
License:Open Source License
public FacilitiesGrid() { super(FacilityDto.class); setSizeFull();/* w w w. j av a 2s. co m*/ setSelectionMode(SelectionMode.NONE); DataProvider<FacilityDto, FacilityCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getFacilityFacade() .getIndexList(query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getFacilityFacade().count(query.getFilter().orElse(null)); }); setDataProvider(dataProvider); setColumns(FacilityDto.NAME, FacilityDto.REGION, FacilityDto.DISTRICT, FacilityDto.COMMUNITY, FacilityDto.CITY, FacilityDto.LATITUDE, FacilityDto.LONGITUDE); if (UserProvider.getCurrent().hasUserRight(UserRight.INFRASTRUCTURE_EDIT)) { Column<FacilityDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); addItemClickListener(e -> { if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getInfrastructureController().editHealthFacility(e.getItem().getUuid()); } }); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(FacilityDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } }
From source file:de.symeda.sormas.ui.configuration.infrastructure.RegionsGrid.java
License:Open Source License
public RegionsGrid() { super(RegionDto.class); setSizeFull();/*from w w w .j a v a 2 s. c o m*/ setSelectionMode(SelectionMode.NONE); DataProvider<RegionDto, RegionCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getRegionFacade() .getIndexList(query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getRegionFacade().count(query.getFilter().orElse(null)); }); setDataProvider(dataProvider); setColumns(RegionDto.NAME, RegionDto.EPID_CODE, RegionDto.POPULATION, RegionDto.GROWTH_RATE); if (UserProvider.getCurrent().hasUserRight(UserRight.INFRASTRUCTURE_EDIT)) { Column<RegionDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); addItemClickListener(e -> { if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getInfrastructureController().editRegion(e.getItem().getUuid()); } }); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(RegionDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } }
From source file:de.symeda.sormas.ui.contact.ContactGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public ContactGrid() { super(ContactIndexDto.class); setSizeFull();//from ww w. j av a 2 s . c om if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<ContactIndexDto, ContactCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getContactFacade() .getIndexList(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getContactFacade() .count(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<ContactIndexDto, String> diseaseShortColumn = addColumn( entry -> DiseaseHelper.toString(entry.getCaseDisease(), entry.getCaseDiseaseDetails())); diseaseShortColumn.setId(DISEASE_SHORT); diseaseShortColumn.setSortProperty(ContactIndexDto.CASE_DISEASE); Column<ContactIndexDto, String> visitsColumn = addColumn(entry -> { if (FacadeProvider.getDiseaseConfigurationFacade().hasFollowUp(entry.getCaseDisease())) { int numberOfVisits = FacadeProvider.getVisitFacade().getNumberOfVisits(entry.toReference(), null); int numberOfRequiredVisits = ContactLogic.getNumberOfRequiredVisitsSoFar(entry.getReportDateTime(), entry.getFollowUpUntil()); int numberOfMissedVisits = numberOfRequiredVisits - numberOfVisits; // Set number of missed visits to 0 when more visits than expected have been done if (numberOfMissedVisits < 0) { numberOfMissedVisits = 0; } return String.format(I18nProperties.getCaption(Captions.formatNumberOfVisitsFormat), numberOfVisits, numberOfMissedVisits); } else { return "-"; } }); visitsColumn.setId(NUMBER_OF_VISITS); visitsColumn.setSortable(false); Column<ContactIndexDto, String> pendingTasksColumn = addColumn( entry -> String.format(I18nProperties.getCaption(Captions.formatSimpleNumberFormat), FacadeProvider.getTaskFacade().getPendingTaskCountByContact(entry.toReference()))); pendingTasksColumn.setId(NUMBER_OF_PENDING_TASKS); pendingTasksColumn.setSortable(false); setColumns(ContactIndexDto.UUID, DISEASE_SHORT, ContactIndexDto.CONTACT_CLASSIFICATION, ContactIndexDto.CONTACT_STATUS, ContactIndexDto.PERSON, ContactIndexDto.CONTACT_PROXIMITY, ContactIndexDto.FOLLOW_UP_STATUS, NUMBER_OF_VISITS, NUMBER_OF_PENDING_TASKS); getColumn(ContactIndexDto.CONTACT_PROXIMITY).setWidth(200); ((Column<ContactIndexDto, String>) getColumn(ContactIndexDto.UUID)).setRenderer(new UuidRenderer()); for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(ContactIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(e -> { if ((e.getColumn() != null && CaseIndexDto.UUID.equals(e.getColumn().getId())) || e.getMouseEventDetails().isDoubleClick()) { ControllerProvider.getContactController().navigateToData(e.getItem().getUuid()); } }); }
From source file:de.symeda.sormas.ui.events.EventGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public EventGrid() { super(EventIndexDto.class); setSizeFull();/*from w ww. j a va2 s . co m*/ if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<EventIndexDto, EventCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getEventFacade() .getIndexList(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getEventFacade().count(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<EventIndexDto, String> diseaseShortColumn = addColumn( entry -> DiseaseHelper.toString(entry.getDisease(), entry.getDiseaseDetails())); diseaseShortColumn.setId(DISEASE_SHORT); diseaseShortColumn.setSortProperty(EventIndexDto.DISEASE); Column<EventIndexDto, String> informationSourceColumn = addColumn( event -> (event.getSrcFirstName() != null ? event.getSrcFirstName() : "") + " " + (event.getSrcLastName() != null ? event.getSrcLastName() : "") + (event.getSrcTelNo() != null && !event.getSrcTelNo().isEmpty() ? " (" + event.getSrcTelNo() + ")" : "")); informationSourceColumn.setId(INFORMATION_SOURCE); informationSourceColumn.setSortable(false); Column<EventIndexDto, String> pendingTasksColumn = addColumn( entry -> String.format(I18nProperties.getCaption(Captions.formatSimpleNumberFormat), FacadeProvider.getTaskFacade().getPendingTaskCountByEvent(entry.toReference()))); pendingTasksColumn.setId(NUMBER_OF_PENDING_TASKS); pendingTasksColumn.setSortable(false); setColumns(EventIndexDto.UUID, EventIndexDto.EVENT_STATUS, EventIndexDto.EVENT_DATE, DISEASE_SHORT, EventIndexDto.EVENT_DESC, EventIndexDto.EVENT_LOCATION, INFORMATION_SOURCE, EventIndexDto.REPORT_DATE_TIME, NUMBER_OF_PENDING_TASKS); ((Column<EventIndexDto, String>) getColumn(EventIndexDto.UUID)).setRenderer(new UuidRenderer()); ((Column<EventIndexDto, Date>) getColumn(EventIndexDto.EVENT_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); ((Column<EventIndexDto, Date>) getColumn(EventIndexDto.REPORT_DATE_TIME)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(EventIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(e -> { if ((e.getColumn() != null && EventIndexDto.UUID.equals(e.getColumn().getId())) || e.getMouseEventDetails().isDoubleClick()) { ControllerProvider.getEventController().navigateToData(e.getItem().getUuid()); } }); }
From source file:de.symeda.sormas.ui.events.EventParticipantsGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public EventParticipantsGrid() { super(EventParticipantIndexDto.class); setSizeFull();//w w w. ja v a 2 s . co m if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<EventParticipantIndexDto, EventParticipantCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getEventParticipantFacade() .getIndexList(query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getEventParticipantFacade() .count(query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<EventParticipantIndexDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); Column<EventParticipantIndexDto, String> caseIdColumn = addColumn(entry -> { if (entry.getCaseUuid() != null) { return entry.getCaseUuid(); } else { return ""; } }); caseIdColumn.setId(CASE_ID); caseIdColumn.setSortProperty(EventParticipantIndexDto.CASE_UUID); caseIdColumn.setRenderer(new CaseUuidRenderer(true)); setColumns(EDIT_BTN_ID, EventParticipantIndexDto.PERSON_UUID, EventParticipantIndexDto.NAME, EventParticipantIndexDto.SEX, EventParticipantIndexDto.APPROXIMATE_AGE, EventParticipantIndexDto.INVOLVEMENT_DESCRIPTION, CASE_ID); ((Column<EventParticipantIndexDto, String>) getColumn(EventParticipantIndexDto.PERSON_UUID)) .setRenderer(new UuidRenderer()); for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(EventParticipantIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(e -> { if (e.getColumn() != null && CASE_ID.equals(e.getColumn().getId())) { if (e.getItem().getCaseUuid() != null) { ControllerProvider.getCaseController().navigateToCase(e.getItem().getCaseUuid()); } else { EventDto event = FacadeProvider.getEventFacade().getEventByUuid(e.getItem().getEventUuid()); ControllerProvider.getCaseController().create(e.getItem().getPersonUuid(), event.getDisease(), e.getItem().getUuid()); } } else if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getEventParticipantController().editEventParticipant(e.getItem().getUuid()); } }); }
From source file:de.symeda.sormas.ui.samples.SampleGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public SampleGrid() { super(SampleIndexDto.class); setSizeFull();/*from www . j ava2 s.c om*/ if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<SampleIndexDto, SampleCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getSampleFacade() .getIndexList(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getSampleFacade().count(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<SampleIndexDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); Column<SampleIndexDto, String> diseaseShortColumn = addColumn( sample -> DiseaseHelper.toString(sample.getDisease(), sample.getDiseaseDetails())); diseaseShortColumn.setId(DISEASE_SHORT); diseaseShortColumn.setSortProperty(SampleIndexDto.DISEASE); Column<SampleIndexDto, String> pathogenTestResultColumn = addColumn(sample -> { if (sample.getPathogenTestResult() != null) { return sample.getPathogenTestResult().toString(); } else if (sample.getSpecimenCondition() == SpecimenCondition.NOT_ADEQUATE) { return I18nProperties.getCaption(Captions.sampleSpecimenNotAdequate); } else { return ""; } }); pathogenTestResultColumn.setId(PATHOGEN_TEST_RESULT); pathogenTestResultColumn.setSortProperty(SampleIndexDto.PATHOGEN_TEST_RESULT); setColumns(EDIT_BTN_ID, SampleIndexDto.LAB_SAMPLE_ID, SampleIndexDto.EPID_NUMBER, SampleIndexDto.ASSOCIATED_CASE, DISEASE_SHORT, SampleIndexDto.CASE_DISTRICT, SampleIndexDto.SHIPPED, SampleIndexDto.RECEIVED, SampleIndexDto.SHIPMENT_DATE, SampleIndexDto.RECEIVED_DATE, SampleIndexDto.LAB, SampleIndexDto.SAMPLE_MATERIAL, PATHOGEN_TEST_RESULT, SampleIndexDto.ADDITIONAL_TESTING_STATUS); ((Column<SampleIndexDto, Date>) getColumn(SampleIndexDto.SHIPMENT_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateFormat())); ((Column<SampleIndexDto, Date>) getColumn(SampleIndexDto.RECEIVED_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateFormat())); ((Column<SampleIndexDto, Boolean>) getColumn(SampleIndexDto.SHIPPED)).setRenderer(new BooleanRenderer()); ((Column<SampleIndexDto, String>) getColumn(SampleIndexDto.RECEIVED)).setRenderer(new BooleanRenderer()); ((Column<SampleIndexDto, String>) getColumn(SampleIndexDto.LAB)).setMaximumWidth(200); ((Column<SampleIndexDto, String>) getColumn(SampleIndexDto.ADDITIONAL_TESTING_STATUS)).setSortable(false); if (UserProvider.getCurrent().hasUserRole(UserRole.LAB_USER) || UserProvider.getCurrent().hasUserRole(UserRole.EXTERNAL_LAB_USER)) { removeColumn(SampleIndexDto.SHIPMENT_DATE); } else { removeColumn(SampleIndexDto.RECEIVED_DATE); } if (UserProvider.getCurrent().hasUserRole(UserRole.EXTERNAL_LAB_USER)) { removeColumn(SampleIndexDto.ASSOCIATED_CASE); } if (!UserProvider.getCurrent().hasUserRight(UserRight.ADDITIONAL_TEST_VIEW)) { removeColumn(SampleIndexDto.ADDITIONAL_TESTING_STATUS); } for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(SampleIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(e -> { if (e.getColumn() != null && (EDIT_BTN_ID.equals(e.getColumn().getId()) || e.getMouseEventDetails().isDoubleClick())) { ControllerProvider.getSampleController().navigateToData(e.getItem().getUuid()); } }); }
From source file:de.symeda.sormas.ui.task.TaskGrid.java
License:Open Source License
@SuppressWarnings("unchecked") public TaskGrid() { super(TaskIndexDto.class); setSizeFull();/*from w w w .ja va2 s. c o m*/ if (UserProvider.getCurrent().hasUserRight(UserRight.PERFORM_BULK_OPERATIONS)) { setSelectionMode(SelectionMode.MULTI); } else { setSelectionMode(SelectionMode.NONE); } DataProvider<TaskIndexDto, TaskCriteria> dataProvider = DataProvider .fromFilteringCallbacks(query -> FacadeProvider.getTaskFacade() .getIndexList(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null), query.getOffset(), query.getLimit(), query.getSortOrders().stream() .map(sortOrder -> new SortProperty(sortOrder.getSorted(), sortOrder.getDirection() == SortDirection.ASCENDING)) .collect(Collectors.toList())) .stream(), query -> { return (int) FacadeProvider.getTaskFacade().count(UserProvider.getCurrent().getUuid(), query.getFilter().orElse(null)); }); setDataProvider(dataProvider); Column<TaskIndexDto, String> editColumn = addColumn(entry -> VaadinIcons.EDIT.getHtml(), new HtmlRenderer()); editColumn.setId(EDIT_BTN_ID); editColumn.setWidth(20); setStyleGenerator(item -> { if (item != null && item.getTaskStatus() != null) { switch (item.getTaskStatus()) { case REMOVED: return CssStyles.GRID_ROW_STATUS_DISCARDED; case NOT_EXECUTABLE: return CssStyles.GRID_ROW_STATUS_NOT; case DONE: return CssStyles.GRID_ROW_STATUS_DONE; case PENDING: return CssStyles.GRID_ROW_STATUS_PENDING; default: throw new IndexOutOfBoundsException(item.getTaskStatus().toString()); } } return null; }); setColumns(EDIT_BTN_ID, TaskIndexDto.CONTEXT_REFERENCE, TaskIndexDto.TASK_TYPE, TaskIndexDto.PRIORITY, TaskIndexDto.SUGGESTED_START, TaskIndexDto.DUE_DATE, TaskIndexDto.ASSIGNEE_USER, TaskIndexDto.ASSIGNEE_REPLY, TaskIndexDto.CREATOR_USER, TaskIndexDto.CREATOR_COMMENT, TaskIndexDto.TASK_STATUS); ((Column<TaskIndexDto, Date>) getColumn(TaskIndexDto.DUE_DATE)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); ((Column<TaskIndexDto, Date>) getColumn(TaskIndexDto.SUGGESTED_START)) .setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat())); ((Column<TaskIndexDto, String>) getColumn(TaskIndexDto.CREATOR_COMMENT)) .setRenderer(new ShortStringRenderer(50)); Column<TaskIndexDto, ReferenceDto> contextColumn = (Column<TaskIndexDto, ReferenceDto>) getColumn( TaskIndexDto.CONTEXT_REFERENCE); contextColumn.setRenderer(new ReferenceDtoHtmlProvider(), new HtmlRenderer()); contextColumn.setSortable(false); Column<TaskIndexDto, UserReferenceDto> assigneeUserColumn = (Column<TaskIndexDto, UserReferenceDto>) getColumn( TaskIndexDto.ASSIGNEE_USER); assigneeUserColumn.setRenderer(user -> { String html; if (user != null) { html = ControllerProvider.getTaskController().getUserCaptionWithPendingTaskCount(user); } else { html = ""; } return html; }, new HtmlRenderer()); Column<TaskIndexDto, TaskPriority> priorityColumn = (Column<TaskIndexDto, TaskPriority>) getColumn( TaskIndexDto.PRIORITY); priorityColumn.setStyleGenerator(item -> { if (item.getPriority() != null) { switch (item.getPriority()) { case HIGH: return CssStyles.GRID_CELL_PRIORITY_HIGH; case NORMAL: return CssStyles.GRID_CELL_PRIORITY_NORMAL; case LOW: return CssStyles.GRID_CELL_PRIORITY_LOW; default: throw new IndexOutOfBoundsException(item.getPriority().toString()); } } return null; }); Column<TaskIndexDto, Date> dueDateColumn = (Column<TaskIndexDto, Date>) getColumn(TaskIndexDto.DUE_DATE); dueDateColumn.setStyleGenerator(item -> { Date dueDate = item.getDueDate(); if (dueDate != null && dueDate.before(new Date())) { return CssStyles.GRID_CELL_WARNING; } return null; }); for (Column<?, ?> column : getColumns()) { column.setCaption(I18nProperties.getPrefixCaption(TaskIndexDto.I18N_PREFIX, column.getId().toString(), column.getCaption())); } addItemClickListener(this); }