package com.constellio.app.modules.rm.reports.builders.search; import java.util.List; import java.util.Locale; import com.constellio.app.modules.rm.reports.model.search.SearchResultReportModel; import com.constellio.app.modules.rm.reports.model.search.SearchResultReportPresenter; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.app.ui.application.ConstellioUI; import com.constellio.app.ui.framework.reports.NewReportWriterFactory; import com.constellio.app.ui.framework.reports.ReportWriter; import com.constellio.model.conf.FoldersLocator; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.search.query.logical.LogicalSearchQuery; public class SearchResultReportWriterFactory implements NewReportWriterFactory<SearchResultReportParameters> { protected AppLayerFactory appLayerFactory; public SearchResultReportWriterFactory(AppLayerFactory appLayerFactory) { this.appLayerFactory = appLayerFactory; } @Override public ReportWriter getReportBuilder(SearchResultReportParameters parameters) { FoldersLocator folderLocator = appLayerFactory.getModelLayerFactory().getFoldersLocator(); Locale locale = ConstellioUI.getCurrentSessionContext().getCurrentLocale(); SearchResultReportPresenter searchResultPresenter = new SearchResultReportPresenter(appLayerFactory, parameters.getSelectedRecords(), parameters.getSchemaType(), parameters.getCollection(), parameters.getUsername(), parameters.getReportTitle(), parameters.getSearchQuery(), locale); return new SearchResultReportWriter(searchResultPresenter.buildModel(appLayerFactory.getModelLayerFactory()), folderLocator, locale); } @Override public String getFilename(SearchResultReportParameters parameters) { return parameters.getReportTitle() + "." + new SearchResultReportWriter(new SearchResultReportModel(), null, null) .getFileExtension(); } }