Я пытаюсь реализовать навигацию по методу Breadcrumb на WebPage
, которая обменивает контент Panel
через ajax.Wicket Label не обновляется/остается невидимым
Он заканчивает тем, как это: Home >> Page >> Panel
Вот мой код страницы:
public MyPage() {
super();
contentContainer = new WebMarkupContainer("contentContainer");
contentContainer.setOutputMarkupId(true);
add(contentContainer);
contentContainer.add(content = createContentPanel());
breadCrumbContainer = new WebMarkupContainer("breadcrumbContainer");
breadCrumbContainer.setOutputMarkupId(true);
add(breadCrumbContainer);
final AjaxLink panelLink = new AjaxLink("panelLink") {
@Override
public void onClick(final AjaxRequestTarget target) {
replaceContentPanel(getOverviewPanel(), target);
}
@Override
public boolean isVisible() {
return !(content instanceof OverviewPanel);
}
};
breadCrumbContainer.add(panelLink);
panelLink.add(new Label("panelLabel", new Model<String>() {
@Override
public String getObject() {
//some dynamic content for example:
return contentPanel.getClass().getName();
}
}));
}
public void replaceContentPanel(final Component replacer, final AjaxRequestTarget target) {
content.replaceWith(replacer);
content = replacer;
if (target != null) {
target.add(contentContainer);
target.add(breadCrumbContainer);
}
}
The Home и Page Label
легко. Для Panel необходимо обновлять каждый раз, когда я обновляю содержимое Panel
WebPage
. Я был уверен, что линия target.add(breadCrumbContainer);
собирается это сделать. Однако он пуст. Ярлык ничего не показывает.
Я надеялся найти ответ - что, вероятно, очевидно - при написании вопроса, но он все еще ускользает от меня, поэтому я надеюсь, что кто-то здесь увидит мою ошибку.
Интересно, почему бы не использовать компоненты калитки. Посмотрите пример на странице wicketstuff: http://wicketstuff.org/wicket/breadcrumb/ – magomi
Это хорошая идея, я рассмотрю ее. Однако я все еще удивляюсь, почему ярлык не отображается? – Yashima