public class MenuBarPanel extends org.apache.wicket.markup.html.panel.Panel implements IStyleResolver
MenuBarPanel
consits of several Menu
s where each Menu
consist of IMenuLink
s.
A MenuBarPanel
can be constructed e.g. like this:
List<Menu> menus = new ArrayList<Menu>(); // The MenuItems for the first Menu List<MenuItem> menu1Items = new ArrayList<MenuItem>(); menu1Items.add(new MenuItem(new Model<String>("Visible menu item 1.1"), new LinkToPage(Page1.class))); menu1Items.add(new MenuItem(new Model<String>("Visible but disabled menu item 1.2"), new LinkToPage(Page2.class)).setEnabled(false)); menu1Items.add(new MenuItem(new Model<String>("Invisible menu item 1.3"), new LinkToPage(Page3.class)).setVisible(false)); menu1Items.add(new MenuItem(new Model<String>("visible menu item 1.4"), new LinkToPage(Page4.class))); menus.add(new Menu(new Model<String>("First menu"), menu1Items)); // The MenuItems for the second Menu List<MenuItem> menu2Items = new ArrayList<MenuItem>(); menu2Items.add(new MenuItem(new Model<String>("Visible menu item 2.1"), "http://www.wicketframework.org")); menu2Items.add(new MenuItem(new Model<String>("Visible but disabled menu item 2.2"), new LinkToPage(Page1.class)).setEnabled(false)); menu2Items.add(new MenuItem(new Model<String>("Invisible menu item 2.3"), new LinkToPage(null, Page2.class)).setVisible(false)); menu2Items.add(new MenuItem(new Model<String>("visible menu item 2.4"), new LinkToPage(Page3.class))); menus.add(new Menu(new Model<String>("Second menu"), menu2Items)); add(new MenuBarPanel("menuBar", menus); ... private class LinkToPage implements IPageLink { private Class<? extends Page> pageClass; public LinkToPage(Class<? extends Page> pageClass) { this.pageClass = pageClass; } public Page getPage() { return pageClass.newInstance(); }The HTML markup for this example looks like this:
<div wicket:id="menuBar">[[The menu bar goes here]]</div>You need the following css code to get this example to work with IE:
.menubar h1 { text-align: center; padding: 0 0 0.25em 0; margin: 0; z-index: 999; } .menubar ul { list-style: none; padding: 0; margin: 0; z-index: 999; } #nav a { font-weight: bold; color: rgb(15,15,15); text-align: left; text-decoration: none; text-align: left; } #nav li li a { font-weight: bold; text-align: left; display: block; color: rgb(41,41,41); padding : 0.2em 10px; white-space : nowrap; z-index: 999; } #nav li li.disabled { font-weight: bold; text-align: left; display: block; padding : 0.2em 10px; white-space : nowrap; z-index: 999; } #nav li li a:hover { padding: 0.2em 5px; border: 1px solid rgb(34,69,104); border-width: 0 5px; text-align: left; } .menubar li { float: left; position: relative; text-align: center; cursor: default; background-color: rgb(152,186,225); border: 1px solid rgb(34,69,104); border-width: 1px 0; text-align: left; z-index: 999; } .menubar li#singleMenu { padding-left: 1em; padding-right: 1em; border-left-width: 2px; border-right-width: 2px; margin-right: 2px; white-space : nowrap; } .menubar li#firstMenu { padding-left: 1em; padding-right: 1em; border-left-width: 2px; border-right-width: 2px; margin-right: 2px; white-space : nowrap; } .menubar li#middleMenu { padding-left: 1em; padding-right: 1em; border-left-width: 2px; border-right-width: 2px; margin-right: 2px; white-space : nowrap; } .menubar li#lastMenu { padding-left: 1em; padding-right: 1em; border-left-width: 2px; border-right-width: 2px; white-space : nowrap; } .menubar li ul { display: none; position: absolute; top: 100%; left: 0; font-weight: normal; background-color: rgb(152,186,225); padding: 0.5em 0; border-right: ridge 1px rgb(125,125,125); border-left: ridge 1px rgb(125,125,125); border-bottom: ridge 1px rgb(125,125,125); text-align: left; z-index:99999; } .menubar li>ul { top: auto; left: auto; } .menubar li li { display: block; float: none; background-color: rgb(152,186,225); border: 0; color: rgb(41,41,41); } .menubar li li.disabled { display: block; float: none; background-color: rgb(152,186,225); border: 0; color: rgb(123,123,123); } .menubar li:hover ul, li.over ul { display: block; } .menubar hr { display: none; } .menubar p { clear: left; background: url(images/remora.gif) center left no-repeat; padding: 1em 1em 0 1em; margin: 0; } .menubar p.image { float: right; font-size: 0.8em; text-align: center; color: #7d6340; padding: 1.25em 1.25em 0.25em 0.25em; } .menubar p.image img { display: block; border: 1px solid #7d6340; }
Modifier and Type | Field and Description |
---|---|
static JQueryCssResourceReference[] |
CSS |
protected List<Menu> |
menus |
ENABLE, FLAG_AFTER_RENDERING, FLAG_INITIALIZED, FLAG_PREPARED_FOR_RENDER, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RENDERING, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING
Constructor and Description |
---|
MenuBarPanel(String id,
List<Menu> menus)
Constructs a
MenuBarPanel . |
Modifier and Type | Method and Description |
---|---|
JQueryCssResourceReference[] |
getCssResources() |
protected void |
onBeforeRender() |
void |
refresh(org.apache.wicket.ajax.AjaxRequestTarget target) |
void |
renderHead(org.apache.wicket.markup.head.IHeaderResponse response) |
getRegionMarkup, newMarkupSourcingStrategy
getWebPage, getWebRequest, getWebResponse, getWebSession
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findComponentToDequeue, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onAfterRenderChildren, onComponentTagBody, onDetach, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, canCallListenerInterfaceAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, visitParents, warn, wrap
public static JQueryCssResourceReference[] CSS
protected void onBeforeRender()
onBeforeRender
in class org.apache.wicket.Component
public void renderHead(org.apache.wicket.markup.head.IHeaderResponse response)
renderHead
in interface org.apache.wicket.markup.html.IHeaderContributor
renderHead
in class org.apache.wicket.Component
public void refresh(org.apache.wicket.ajax.AjaxRequestTarget target)
public JQueryCssResourceReference[] getCssResources()
getCssResources
in interface IStyleResolver
Copyright © 2015. All rights reserved.