Package com.din.din.webapp.beans

Source Code of com.din.din.webapp.beans.ProjectBean

package com.din.din.webapp.beans;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;

import com.din.din.model.dao.ProjectDAO;
import com.din.din.model.entities.Project;
import com.din.din.model.entities.Project.ProjectState;
import com.din.din.model.util.EntityCachingManager;
import com.din.din.webapp.beans.interfaces.FoodManager;
import com.din.din.webapp.beans.interfaces.ProjectWizard;
import com.din.din.webapp.beans.interfaces.QuantityTypeManager;
import com.din.din.webapp.beans.interfaces.RecipeManager;
import com.din.din.webapp.beans.util.LoginUtil;
import com.google.appengine.api.users.User;

@ManagedBean
@SessionScoped
public class ProjectBean implements Serializable {
  private static final long serialVersionUID = -119440868284639498L;

  public static final String ACCESSOR = "#{projectBean}";
 
  private boolean firstViewBuilder = true;
  private boolean firstViewPlanner = true;
  private boolean projectLoaded = false;
  private ProjectWizard wizard = null;
  private Project project = null;
  private FoodManager foodManager = null;
  private RecipeManager recipeManager = null;
  private QuantityTypeManager quantityTypeManager = null;
 
  @ManagedProperty("#{cacheBean.cache}")
  private EntityCachingManager cache = null;
 
  public ProjectBean() {
    loadProject();
  }
 
  public boolean isProjectConfigured() {
    loadProject();
    return project != null && project.getState() != ProjectState.CONFIGURE;
  }
 
  public void setProjectConfigured(boolean configured) {
    if(configured && this.project == null && wizard != null && wizard.isFinished()) {
      // Override first view status, since the only time this condition can be met is if
      // wizard has successfully created new project     
      setFirstViewBuilder(true);
      setFirstViewPlanner(true);
    }   
  }
 
  private synchronized void loadProject() {
    if(!projectLoaded) {
      User user = LoginUtil.getCurrentUser();
      if(user != null) {
        projectLoaded = true;
        setProject(ProjectDAO.getProjectByUser(user));
      }
    }
  }
 
  public synchronized ProjectWizard getWizard() {
    if(wizard == null) {
      Project project = getProject();
      if(project != null) {
        wizard = new ProjectWizard(project, cache);
      } else {
        wizard = new ProjectWizard(cache);
      }
    }
    return wizard;
  }
 
  public synchronized FoodManager getFoodManager() {
    if(foodManager == null) {
      foodManager = new FoodManager(getProject(), cache);
    }
    return foodManager;
  }

  public synchronized RecipeManager getRecipeManager() {
    if(recipeManager == null) {
      recipeManager = new RecipeManager(getProject(), cache);
    }
    return recipeManager;
  }
 
  public synchronized QuantityTypeManager getQuantityTypeManager() {
    if(quantityTypeManager == null) {
      quantityTypeManager = new QuantityTypeManager(getProject(), cache);
    }
    return quantityTypeManager;
  }
 
  public Project getProject() {
    loadProject();
    return project;
  }
 
  protected synchronized void setProject(Project project) {
    if(project != null) {
      boolean firstView = project.getState() == ProjectState.CONFIGURE;
      setFirstViewBuilder(firstView);
      setFirstViewPlanner(firstView);
    }

    this.project = project;
  }

  public boolean isFirstViewBuilder() {
    return firstViewBuilder;
  }
 
  public void setFirstViewBuilder(boolean firstViewBuilder) {
    this.firstViewBuilder = firstViewBuilder;
  }
 
  public boolean isFirstViewPlanner() {
    return firstViewPlanner;
  }
 
  public void setFirstViewPlanner(boolean firstViewPlanner) {
    this.firstViewPlanner = firstViewPlanner;
  }
 
  public EntityCachingManager getCache() {
    return cache;
  }

  public void setCache(EntityCachingManager cache) {
    this.cache = cache;
  }

  public void onDialogBuilderClose() {
    setFirstViewBuilder(false);
  }
 
  public void onDialogPlannerClose() {
    setFirstViewPlanner(false);
 
}
TOP

Related Classes of com.din.din.webapp.beans.ProjectBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.