Навигация по макету простых лиц с использованием меню MenuModel - PullRequest
0 голосов
/ 21 декабря 2011

Используя PrimeFaces, я хочу обновить / обновить центральный блок макета страниц на основе взаимодействия пользователя с меню (программно созданным MenuModel), которое включено в тот же блок макета страниц на восток.Из того, что я могу сказать, это невозможно, но вполне может ошибаться.Спасибо!

subMenu = new Submenu();
subMenu.setLabel("Sales");  
subMenu.setIcon("ui-icon ui-icon-home");

-

private String currentPage; //holds identifier of current content panel

-

<!-- navigation panel -->
<p:layoutUnit position="west" resizable="false" size="216">
    <ui:include src="./includes/navigationMenu.xhtml" />
</p:layoutUnit>  

<!-- content panel -->
<p:layoutUnit position="center">
    <ui:include src="/views/#{navigationBean.currentPage}.xhtml" />         
</p:layoutUnit>

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 декабря 2011

Я реализовал слушатель ..

MenuItem thisItem = (MenuItem)event.getComponent();
String navigateTo = thisItem.getId();
BeanManager beanManager = new BeanManager();
NavigationBean navBean = (NavigationBean)beanManager.get("navigationBean");
navBean.setCurrentPage(navigateTo);

добавил его в MenuItem, а также вызов шаблонов refresh () ...

item.addActionListener(new MenuItemListener());
item.setOnsuccess("refresh()");

добавлен метод обновления ...

function refresh(){
    document.location="#{request.contextPath}/faces/views/main.xhtml";
}

Мне действительно безразлично это решение, но оно лучше, чем альтернатива, с непроверяемой логикой создания меню в разметке.

0 голосов
/ 21 декабря 2011

Это просто вопрос: почему вы создаете меню программно?

Кроме этого почти все, что возможно: попробуйте включить ui:include в компонент формы с идентификатором (скажем, myFormId ) и пытайтесь обновлять эту форму каждый раз, когда выбирается элемент подменю;Итак, давайте сделаем это программно:

MenuItem item = new MenuItem();
item.setValue("Dynamic Menuitem");
item.setUrl("#");                    //add whatever attribute you want to menuItem
item.setUpdate("myFormId");
subMenu.getChildren().add(item);     //then add the menuItem object to subMenu as a child.

Вы можете найти здесь menuItem API

...