package sushi.application.components; import org.apache.wicket.model.IModel; import de.agilecoders.wicket.markup.html.bootstrap.behavior.CssClassNameAppender; import de.agilecoders.wicket.markup.html.bootstrap.button.ButtonSize; import de.agilecoders.wicket.markup.html.bootstrap.button.ButtonType; import de.agilecoders.wicket.markup.html.bootstrap.button.dropdown.DropDownButton; import de.agilecoders.wicket.markup.html.bootstrap.navbar.Navbar; /** * Subclass of {@link DropDownButton} for a {@link Navbar}. * This DropDownButton solves the problem for being displayed correctly after a refresh. * @author micha */ public class SushiNavBarDropDownButton extends DropDownButton { private static final long serialVersionUID = 1L; static final String COMPONENT_ID = "component"; /** * Constructor for the {@link SushiNavBarDropDownButton}. * * @param model the label of this dropdown button */ public SushiNavBarDropDownButton(final IModel<String> model) { super(COMPONENT_ID, model); } @Override protected void onConfigure() { super.onConfigure(); this.setRenderBodyOnly(true); this.getParent().add(new CssClassNameAppender("dropdown")); } @Override protected void addButtonBehavior(final IModel<ButtonType> buttonType, final IModel<ButtonSize> buttonSize) { // do nothing, because navbar dropdown button inherits its styles from navbar. } }