Ajax change Model pr:menu doesn't expand
Posted: 16 Jan 2019, 09:29
Reference ronin version 2.0
I've found problem when change model, pr:menu show the new model but it cann't expand menu.
layoutmenu.xhtml
MenuView.java
I've found problem when change model, pr:menu show the new model but it cann't expand menu.
layoutmenu.xhtml
Code: Select all
<div id="layout-menu-cover">
<ui:include src="topbar.xhtml" />
<h:form>
<p:inputSwitch value="#{menuView.value}">
<p:ajax listener="#{menuView.change}" update="@form" />
</p:inputSwitch>
<pr:menu id="menu" model="#{menuView.model}" />
</h:form>
</div>
Code: Select all
@ManagedBean
@SessionScoped
public class MenuView implements Serializable {
private MenuModel model;
private boolean value;
@PostConstruct
public void init() {
model = new DefaultMenuModel();
}
public MenuModel genMenu1() {
DefaultMenuModel model1 = new DefaultMenuModel();
DefaultSubMenu s1 = new DefaultSubMenu("Example SubMenu 1", "fa fa-folder");
DefaultMenuItem m1 = new DefaultMenuItem("Example 1", "fa fa-joomla", "#");
DefaultMenuItem m2 = new DefaultMenuItem("Example 1", "fa fa-desktop", "#");
DefaultSubMenu s2 = new DefaultSubMenu("Example SubMenu 2", "fa fa-folder");
DefaultMenuItem m3 = new DefaultMenuItem("Example 3", "fa fa-desktop", "#");
s1.addElement(m1);
s1.addElement(m2);
s2.addElement(m3);
model1.addElement(s1);
model1.addElement(s2);
return model1;
}
public MenuModel genMenu2() {
DefaultMenuModel model2 = new DefaultMenuModel();
DefaultSubMenu s1 = new DefaultSubMenu("Sample SubMenu 1", "fa fa-folder");
DefaultMenuItem m1 = new DefaultMenuItem("Sample 1", "fa fa-joomla", "#");
DefaultMenuItem m2 = new DefaultMenuItem("Sample 1", "fa fa-desktop", "#");
DefaultSubMenu s2 = new DefaultSubMenu("Sample SubMenu 2", "fa fa-folder");
DefaultMenuItem m3 = new DefaultMenuItem("Sample 3", "fa fa-desktop", "#");
s1.addElement(m1);
s1.addElement(m2);
s2.addElement(m3);
model2.addElement(s1);
model2.addElement(s2);
return model2;
}
public void change() {
if (value){
model = genMenu1();
}else{
model = genMenu2();
}
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
public boolean isValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}