@Override
  protected void onInit() {
    super.onInit();

    contents = new LocatableVLayout(extendLocatorId("Contents"));
    contents.setWidth100();
    contents.setHeight100();

    addMember(contents);

    filterForm = new CarouselFilter(this);

    /*
     * carousel filters and search bar are currently mutually exclusive
     */

    if (getSearchSubsystem() == null) {
      configureCarouselFilters();

    } else {
      if (!this.hideSearchBar) {
        final EnhancedSearchBarItem searchFilter =
            new EnhancedSearchBarItem(
                "search", getSearchSubsystem(), getInitialSearchBarSearchText());
        setFilterFormItems(searchFilter);
      }
    }

    carouselHolder = new LocatableHLayout(extendLocatorId("Holder"));
    carouselHolder.setOverflow(Overflow.AUTO);
    carouselHolder.setWidth100();
    contents.addMember(carouselHolder);
  }
 /**
  * Overriding components can use this as a chance to add {@link FormItem}s which will filter the
  * carousel members that display their data. If not overriden the standard carousel filters are
  * applied.
  */
 protected void configureCarouselFilters() {
   setFilterFormItems();
 }