
com.commercetools.sunrise.search.facetedsearch.AbstractFacetedSearchSelectorControllerComponent Maven / Gradle / Ivy
The newest version!
package com.commercetools.sunrise.search.facetedsearch;
import com.commercetools.sunrise.framework.components.controllers.ControllerComponent;
import com.commercetools.sunrise.framework.hooks.application.PageDataReadyHook;
import com.commercetools.sunrise.framework.viewmodels.PageData;
import com.commercetools.sunrise.search.facetedsearch.viewmodels.AbstractFacetSelectorListViewModelFactory;
import com.commercetools.sunrise.search.facetedsearch.viewmodels.WithFacetedSearchViewModel;
import io.sphere.sdk.models.Base;
import io.sphere.sdk.search.PagedSearchResult;
import javax.annotation.Nullable;
public abstract class AbstractFacetedSearchSelectorControllerComponent extends Base implements ControllerComponent, PageDataReadyHook {
private final FacetedSearchFormSettingsList settings;
private final AbstractFacetSelectorListViewModelFactory facetSelectorListViewModelFactory;
protected AbstractFacetedSearchSelectorControllerComponent(final FacetedSearchFormSettingsList settings,
final AbstractFacetSelectorListViewModelFactory facetSelectorListViewModelFactory) {
this.settings = settings;
this.facetSelectorListViewModelFactory = facetSelectorListViewModelFactory;
}
protected final FacetedSearchFormSettingsList getSettings() {
return settings;
}
@Nullable
protected abstract PagedSearchResult getPagedSearchResult();
@Override
public void onPageDataReady(final PageData pageData) {
final PagedSearchResult pagedSearchResult = getPagedSearchResult();
if (pagedSearchResult != null && pageData.getContent() instanceof WithFacetedSearchViewModel) {
final WithFacetedSearchViewModel content = (WithFacetedSearchViewModel) pageData.getContent();
content.setFacets(facetSelectorListViewModelFactory.create(pagedSearchResult));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy