Example usage for org.apache.wicket.markup.html.list ListView setModel

List of usage examples for org.apache.wicket.markup.html.list ListView setModel

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.list ListView setModel.

Prototype

public final void setModel(IModel<? extends List<T>> model) 

Source Link

Document

Sets model

Usage

From source file:com.marc.lastweek.web.pages.classifiedadslisting.FilterResultsPage.java

License:Open Source License

public FilterResultsPage(PageParameters parameters) {
    super(parameters);

    boolean hasCategory = false;
    boolean hasSubcategory = false;
    boolean hasProvince = false;

    final FilterParameters filterParameters = new FilterParameters();
    int paramCounter = 0;

    if (parameters.get(PageParametersNaming.PARAM_NAME_SEARCH_TERM) != null) {
        paramCounter++;//from  w  w  w  .  ja  v a 2s  . c om
        filterParameters.setSearchString(StringEscapeUtils
                .unescapeHtml(parameters.getString(PageParametersNaming.PARAM_NAME_SEARCH_TERM)));
    }
    if (parameters.get(PageParametersNaming.PARAM_NAME_CATEGORY_ID) != null) {
        hasCategory = true;
        paramCounter++;
        this.categoryName = parameters.getString(PageParametersNaming.PARAM_NAME_CATEGORY_NAME);
        filterParameters
                .setCategoryId(new Long(parameters.getLong(PageParametersNaming.PARAM_NAME_CATEGORY_ID)));
    }
    if (parameters.get(PageParametersNaming.PARAM_NAME_SUBCATEGORY_ID) != null) {
        hasSubcategory = true;
        paramCounter++;
        this.subcategoryName = parameters.getString(PageParametersNaming.PARAM_NAME_SUBCATEGORY_NAME);
        filterParameters
                .setSubcategoryId(new Long(parameters.getLong(PageParametersNaming.PARAM_NAME_SUBCATEGORY_ID)));
    }
    if (parameters.get(PageParametersNaming.PARAM_NAME_PROVINCE_ID) != null) {
        hasProvince = true;
        paramCounter++;
        this.provinceName = parameters.getString(PageParametersNaming.PARAM_NAME_PROVINCE_NAME);
        filterParameters
                .setProvinceId(new Long(parameters.getLong(PageParametersNaming.PARAM_NAME_PROVINCE_ID)));
    }

    if (paramCounter == 0) {
        setResponsePage(LastweekApplication.get().getHomePage());
    }

    this.addFilterParametersToHistory(filterParameters);

    /*
     * The results panel
     */
    this.add(new ClassifiedAdsListPanel("classifiedAdsPanel", filterParameters));

    /*
     * The filter parameters panel
     */
    this.add(new FilterParametersPanel("filterParameters", parameters));

    /*
     * Propaganda boxes
     */
    this.add(new CreateNewAdPropagandaPanel("createNewAd"));

    /*
     * Categories
     */
    WebMarkupContainer categoriesDiv = new WebMarkupContainer("categoriesDiv");
    ListView categoiresList = new ListView("categoriesList") {

        private static final long serialVersionUID = -5142681180212487928L;

        @Override
        protected void populateItem(ListItem listItem) {
            Category category = (Category) listItem.getModelObject();

            PageParameters linkParameters = new PageParameters();
            linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_ID, category.getId());
            linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_NAME,
                    StringEscapeUtils.escapeHtml(category.getName()));
            if (filterParameters.getSearchString() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_SEARCH_TERM,
                        filterParameters.getSearchString());
            }
            if (filterParameters.getProvinceId() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_ID,
                        filterParameters.getProvinceId());
                linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_NAME,
                        ViewUtils.normalize(FilterResultsPage.this.provinceName));
            }

            BookmarkablePageLink categoryLink = new BookmarkablePageLink("categoryLink",
                    FilterResultsPage.class, linkParameters);

            categoryLink.add(new Label("categoryName", category.getName()));
            listItem.add(categoryLink);
        }
    };
    if (!hasCategory) {
        categoiresList.setModel(new LoadableCategoriesListModel());
    } else {
        categoriesDiv.setVisible(false);
    }
    categoriesDiv.add(categoiresList);
    this.add(categoriesDiv);

    /*
     * Provinces
     */
    WebMarkupContainer provincesDiv = new WebMarkupContainer("provincesDiv");
    ListView provincesList = new ListView("provincesList") {

        private static final long serialVersionUID = -5843308083402561880L;

        @Override
        protected void populateItem(ListItem listItem) {
            Province province = (Province) listItem.getModelObject();

            PageParameters linkParameters = new PageParameters();
            linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_ID, province.getId());
            linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_NAME,
                    StringEscapeUtils.escapeHtml(province.getName()));
            if (filterParameters.getSearchString() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_SEARCH_TERM,
                        filterParameters.getSearchString());
            }
            if (filterParameters.getCategoryId() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_ID,
                        filterParameters.getCategoryId());
                linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_NAME,
                        FilterResultsPage.this.categoryName);
            }
            if (filterParameters.getSubcategoryId() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_SUBCATEGORY_ID,
                        filterParameters.getSubcategoryId());
                linkParameters.put(PageParametersNaming.PARAM_NAME_SUBCATEGORY_NAME,
                        FilterResultsPage.this.subcategoryName);
            }

            BookmarkablePageLink provinceLink = new BookmarkablePageLink("provinceLink",
                    FilterResultsPage.class, linkParameters);
            provinceLink.add(new Label("provinceName", province.getName()));

            if (listItem.getIndex() % 2 == 1) {
                listItem.add(new SimpleAttributeModifier("class", "parallel-column"));
            }

            listItem.add(provinceLink);
        }
    };
    if (!hasProvince) {
        provincesList.setModel(new LoadableProvincesListModel());
    } else {
        provincesDiv.setVisible(false);
    }
    provincesDiv.add(provincesList);
    this.add(provincesDiv);

    /*
     * Subcategories
     */
    WebMarkupContainer subcategoriesDiv = new WebMarkupContainer("subcategoriesDiv");
    ListView subcategoriesList = new ListView("subcategoriesList") {

        private static final long serialVersionUID = -5142681180212487928L;

        @Override
        protected void populateItem(ListItem listItem) {
            Subcategory subcategory = (Subcategory) listItem.getModelObject();

            PageParameters linkParameters = new PageParameters();
            linkParameters.put(PageParametersNaming.PARAM_NAME_SUBCATEGORY_ID, subcategory.getId());
            linkParameters.put(PageParametersNaming.PARAM_NAME_SUBCATEGORY_NAME,
                    StringEscapeUtils.escapeHtml(subcategory.getName()));
            if (filterParameters.getSearchString() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_SEARCH_TERM,
                        filterParameters.getSearchString());
            }
            if (filterParameters.getCategoryId() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_ID,
                        filterParameters.getCategoryId());
                linkParameters.put(PageParametersNaming.PARAM_NAME_CATEGORY_NAME,
                        FilterResultsPage.this.categoryName);
            }
            if (filterParameters.getProvinceId() != null) {
                linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_ID,
                        filterParameters.getProvinceId());
                linkParameters.put(PageParametersNaming.PARAM_NAME_PROVINCE_NAME,
                        FilterResultsPage.this.provinceName);
            }

            BookmarkablePageLink subcategoryLink = new BookmarkablePageLink("subcategoryLink",
                    FilterResultsPage.class, linkParameters);
            subcategoryLink.add(new Label("subcategoryName", subcategory.getName()));
            listItem.add(subcategoryLink);
        }
    };
    if (!hasSubcategory && hasCategory) {
        subcategoriesList.setModel(new LoadableSubcategoriesListModel(filterParameters.getCategoryId()));
    } else {
        subcategoriesDiv.setVisible(false);
    }
    subcategoriesDiv.add(subcategoriesList);
    this.add(subcategoriesDiv);
}