Package com.vst.webapp.action

Source Code of com.vst.webapp.action.DefectTypeFormController

package com.vst.webapp.action;

import com.vst.model.ConstructionType;
import com.vst.model.DefectType;
import com.vst.model.DefectVarity;
import com.vst.model.Material;
import com.vst.service.ConstructionTypeManager;
import com.vst.service.DefectTypeManager;
import com.vst.service.DefectVarityManager;
import com.vst.service.MaterialManager;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class DefectTypeFormController extends BaseFormController {
    private DefectTypeManager defectTypeManager = null;
    private DefectVarityManager defectVarityManager = null;
    private MaterialManager materialManager = null;
    private ConstructionTypeManager constructionTypeManager = null;


    public void setConstructionTypeManager(ConstructionTypeManager constructionTypeManager) {
        this.constructionTypeManager = constructionTypeManager;
    }

    public void setDefectVarityManager(DefectVarityManager defectVarityManager) {
        this.defectVarityManager = defectVarityManager;
    }

    public void setMaterialManager(MaterialManager materialManager) {
        this.materialManager = materialManager;
    }

    public void setDefectTypeManager(DefectTypeManager defectTypeManager) {
        this.defectTypeManager = defectTypeManager;
    }

    public DefectTypeFormController() {
        setCommandName("defectType");
        setCommandClass(DefectType.class);
    }

    protected Object formBackingObject(HttpServletRequest request)
            throws Exception {
        request.setAttribute("varityList", defectVarityManager.getDefectVaritys(null));
        request.setAttribute("materialList", materialManager.getMaterials(null));
        request.setAttribute("constructionTypeList", constructionTypeManager.getConstructionTypes(null));

        if (!isFormSubmission(request)) {
            String defectTypeId = request.getParameter("defectTypeId");
            DefectType defectType = null;

            if (!StringUtils.isEmpty(defectTypeId)) {
                defectType = defectTypeManager.getDefectType(defectTypeId);
                defectTypeManager.evict(defectType);
            } else {
                defectType = new DefectType();
            }
            if (request.getParameter("edited") != null) {
                request.setAttribute("addition", "?edited=1");
                defectType.setEdited(true);
            }
            defectType.setDocLocation(request.getParameter("docLocation"));

            return defectType;
        }
        return super.formBackingObject(request);
    }

    public ModelAndView onSubmit(HttpServletRequest request,
                                 HttpServletResponse response, Object command,
                                 BindException errors)
            throws Exception {
        if (log.isDebugEnabled()) {
            log.debug("entering 'onSubmit' method...");
        }

        DefectType defectType = (DefectType) command;
        boolean isNew = (defectType.getDefectTypeId() == null);
        Locale locale = request.getLocale();

        if (request.getParameter("delete") != null) {
            defectTypeManager.removeDefectType(defectType.getDefectTypeId().toString());

            saveMessage(request, getText("defectType.deleted", locale));
        } else {


            List defectVarities = new ArrayList();
            List defectVaritiesFromForm = defectType.getVarities();
            for (int i = 0; i < defectVaritiesFromForm.size(); i++) {
                DefectVarity defectVarity = (DefectVarity) defectVaritiesFromForm.get(i);
                defectTypeManager.evict(defectVarity);
                defectVarities.add(defectVarityManager.getDefectVarity(defectVarity.getVarityId().toString()));
            }
            defectType.setVarities(defectVarities);

            List defectMaterials = new ArrayList();
            List defectMaterialsFromForm = defectType.getMaterials();
            for (int i = 0; i < defectMaterialsFromForm.size(); i++) {
                Material defectMaterial = (Material) defectMaterialsFromForm.get(i);
                defectTypeManager.evict(defectMaterial);
                defectMaterials.add(materialManager.getMaterial(defectMaterial.getMaterialId().toString()));

            }
            defectType.setMaterials(defectMaterials);

            defectTypeManager.saveDefectType(defectType);

            String key = (isNew) ? "defectType.added" : "defectType.updated";
            saveMessage(request, getText(key, locale));
            if (defectType.isEdited()) {
                return new ModelAndView("redirect:updating.html?id=" + defectType.getDefectTypeId() + "&fieldId=" + request.getParameter("fieldId"));
            }
        }

        return new ModelAndView("redirect:" + defectType.getDocLocation());
    }


    public ModelAndView processFormSubmission(HttpServletRequest request,
                                              HttpServletResponse response,
                                              Object command,
                                              BindException errors)
            throws Exception {
        DefectType defectType = (DefectType) command;
        if (request.getParameter("addMaterial") != null) {
            defectType.getMaterials().add(new Material());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }
        if (request.getParameter("deleteMaterial") != null) {
            defectType.getMaterials().remove(defectType.getMaterialNumber());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }


        if (request.getParameter("addConstructionType") != null) {
            defectType.getConstructionTypes().add(new ConstructionType());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }
        if (request.getParameter("deleteConstructionType") != null) {
            defectType.getConstructionTypes().remove(defectType.getConstructionTypeNumber());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }

        if (request.getParameter("addVarity") != null) {
            defectType.getVarities().add(new DefectVarity());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }
        if (request.getParameter("deleteVarity") != null) {
            defectType.getVarities().remove(defectType.getVarityNumber());
            return new ModelAndView("defectTypeForm", "defectType", defectType);
        }

        return super.processFormSubmission(request,
                response,
                command,
                errors);
    }
}
TOP

Related Classes of com.vst.webapp.action.DefectTypeFormController

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.