public Navbar(final String componentId, final IModel<?> model) {
super(componentId, model);
BootstrapResourcesBehavior.addTo(this);
final TransparentWebMarkupContainer container = newContainer("container");
final TransparentWebMarkupContainer collapse = newCollapseContainer("collapse");
final TransparentWebMarkupContainer collapseButton = newCollapseButton("collapseButton", "#" + collapse.getMarkupId());
this.brandNameLink = newBrandNameLink("brandName");
final Component leftAlignedComponentListView = newNavigation("navLeftList", newPositionDependedComponentModel(components, POSITION_FILTER_LEFT));
final Component rightAlignedComponentListView = newNavigation("navRightList", newPositionDependedComponentModel(components, POSITION_FILTER_RIGHT));
extraItems = new RepeatingView("extraItems");
collapse.add(extraItems);
activeStateAppender = new CssClassNameAppender("active");
invertModel = Model.of("");
EnclosureContainer navLeftListEnclosure = new EnclosureContainer("navLeftListEnclosure", leftAlignedComponentListView);
navLeftListEnclosure.add(leftAlignedComponentListView);
navLeftListEnclosure.setRenderBodyOnly(false).setOutputMarkupPlaceholderTag(true);
EnclosureContainer navRightListEnclosure = new EnclosureContainer("navRightListEnclosure", rightAlignedComponentListView);
navRightListEnclosure.add(rightAlignedComponentListView);
navRightListEnclosure.setRenderBodyOnly(false).setOutputMarkupPlaceholderTag(true);
collapse.add(navLeftListEnclosure, navRightListEnclosure);
container.add(collapse, collapseButton, brandNameLink);
collapseButton.add(newToggleNavigationLabel("toggleNavigationLabel"));
add(container);
}