Package com.vst.webapp.action

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

package com.vst.webapp.action;

import com.vst.model.CategoryParameter;
import com.vst.model.DefectCategory;
import com.vst.model.Parameter;
import com.vst.service.*;
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 DefectCategoryFormController extends BaseFormController {
    private DefectCategoryManager defectCategoryManager = null;
    private ParameterManager parameterManager = null;
    private DefectTypeManager defectTypeManager = null;
    private DefectVarityManager defectVarityManager = null;
    private ConstructionTypeManager constructionTypeManager = null;
    private DefectZoneManager defectZoneManager = null;
    private DefectCategoryNameManager defectCategoryNameManager = null;


    public void setDefectCategoryNameManager(DefectCategoryNameManager defectCategoryNameManager) {
        this.defectCategoryNameManager = defectCategoryNameManager;
    }

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

    public void setDefectZoneManager(DefectZoneManager defectZoneManager) {
        this.defectZoneManager = defectZoneManager;
    }

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

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

    public void setParameterManager(ParameterManager parameterManager) {
        this.parameterManager = parameterManager;
    }

    public void setDefectCategoryManager(DefectCategoryManager defectCategoryManager) {
        this.defectCategoryManager = defectCategoryManager;
    }

    public DefectCategoryFormController() {
        setCommandName("defectCategory");
        setCommandClass(DefectCategory.class);
    }

    protected Object formBackingObject(HttpServletRequest request)
            throws Exception {
        String defectCategoryId = request.getParameter("defectCategoryId");
        request.setAttribute("defectCategoryNameList", defectCategoryNameManager.getDefectCategoryNames(null));
        request.setAttribute("constructionTypeList", constructionTypeManager.getConstructionTypes(null));
        request.setAttribute("defectCategoryNameList", defectCategoryNameManager.getDefectCategoryNames(null));
        if (request.getAttribute("defectVarityList") == null && StringUtils.isEmpty(defectCategoryId)) {
            request.setAttribute("defectVarityList", new ArrayList());
            request.setAttribute("emptyVarityList", "true");
        }
        if (request.getAttribute("defectTypeList") == null && StringUtils.isEmpty(defectCategoryId)) {
            request.setAttribute("defectTypeList", new ArrayList());
            request.setAttribute("emptyDefectTypeList", "true");
        }

        if (request.getAttribute("defectZoneList") == null && StringUtils.isEmpty(defectCategoryId)) {
            request.setAttribute("defectZoneList", new ArrayList());
            request.setAttribute("emptyDefectZoneList", "true");
        }

        if (!isFormSubmission(request)) {
            DefectCategory defectCategory = null;

            if (!StringUtils.isEmpty(defectCategoryId)) {

                defectCategory = defectCategoryManager.getDefectCategory(defectCategoryId);
                request.setAttribute("defectTypeList", defectTypeManager.getDefectTypesByConstructionTypeId(defectCategory.getConstructionType().getConstructionTypeId()));
                request.setAttribute("defectVarityList", defectVarityManager.getDefectVaritiesByType(defectCategory.getDefectType().getDefectTypeId().toString()));
                request.setAttribute("defectZoneList", defectZoneManager.getDefectZonesByConstructionType(defectCategory.getConstructionType().getConstructionTypeId().toString()));
                //System.out.println("defectZonesssssssssss");
//                defectCategoryManager.evict(defectCategory);
            } else {
                defectCategory = new DefectCategory();
            }
            defectCategoryManager.makeNotNull(defectCategory);
            if (request.getParameter("edited") != null) {
                request.setAttribute("addition", "?edited=1");
                defectCategory.setEdited(true);
            }
            defectCategory.setDocLocation(request.getParameter("docLocation"));

            return defectCategory;
        }
        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...");
        }

        DefectCategory defectCategory = (DefectCategory) command;
        boolean isNew = (defectCategory.getDefectCategoryId() == null);
        Locale locale = request.getLocale();

        if (request.getParameter("delete") != null) {
            defectCategoryManager.removeDefectCategory(defectCategory.getDefectCategoryId().toString());
            saveMessage(request, getText("defectCategory.deleted", locale));
        } else {
            Integer varityId = defectCategory.getDefectVarity().getVarityId();
            if (varityId.equals(new Integer(-1))) {
                defectCategory.setDefectVarity(null);
            } else {
                defectCategory.setDefectVarity(defectVarityManager.getDefectVarity(varityId.toString()));
            }
            Integer defectZoneId = defectCategory.getDefectZone().getDefectZoneId();
            if (!defectZoneId.equals(new Integer(-1))) {
                defectCategory.setDefectZone(defectZoneManager.getDefectZone(defectZoneId.toString()));
            }

            Integer constructionTypeId = defectCategory.getConstructionType().getConstructionTypeId();
            if (!constructionTypeId.equals(new Integer(-1))) {
                defectCategory.setConstructionType(constructionTypeManager.getConstructionType(constructionTypeId.toString()));
            }

            Integer defectCategoryNameId = defectCategory.getDefectCategoryName().getDefectCategoryNameId();
            if (!defectCategoryNameId.equals(new Integer(-1))) {
                defectCategory.setDefectCategoryName(defectCategoryNameManager.getDefectCategoryName(defectCategoryNameId.toString()));
            }

            List categoryParameters = new ArrayList();
            List categoryParametersFromForm = defectCategory.getCategoryParameters();
            for (int i = 0; i < categoryParametersFromForm.size(); i++) {
                CategoryParameter categoryParameter = (CategoryParameter) categoryParametersFromForm.get(i);
                categoryParameter.setParameter(parameterManager.getParameter(categoryParameter.getParameter().getParameterId().toString()));
                categoryParameters.add(categoryParameter);
            }
            defectCategory.setCategoryParameters(categoryParameters);
            defectCategoryManager.saveDefectCategory(defectCategory);

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

        }

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

    public ModelAndView processFormSubmission(HttpServletRequest request,
                                              HttpServletResponse response,
                                              Object command,
                                              BindException errors)
            throws Exception {

        DefectCategory defectCategory = (DefectCategory) command;
        request.setAttribute("defectZoneList", new ArrayList());
        request.setAttribute("defectVarityList", new ArrayList());

        if (!defectCategory.getDefectType().getDefectTypeId().equals(new Integer(-1))) {
//            if (defectCategory.getConstructionType().getConstructionTypeId().equals(new Integer(-1)))
//            {
            //choosing defect varities by one parameter
            request.setAttribute("defectVarityList", defectVarityManager.getDefectVaritiesByType(defectCategory.getDefectType().getDefectTypeId().toString()));
//            }
//            else{
//            //choosing defect varities by two parameters
//                request.setAttribute("defectVarityList", defectVarityManager.getDefectVaritiesByTypeAndConstruction(defectCategory.getDefectType().getDefectTypeId().toString(),defectCategory.getConstructionType().getConstructionTypeId().toString()));
//        }
        }
        if (!defectCategory.getConstructionType().getConstructionTypeId().equals(new Integer(-1))) {
            request.setAttribute("defectZoneList", defectZoneManager.getDefectZonesByConstructionType(defectCategory.getConstructionType().getConstructionTypeId().toString()));
            request.setAttribute("defectTypeList", defectTypeManager.getDefectTypesByConstructionTypeId(defectCategory.getConstructionType().getConstructionTypeId()));
        }


        if (request.getParameter("defectTypeSelect") != null || request.getParameter("constructionTypeSelect") != null) {

            return new ModelAndView("defectCategoryForm", "defectCategory", defectCategory);
        }


        if (request.getParameter("defectVaritySelect") != null) {

            List parameterList = parameterManager.getParametersByVarity(defectCategory.getDefectVarity().getVarityId().toString());
            for (int i = 0; i < parameterList.size(); i++) {
                Parameter parameter = (Parameter) parameterList.get(i);
                CategoryParameter categoryParameter = new CategoryParameter();
                categoryParameter.setParameter(parameter);
                categoryParameter.setParameterValue(0.0f);
                defectCategory.getCategoryParameters().add(categoryParameter);
            }

            return new ModelAndView("defectCategoryForm", "defectCategory", defectCategory);
        }

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


}
TOP

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

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.