UIPanelMenu Backingbean not working
pokito Jan 23, 2012 1:54 PMI tried to create <rich:panelMenu> from backing-bean, but all functions don't work.
e.g.
1. Expand-button and collaps-button show at the same time
2. I can click expand-button and collaps-button, but it doesn't happen
3. I've disabled the below UIPanelMenuGroup (layout). It shows 2 times righticons
What happens?
What have I done wrong?
.xhtml file
... <h:panelGrid columns="2" width="300" > <rich:panelMenu binding="#{myBean.menu}" /> </h:panelGrid> ...
Managed Bean
... private UIPanelMenu menuPanelBinding; public myBean(){ initPanelMenu(); } public void initPanelMenu() { FacesContext facesContext = FacesContext.getCurrentInstance(); Application application = facesContext.getApplication(); this.menuBinding = (UIPanelMenu) application.createComponent(facesContext, UIPanelMenu.COMPONENT_TYPE, "org.richfaces.PanelMenuRenderer"); this.menuBinding.setId("id_panelMenu"); //Css this.menuBinding.setStyleClass("panelMenu"); this.menuBinding.setItemClass("panelMenuItem"); //Icon this.menuBinding.setItemLeftIcon("none"); this.menuBinding.setGroupExpandedRightIcon("/resources/images/exanded.png"); this.menuBinding.setGroupCollapsedRightIcon("/resources/images/collapsed.png"); this.menuBinding.setTopGroupExpandedRightIcon("/resources/images/exanded.png"); this.menuBinding.setTopGroupCollapsedRightIcon("/resources/images/collapsed.png"); //Disabled this.menuBinding.setDisabled(false); this.menuBinding.setGroupDisabledRightIcon("/resources/images/lock.png"); this.menuBinding.setTopGroupDisabledRightIcon("/resources/images/lock.png"); //Mode this.menuBinding.setGroupMode(PanelMenuMode.server); this.menuBinding.setItemMode(PanelMenuMode.server); this.menuBinding.setExpandSingle(false); this.menuBinding.getChildren().clear(); this.menuBinding.getChildren().addAll(buildpanelMenuGroup()); } } public List<UIPanelMenuGroup> buildpanelMenuGroup() { List<UIPanelMenuGroup> menuGroups = new ArrayList<UIPanelMenuGroup>(); FacesContext facesContext = FacesContext.getCurrentInstance(); Application application = facesContext.getApplication(); UIPanelMenuGroup menuGroup1 = (UIPanelMenuGroup) application.createComponent(facesContext, UIPanelMenuGroup.COMPONENT_TYPE, "org.richfaces.PanelMenuGroupRenderer"); menuGroup1.setId(id_panelMenuGroup1); menuGroup1.setLabel("Example Data"); //Style menuGroup1.setStyleClass("panelMenuGroup1"); //Icon menuGroup1.setLeftIconClass("panelMenuGroup1_LeftIcon"); //Disabled menuGroup1.setDisabledClass("panelMenuGroup1_Disabled"); menuGroup1.setExpanded(true); menuGroup1.setDisabled(false); menuGroup1.setHoverClass("panelMenuGroup1_Hover"); menuGroup1.setRender("id_panelMenuGroup2"); UIPanelMenuItem data_item_1 = (UIPanelMenuItem)application.createComponent(facesContext, UIPanelMenuItem.COMPONENT_TYPE, "org.richfaces.PanelMenuItemRenderer"); data_item_1.setId("id_panelMenuItem1"); data_item_1.setLabel("Data1"); data_item_1.addActionListener(new DataMenuListener()); UIPanelMenuItem data_item_2 = (UIPanelMenuItem)application.createComponent(facesContext, UIPanelMenuItem.COMPONENT_TYPE, "org.richfaces.PanelMenuItemRenderer"); data_item_2.setId("id_panelMenuItem2"); data_item_2.setLabel("Data2"); data_item_2.addActionListener(new DataMenuListener()); UIPanelMenuItem data_item_3 = (UIPanelMenuItem)application.createComponent(facesContext, UIPanelMenuItem.COMPONENT_TYPE, "org.richfaces.PanelMenuItemRenderer"); data_item_3.setId("id_panelMenuItem3"); data_item_3.setLabel("Data3"); data_item_3.addActionListener(new DataMenuListener()); UIPanelMenuGroup menuGroup2 = (UIPanelMenuGroup) application.createComponent(facesContext, UIPanelMenuGroup.COMPONENT_TYPE, "org.richfaces.PanelMenuGroupRenderer"); menuGroup2.setId("id_panelMenuGroup2"); menuGroup2.setLabel("Layout"); //Style menuGroup2.setStyleClass("panelMenuGroup2"); //Icon menuGroup2.setLeftIconClass("panelMenuGroup2_LeftIcon"); //Disabled menuGroup2.setDisabledClass("panelMenuGroup2_Disabled"); menuGroup2.setExpanded(false); menuGroup2.setDisabled(true); ... } public void setMenu(UIPanelMenu menu) { this.menuBinding = menu; } public UIPanelMenu getMenu() { return this.menuBinding; }