// Path: impl/src/main/java/br/gov/frameworkdemoiselle/vaadin/template/AbstractPresenter.java
// public abstract class AbstractPresenter<V extends BaseVaadinView> implements Presentable<V> {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private V view;
// 
// 	private boolean viewIsInitialized = false;
// 
// 	private Class<V> viewClass;
// 
// 	public AbstractPresenter() {
// 		viewClass = Reflections.getGenericTypeArgument(getClass(), 0);
// 	}
// 
// 	@Override
// 	public V getView() {
// 		if (view == null) {
// 			view = Beans.getReference(viewClass);
// 			viewIsInitialized = false;
// 		}
// 		if (!viewIsInitialized) {
// 			viewIsInitialized = true;
// 			view.init();
// 		}
// 		return view;
// 	}
// 
// 	public List<?> getList() {
// 		return handleList();
// 	}
// 
// 	public List<?> handleList() {
// 		return null;
// 	}
// }


import javax.enterprise.context.SessionScoped; 
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.vaadin.event.BeforeNavigateToView;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessClear;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessDelete;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessItemSelection;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessSave;
import br.gov.frameworkdemoiselle.vaadin.template.AbstractPresenter;
import ${package}.business.CategoryBC;
import ${package}.domain.Category;
import ${package}.ui.view.CategoryView;
package ${package}.ui.presenter;



@ViewController
@SessionScoped
// Path: impl/src/main/java/br/gov/frameworkdemoiselle/vaadin/template/AbstractPresenter.java
// public abstract class AbstractPresenter<V extends BaseVaadinView> implements Presentable<V> {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private V view;
// 
// 	private boolean viewIsInitialized = false;
// 
// 	private Class<V> viewClass;
// 
// 	public AbstractPresenter() {
// 		viewClass = Reflections.getGenericTypeArgument(getClass(), 0);
// 	}
// 
// 	@Override
// 	public V getView() {
// 		if (view == null) {
// 			view = Beans.getReference(viewClass);
// 			viewIsInitialized = false;
// 		}
// 		if (!viewIsInitialized) {
// 			viewIsInitialized = true;
// 			view.init();
// 		}
// 		return view;
// 	}
// 
// 	public List<?> getList() {
// 		return handleList();
// 	}
// 
// 	public List<?> handleList() {
// 		return null;
// 	}
// }


// Path: archetype/vaadin-jpa/src/main/resources/archetype-resources/src/main/java/ui/presenter/CategoryPresenter.java
import javax.enterprise.context.SessionScoped; 
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import br.gov.frameworkdemoiselle.stereotype.ViewController;
import br.gov.frameworkdemoiselle.vaadin.event.BeforeNavigateToView;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessClear;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessDelete;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessItemSelection;
import br.gov.frameworkdemoiselle.vaadin.event.ProcessSave;
import br.gov.frameworkdemoiselle.vaadin.template.AbstractPresenter;
import ${package}.business.CategoryBC;
import ${package}.domain.Category;
import ${package}.ui.view.CategoryView;

package ${package}.ui.presenter;



@ViewController
@SessionScoped
public class CategoryPresenter extends AbstractPresenter<CategoryView> {