Primefaces - MenuBar Dinamico (JSF 2.0)

0 respostas
fillipeweb

Senhores,

Estou com um problema para gerar um menubar dinamico do PrimeFaces.
o problema é que eu preciso gerar esse menu com um actionlistener e um action dinamico mas não está funcionando.
Preciso executar uma ação e ao mesmo tempo direcionar para uma outra página.

Segue abaixo minha classe:

package br.com.alyconsulting.controller;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;

import org.hibernate.SessionFactory;
import org.primefaces.component.menuitem.MenuItem;
import org.primefaces.component.submenu.Submenu;
import org.primefaces.model.DefaultMenuModel;
import org.primefaces.model.MenuModel;

import br.com.alyconsulting.DAO.ContentDAO;
import br.com.alyconsulting.DAO.TitleDAO;
import br.com.alyconsulting.model.Content;
import br.com.alyconsulting.model.SubTitle;
import br.com.alyconsulting.model.Title;
import br.com.alyconsulting.util.HibernateUtil;

@ManagedBean(name = "app")
@ApplicationScoped
public class MBApplication implements Serializable, ActionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private MenuModel model;

	private Content homeContent;

	public MBApplication() {
		

		SessionFactory sessionFactory = HibernateUtil.getSessionFactory();

		TitleDAO titleDAO = new TitleDAO();
		titleDAO.setSessionFactory(sessionFactory);

		model = new DefaultMenuModel();

		List<Title> titles = titleDAO.findAll();

		for (Title title : titles) {
			// First submenu
			Submenu submenu = new Submenu();
			submenu.setLabel(title.getTitle());
			submenu.setId("title_" + title.getId());
			submenu.getAttributes().put("title", title);

			// Second submenu
			List<SubTitle> subtitles = title.getSubtitles();

			for (SubTitle subTitle : subtitles) {
				MenuItem item = new MenuItem();
				item.setValue(subTitle.getSubtitle());
				item.setId("subTitle_" + subTitle.getId());
				item.getAttributes().put("subtitle", subTitle);
				item.addActionListener(this);
				
				submenu.getChildren().add(item);
			}

			if (subtitles.size() <= 0) {
				
			}

			model.addSubmenu(submenu);
		}

		ContentDAO contentDAO = new ContentDAO();
		contentDAO.setSessionFactory(sessionFactory);

		List<Content> contents = contentDAO.findAllByProperty("home_show",
				Boolean.TRUE);

		for (Content content : contents) {
			homeContent = content;
		}

	}

	public String page() {
		System.out.println("ACTION");

		return "training";
	}

	public MenuModel getModel() {
		return model;
	}

	public void setModel(MenuModel model) {
		this.model = model;
	}

	public Content getHomeContent() {
		return homeContent;
	}

	public void setHomeContent(Content homeContent) {
		this.homeContent = homeContent;
	}

	@Override
	public void processAction(ActionEvent event) throws AbortProcessingException {
		System.out.println("ACTION LISTENER");

		Map<String, Object> map = event.getComponent().getAttributes();
		SubTitle subTitle = (SubTitle) map.get("subtitle");

		System.out.println("OBJECT subTitle > ID: " + subTitle.getId()
				+ " - Subtitle: " + subTitle.getSubtitle() + " - Title: "
				+ subTitle.getTitle().getTitle() + " - Active: "
				+ subTitle.isActive() + " - Date: "
				+ subTitle.getDate_request());
		
	}

}
Criado 12 de setembro de 2010
Respostas 0
Participantes 1