Primefaces, menuitem, fazer submenu aparecer e desaparecer com clique no tema do menu!

Olá Caros Amigos,

Have a nice day!

O meu problema é o seguinte: estou usando a biblioteca Primefaces para construir a interface gráfica de um sistema, e o meu objetivo é usar um dos recursos disponíveis para fazer aparecer e desaparecer um submenu, quando um dos temas do menu é clicado. O problema é que não está funcionando usando commandButton. O meu objetivo é clicar no menu item com id=“produtos” e ao fazer isso ele aciona a ação no coomandButton que alterará o atributo de visibilidade no menu com id=“menuItensDeCadastro”.

Se alguém souber alguma outra forma melhor de resolver este problema, eu agradeço. O meu problema central é, fazer um submenu aparecer com um clique num dos temas do menu, e desaparecer se outro é dado no mesmo tema.

Segue abaixo o meu código fonte:

<h:body>
	<h:form class="menuLogon">
		<h:panelGrid columns="2">
			<p:menu>
				<p:submenu styleClass="submenu" label="Nome_do_Usuário">
					<p:menuitem styleClass="menuitem" value="Carrinho de Compras" />
					<p:menuitem styleClass="menuitem" value="Meus Pedidos" />
					<p:menuitem styleClass="menuitem" value="Meus dados" />
					<p:menuitem styleClass="menuitem" value="Sair" />
				</p:submenu>
				<p:submenu styleClass="submenu" label="Livraria">
					<p:menuitem styleClass="menuitem" value="Configurar Livraria" />
					<p:menuitem styleClass="menuitem" value="Mídias Pendentes" />
					
					<p:menuitem type="button" id="produtos" styleClass="menuitem" value="Produtos" onclick="mostrarOuEsconderMenuItensDeCadastro()"/>
					
					<p:menuitem styleClass="menuitem" value="Temas" />
					<p:menuitem styleClass="menuitem" value="Relatórios" />
					<p:menuitem styleClass="menuitem" value="Anúncios" />
				</p:submenu>
				<p:submenu styleClass="submenu" label="Clientes">
					<p:menuitem styleClass="menuitem" value="Clientes" />
					<p:menuitem styleClass="menuitem" value="Simular Cliente" />
					<p:menuitem styleClass="menuitem" value="Pedidos" />
				</p:submenu>
			</p:menu>
            
            	        <!-- ESTE É O MENU QUE DEVE APARECER E DESAPARECER NA TELA COM UM CLIQUE NO menuitem com id="produtos" --> 
			<p:menu id="menuItensDeCadastro" styleClass="menuItensDeCadastro" rendered="#{gamb.mostrarMenuItensDeCadastro}">
				<p:menuitem styleClass="menuitem" value="" rendered="false" /><!-- Não alterar!!! -->
				<p:menuitem styteClass="menuitem" value="Cadastrar Produto" />
				<p:menuitem styteClass="menuitem" value="Consultar Produto" />
			</p:menu>
			
			<p:remoteCommand process="@this" name="mostrarOuEsconderMenuItensDeCadastro" update="menuItensDeCadastro">
				<f:setPropertyActionListener target="#{gamb.mostrarMenuItensDeCadastro}" value="#{true}"/>
            </p:remoteCommand>
			
		</h:panelGrid>
	</h:form>
</h:body>

Este é um bean criado pra testar mesmo a funcionalidade antes de fazer o código final, por isso coloquei um nome bem ilário.

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name="gamb")
@RequestScoped
public class Gambiarra implements Serializable{
	private boolean mostrarMenuItensDeCadastro = false;

	public boolean getMostrarMenuItensDeCadastro() {
		mostrarOuEsconderMenu2();
		return mostrarMenuItensDeCadastro;
	}

	public void setMostrarMenuItensDeCadastro(boolean mostrarMenuItensDeCadastro) {
		this.mostrarMenuItensDeCadastro = mostrarMenuItensDeCadastro;
	}
	
	/*private void mostrarOuEsconderMenu() {
		// TODO Auto-generated method stub
		if(mostrarMenuItensDeCadastro == "hidden"){
			setMostrarMenuItensDeCadastro("visible");
		}else{
			setMostrarMenuItensDeCadastro("hidden");
		}
	}*/

	private void mostrarOuEsconderMenu2() {
		// TODO Auto-generated method stub
		if(mostrarMenuItensDeCadastro == false){
			setMostrarMenuItensDeCadastro(true);
		}else{
			setMostrarMenuItensDeCadastro(false);
		}
	}
}

Obrigado por sua atenção se leu este post e não se interessou em me ajudar!

MUITO Obrigado a você se leu este post e dedicou uma parte do seu tempo a me ajudar postando uma sugestão de solução!

Atenciosamente!