UP | HOME

ViewBeanMaintenanceContainer.xhtml

package de.botzenhart.testjsf.container.view;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.validator.ValidatorException;

import org.springframework.dao.DataAccessException;

import de.botzenhart.testjsf.container.model.Container;
import de.botzenhart.testjsf.container.model.ManagerContainer;

@ManagedBean
@SessionScoped
public class ViewBeanMaintenanceContainer {

   @ManagedProperty("#{managerContainer}")
   private ManagerContainer managerContainer;
   private Container selectedContainer;
   private boolean editContainer;

   public ViewBeanMaintenanceContainer() {
      setSelectedContainer(new Container());
   }

   public void addContainer(ActionEvent event) {
      editContainer = false;
      setSelectedContainer(new Container());
   }

   public void saveContainer(ActionEvent event) {
      if (!"".equals(getSelectedContainer().getContainerCode())
            && !"".equals((String) getSelectedContainer()
                  .getContainerName()))
         try {
            getManagerContainer().saveContainer(selectedContainer);
         } catch (DataAccessException e) {
            FacesContext.getCurrentInstance()
                  .addMessage(
                        event.getComponent().getClientId(),
                        new FacesMessage(e.getMostSpecificCause()
                              .getMessage()));
         }
   }

   public void deleteContainer(ActionEvent event) {
      getManagerContainer().deleteContainer(getSelectedContainer());
      setSelectedContainer(new Container());
      editContainer = false;
   }

   public void validateContainerName(FacesContext context,
         UIComponent component, Object o) {
      if (requireContainerValidation()) {
         // verify containerName not already taken
         Container st = getManagerContainer()
               .findByContainerName((String) o);
         if (st != null
               && (!st.getContainerId().equals(
                     getSelectedContainer().getContainerId())))
            throw new ValidatorException(
                  new FacesMessage("must be unique!"));
      }
   }

   public void validateContainerCode(FacesContext context,
         UIComponent component, Object o) {
      if (requireContainerValidation()) {
         // verify containerCode not already taken
         Container st = getManagerContainer()
               .findByContainerCode((String) o);
         if (st != null
               && (!st.getContainerId().equals(
                     getSelectedContainer().getContainerId())))
            throw new ValidatorException(
                  new FacesMessage("must be unique!"));
      }
   }

   public List<Container> getContainerList() {
      return getManagerContainer().getContainerInStock();
   }

   public Container getSelectedContainer() {
      return selectedContainer;
   }

   public void setSelectedContainer(Container selectedContainer) {
      this.selectedContainer = selectedContainer;
   }

   public boolean requireContainerValidation() {
      return "1".equals(FacesContext.getCurrentInstance()
            .getExternalContext().getRequestParameterMap()
            .get("requireContainerValidation"));
   }

   public boolean isEditContainer() {
      return editContainer;
   }

   public void setEditContainerListener(Container container) {
      editContainer = true;
      setSelectedContainer(container);
   }

   public void setEditContainer(boolean editContainer) {
      this.editContainer = editContainer;
   }

   public ManagerContainer getManagerContainer() {
      return managerContainer;
   }

   public void setManagerContainer(ManagerContainer managerContainer) {
      this.managerContainer = managerContainer;
   }

}

Author: Rainer Schuler

Date: 2011-02-11 Fr

HTML generated by org-mode 7.4 in emacs 22