can someone help me with expand tab on accordionpanel
I try with activeIndex, but unsuccessfully
index.xhtml:
Code: Select all
<p:accordionPanel id="menuPanel" value="#{menuBean.menus}" var="menu" activeIndex="#{menuBean.active}" >
<p:tab id="tab_menu" title="#{menu.title}" >
<p:dataList value="#{menu.list}" var="list" styleClass="menu_style" >
<p:column>
<p:commandLink title="#{list.id}" value="#{list.name}" actionListener="#{menuBean.processAction}" >
<h:outputText value="#{list.name}" />
</p:commandLink>
</p:column>
</p:dataList>
</p:tab>
</p:accordionPanel>
Code: Select all
public class menuBean implements Serializable, ActionListener {
private int active;
@Override
public void processAction(ActionEvent ae) throws AbortProcessingException
{
CommandLink itm = (CommandLink)ae.getSource();
String menu_name = itm.getValue().toString();
selection = itm.getTitle().toString();
String message = "CLICK ON MENU ITEM: " + menu_name;
Severity severity = FacesMessage.SEVERITY_INFO;
FacesMessage msg = new FacesMessage(severity, "PROGRAM SELECT", message);
FacesContext.getCurrentInstance().addMessage(null, msg);
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.addPartialUpdateTarget("frmContent:growl");
}
public class MenuList implements Serializable{
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class MenuTab implements Serializable {
private String id;
private String title;
private List<MenuList> list;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<MenuList> getList() {
return list;
}
public void setList(List<MenuList> list) {
this.list = list;
}
}
private List<MenuTab> menus = new ArrayList<MenuTab>();
public List<MenuTab> getMenus() {
return menus;
}
@PostConstruct
private void initModel() {
List<MenuList> list;
MenuTab tab;
MenuList item;
for(int i=1; i< 4; i++){
list = new ArrayList<MenuList>();
tab = new MenuTab();
tab.setId("tab" + i);
tab.setTitle("Menu "+i);
//test
setActive(3);
for(int j=1; j<5; j++){
item = new MenuList();
item.setId(id);
item.setName("Submenu "+i+" - "+j);
list.add(item);
}
tab.setList(list);
menus.add(tab);
}
}
public int getActive() {
return active;
}
public void setActive(int active) {
System.out.println("set active tab:"+active);
this.active = active;
}
}
With this only accordion panel get selected but tab is not expanded.