Package com.vst.webapp.action

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

package com.vst.webapp.action;

import com.vst.service.*;
import com.vst.model.*;
import com.vst.webapp.util.ImageUtil;
import com.vst.util.FileHelper;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.validation.BindException;
import org.hibernate.Hibernate;

import java.util.List;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Date;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;

/**
* Created by IntelliJ IDEA. User: ������������� Date: 29.07.2009 Time: 17:59:42
* To change this template use File | Settings | File Templates.
*/
public class ConstructionDefectZoneFormController extends BaseFormController {
  ObjectConstructionManager objectConstructionManager;

  public ObjectConstructionManager getObjectConstructionManager() {
    return objectConstructionManager;
  }

  public void setObjectConstructionManager(
      ObjectConstructionManager objectConstructionManager) {
    this.objectConstructionManager = objectConstructionManager;
  }

  private ConstructionDefectManager constructionDefectManager = null;
  private ReasonManager reasonManager = null;
  private DefectZoneManager defectZoneManager = null;
  private DefectTypeManager defectTypeManager = null;
  private DefectVarityManager defectVarityManager = null;
  private ConstructionExampleManager constructionExampleManager = null;
  private AuthentificationElementManager authentificationElementManager = null;
  private ParameterManager parameterManager = null;
  private DangerCategoryManager dangerCategoryManager = null;

  public void setDangerCategoryManager(
      DangerCategoryManager dangerCategoryManager) {
    this.dangerCategoryManager = dangerCategoryManager;
  }

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

  public void setAuthentificationElementManager(
      AuthentificationElementManager authentificationElementManager) {
    this.authentificationElementManager = authentificationElementManager;
  }

  public void setConstructionExampleManager(
      ConstructionExampleManager constructionExampleManager) {
    this.constructionExampleManager = constructionExampleManager;
  }

  public void setReasonManager(ReasonManager reasonManager) {
    this.reasonManager = reasonManager;
  }

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

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

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

  public void setConstructionDefectManager(
      ConstructionDefectManager constructionDefectManager) {
    this.constructionDefectManager = constructionDefectManager;
  }

  public ConstructionDefectZoneFormController() {
    setCommandName("constructionDefectZone");
    setCommandClass(ConstructionDefectZone.class);
  }

  protected Object formBackingObject(HttpServletRequest request)
      throws Exception {

    System.out.println("Form backing object method started  ...");

    request.setAttribute("dangerCategoryList",
        dangerCategoryManager.getDangerCategorys(null));

    String constructionDefectId = request
        .getParameter("constructionDefectId");

    Integer constructionTypeId = null;

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

      request.getSession().setAttribute("objectConstructionId",
          request.getParameter("objectConstructionId"));
      ObjectConstruction objectConstruction = objectConstructionManager
          .getObjectConstruction(request
              .getParameter("objectConstructionId"));
      constructionTypeId = objectConstruction.getConstructionType()
          .getConstructionTypeId();
      request.setAttribute("constructionTypeId", constructionTypeId);
      request.setAttribute("defectTypeList", defectTypeManager
          .getDefectTypesByConstructionTypeId(constructionTypeId));
      request.setAttribute("defectZoneList", defectZoneManager
          .getDefectZonesByConstructionType(constructionTypeId
              .toString()));

      System.out.println("Construction Type"
          + constructionTypeId
          + "DEFECT TYPES SIZE:"
          + defectTypeManager.getDefectTypesByConstructionTypeId(
              constructionTypeId).size()
          + "-"
          + defectZoneManager.getDefectZonesByConstructionType(
              constructionTypeId.toString()).size());
    }
   

    if (!isFormSubmission(request)) {

      ConstructionDefectZone constructionDefect = new ConstructionDefectZone();
      ObjectConstruction objectConstruction = objectConstructionManager
          .getObjectConstruction(request
              .getParameter("objectConstructionId"));
      System.out.println("Example list" + request
          .getParameter("objectConstructionId"));
      constructionDefect.setConstructionTypeId(objectConstruction
          .getConstructionType().getConstructionTypeId().toString());

      if(request.getParameter("exampleId")!=null){
        constructionDefect.setExampleId(new Integer(request.getParameter("exampleId")));
      }
     
      System.out.println("DV" + constructionTypeId
          + "-construction defect-" + constructionDefect + "-typeID"
          + constructionDefect.getConstructionTypeId());

      if (constructionDefectId != null) {

        System.out.println("DV" + constructionDefect);
        constructionDefect = constructionDefectManager
            .getConstructionDefectZone(constructionDefectId);
        System.out.println("DV" + constructionDefect);
        request.setAttribute("defectVarityList", defectVarityManager
            .getDefectVaritiesByType(constructionDefect
                .getDefectType().getDefectTypeId().toString()));
        request.setAttribute("reasonList", reasonManager
            .getReasonsByType(constructionDefect.getDefectType()
                .getDefectTypeId().toString(),
                constructionDefect.getDefectVarity()
                    .getVarityId().toString(),
                constructionDefect.getDefectZone()
                    .getDefectZoneId().toString(), String
                    .valueOf(constructionDefect
                        .getConstructionTypeId())));

      } else {
        List constructionExampleList = objectConstruction
            .getConstructionExamples();
        System.out.println("DV OC" + constructionExampleList);
        for (int i = 0; i < constructionExampleList.size(); i++) {
          ConstructionExample constructionExample = (ConstructionExample) constructionExampleList
              .get(i);
          constructionExample = constructionExampleManager
              .getConstructionExample(constructionExample
                  .getExampleId().toString());
          constructionExample.setSelected(false);
          constructionExampleList.set(i, constructionExample);
        }
        constructionDefect
                .setConstructionExampleList(constructionExampleList);

        if (request.getAttribute("defectVarityList") == null) {
          request.setAttribute("defectVarityList", new ArrayList());
          request.setAttribute("noVarityList", "true");
        }

        if (request.getAttribute("reasonList") == null) {
          request.setAttribute("reasonList", new ArrayList());
          request.setAttribute("noReasonList", "true");
        }

      }

      if (request.getParameter("edited") != null) {
        request.setAttribute("addition", "?edited=1");
        constructionDefect.setEdited(true);
      }
      constructionDefect.getDefectVarity().getVarityName();

      constructionDefectManager.makeNotNull(constructionDefect);

      if (request.getAttribute("defectZoneList") == null) {

        request.setAttribute("defectZoneList", new ArrayList());
        request.setAttribute("noDefectZoneList", "true");
      }
      constructionDefect.setDocLocation(request
          .getParameter("docLocation"));
      System.out.println("Before:" + constructionDefect);
      return constructionDefect;

    }
     System.out.println("After:"
      + request
      .getParameter("exampleId"));
    return super.formBackingObject(request);
  }

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

    System.out.println("On submit method started  ..." + command);

    ConstructionDefectZone constructionDefect = (ConstructionDefectZone) command;
    // boolean isNew = (constructionDefect.getConstructionDefectId() ==
    // null);
    Locale locale = request.getLocale();

    if (request.getParameter("delete") != null) {
      constructionDefectManager
              .removeConstructionDefect(constructionDefect
            .getConstructionDefectId().toString());
      saveMessage(request, getText("constructionDefect.deleted", locale));
    } else {

      Integer reasonId = constructionDefect.getReason().getReasonId();
      System.out.println("RID"+reasonId);
      //reasonId = new Integer(0);
      if (!reasonId.equals(new Integer(-1))) {
        constructionDefect.setReason(reasonManager.getReason(reasonId
            .toString()));
      } else {
        constructionDefect.setReason(null);
      }

      Integer defectZoneId = constructionDefect.getDefectZone()
          .getDefectZoneId();
      if (!defectZoneId.equals(new Integer(-1))) {
        constructionDefect.setDefectZone(defectZoneManager
            .getDefectZone(defectZoneId.toString()));
      }
      Integer defectTypeId = constructionDefect.getDefectType()
          .getDefectTypeId();
      if (!defectTypeId.equals(new Integer(-1))) {
        constructionDefect.setDefectType(defectTypeManager
            .getDefectType(defectTypeId.toString()));
      }

      Integer dangerCategoryId = constructionDefect.getDangerCategory()
          .getDangerCategoryId();
      if (!dangerCategoryId.equals(new Integer(-1))) {
        constructionDefect.setDangerCategory(dangerCategoryManager
            .getDangerCategory(dangerCategoryId.toString()));
      }

      Integer defectVarityId = constructionDefect.getDefectVarity()
          .getVarityId();

      if (!defectVarityId.equals(new Integer(-1))) {
        constructionDefect.setDefectVarity(defectVarityManager
            .getDefectVarity(defectVarityId.toString()));
      }

      List authentifications = new ArrayList();

      List parameters = new ArrayList();
      List parametersFromForm = constructionDefect.getDefectParameters();

      for (int i = 0; i < parametersFromForm.size(); i++) {
        DefectParameterZone defectParameter = (DefectParameterZone) parametersFromForm
            .get(i);
        defectParameter.setParameter(parameterManager
            .getParameter(defectParameter.getParameter()
                .getParameterId().toString()));

        parameters.add(defectParameter);
       
      }
      constructionDefect.setDefectParameters(parameters);

      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
      CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
          .getFile("file");
      if (file.getSize() > 0) {
        String fileName = ImageUtil.getUniqueJPEGFile(request);
        FileOutputStream fileOutputStream = new FileOutputStream(
            FileHelper.getCurrentPath(request) + fileName);
        fileOutputStream.write(file.getBytes());
        fileOutputStream.close();
        InputStream imageStream = ImageUtil.scaleImage(
            new FileInputStream(FileHelper.getCurrentPath(request)
                + fileName), 400, 400);

        fileOutputStream = new FileOutputStream(
            FileHelper.getCurrentPath(request) + fileName);
        byte[] bufer = new byte[62000];

        while (imageStream.read(bufer) != -1) {
          fileOutputStream.write(bufer);
        }
        fileOutputStream.close();
        constructionDefect.setWayToPhoto(fileName);
        constructionDefect.setPhotoBlob(Hibernate
            .createBlob(new FileInputStream(FileHelper
                .getCurrentPath(request) + fileName)));

      }

      List exampleList = constructionDefect.getConstructionExampleList();

     
     
      if(constructionDefect.getExampleId()!=null){
       System.out.println("Example ID "+constructionDefect.getExampleId());
       System.out.println("Defect ID "+constructionDefect.getConstructionDefectId());
       
       ConstructionExample constructionExample = constructionExampleManager.getConstructionExample(constructionDefect.getExampleId().toString()) ;
       constructionExample.setSelected(true);
       exampleList.add(constructionExample);
      }
   
      if (constructionDefect.getConstructionDefectId() != null) {
        Date date = new Date();
        constructionDefect.setUniqueForExamples(String.valueOf(date
            .getTime()));
        System.out.println("Saving..." + constructionDefect);
        constructionDefectManager
            .saveConstructionDefectZone(constructionDefect);
        ObjectConstruction objectConstruction = objectConstructionManager
            .getObjectConstruction(request.getSession()
                .getAttribute("objectConstructionId")
                .toString());
        return new ModelAndView(
            "redirect:constructionExamples.html?typeId="
                + objectConstruction.getTypeId() + "&objectId="
                + objectConstruction.getObjectId());

      } else {

        System.out.println("Saving.id null ... exampleList ... " + exampleList + constructionDefect);
        List listSave = new ArrayList();
        for (int i = 0; i < exampleList.size(); i++) {
          ConstructionExample constructionExample1 = (ConstructionExample) exampleList
              .get(i);
          if (constructionExample1.isSelected()) {
            System.out.println("selected");
             constructionExample1 = constructionExampleManager
                .getConstructionExample(constructionExample1
                    .getExampleId().toString());
            listSave.add(constructionExample1);
          }
        }

        Date date = new Date();
        for (int i = 0; i < listSave.size(); i++) {
          ConstructionExample constructionExample = (ConstructionExample) listSave
              .get(i);
          ConstructionDefectZone constZone = getNewConstructionDefectZone(
              constructionDefect, request);
          constZone.setExampleId(constructionExample.getExampleId());
          constZone.setUniqueForExamples(String.valueOf(date
              .getTime()));
          //constZone.setReason(0);
          System.out.println("Saving.id null ... is" + constZone);
          constructionDefectManager
              .saveConstructionDefectZone(constZone);
          //constructionExampleManager.evict(constructionExample);
          //constructionExample.getExampleDefectsZone().add(constZone);
          //constructionExampleManager
          //    .saveConstructionExample(constructionExample);

        }
      }

    }
   
   
   
    ObjectConstruction objectConstruction = objectConstructionManager
                    .getObjectConstruction(request.getSession()
              .getAttribute("objectConstructionId").toString());

    request.getSession().setAttribute("pType""constructionExample" );
        request.getSession().setAttribute("pId",    request.getParameter("exampleId") );
   
   
    return new ModelAndView("redirect:constructionExamples.html?typeId="
                          + objectConstruction.getTypeId() + "&objectId="
                         + objectConstruction.getObjectId() + "&exampleId="
                         + request.getParameter("exampleId"));

  }

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

    System.out.println("Process form submission method started ..."
        + command);

    ConstructionDefectZone constructionDefect = (ConstructionDefectZone) command;
    request.setAttribute("constructionTypeId",
        constructionDefect.getConstructionTypeId());
    request.setAttribute("defectTypeList", defectTypeManager
        .getDefectTypesByConstructionTypeId(new Integer(
            constructionDefect.getConstructionTypeId())));
    request.setAttribute("defectZoneList", defectZoneManager
        .getDefectZonesByConstructionType(constructionDefect
            .getConstructionTypeId()));
    String constructionType = constructionDefect.getConstructionTypeId();
    request.setAttribute("constructionType", constructionType);
    request.setAttribute("dangerCategoryList",
        dangerCategoryManager.getDangerCategorys(null));

    List exampleList = constructionDefect.getConstructionExampleList();
    for (int i = 0; i < exampleList.size(); i++) {
      ConstructionExample constructionExample1 = (ConstructionExample) exampleList
          .get(i);
      boolean selected = constructionExample1.isSelected();
      constructionExample1.setSelected(selected);
      exampleList.set(i, constructionExample1);
    }
    constructionDefect.setConstructionExampleList(exampleList);

    System.out.println("DV 00" + constructionDefect);

    if (!constructionDefect.getDefectType().getDefectTypeId()
        .equals(new Integer(-1))) {
      request.setAttribute("defectVarityList", defectVarityManager
          .getDefectVaritiesByType(constructionDefect.getDefectType()
              .getDefectTypeId().toString()));
      request.setAttribute("reasonList", reasonManager.getReasonsByType(
          constructionDefect.getDefectType().getDefectTypeId()
              .toString(), constructionDefect.getDefectVarity()
              .getVarityId().toString(), constructionDefect
              .getDefectZone().getDefectZoneId().toString(),
          String.valueOf(constructionType)));
    } else {
      request.setAttribute("defectVarityList", new ArrayList());
      request.setAttribute("reasonList", new ArrayList());
    }

    if (request.getParameter("save") == null) {

      if (!constructionDefect.getDefectVarity().getVarityId()
          .equals(new Integer(-1))) {

        // loading defect parameters
        List parameterList = parameterManager
            .getParametersByVarity(constructionDefect
                .getDefectVarity().getVarityId().toString());
        List parameterDefectList = new ArrayList();

        for (int i = 0; i < parameterList.size(); i++) {
          Parameter parameter = (Parameter) parameterList.get(i);
          DefectParameterZone defectParameterZone = new DefectParameterZone();
          defectParameterZone.setParameter(parameter);
          parameterDefectList.add(defectParameterZone);

        }
        constructionDefect.setDefectParameters(parameterDefectList);

      } else {
        constructionDefect.setDefectParameters(new ArrayList());
      }

      /*
       * if (request.getParameter("defectTypeSelect") != null) { return
       * new ModelAndView("constructionDefectZoneForm",
       * "constructionDefect", constructionDefect);
       *
       * }
       *
       * if (request.getParameter("defectVaritySelect") != null) { return
       * new ModelAndView("constructionDefectZoneForm",
       * "constructionDefect", constructionDefect);
       *
       * }
       *
       *
       * if (request.getParameter("defectZoneSelect") != null) { return
       * new ModelAndView("constructionDefectZoneForm",
       * "constructionDefect", constructionDefect); }
       */

      if (request.getParameter("cancel") != null) {
        System.out.println("before :" + constructionDefect);
        ObjectConstruction objectConstruction = objectConstructionManager
            .getObjectConstruction(request.getSession()
                .getAttribute("objectConstructionId")
                .toString());
        return new ModelAndView(
            "redirect:constructionExamples.html?typeId="
                + objectConstruction.getTypeId()   + "&objectId="
                + objectConstruction.getObjectId() + "&exampleId="
                + request.getParameter("exampleId"));
      }
      System.out.println("after :" + constructionDefect);
      return new ModelAndView("constructionDefectZoneForm",
          "constructionDefect", constructionDefect);

    }

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

  protected void onBind(HttpServletRequest request, Object command)
      throws Exception {
    // if the user is being deleted, turn off validation
    System.out.println("On bind method started  ...");

    if (request.getParameter("delete") != null
        || request.getParameter("defectZoneSelect") != null
        || request.getParameter("defectVaritySelect") != null
        || request.getParameter("defectTypeSelect") != null) {
      super.setValidateOnBinding(false);
    } else {
      super.setValidateOnBinding(true);
    }
    System.out.println("On bind " + command);
  }

  private ConstructionDefectZone getNewConstructionDefectZone(
      ConstructionDefectZone constructionDefect,
      HttpServletRequest request) throws IOException {

    System.out.println("Get New Construction Defect Zone");
    ConstructionDefectZone constZone = new ConstructionDefectZone();

    constZone.setComment(constructionDefect.getComment());
    constZone.setConstructionDefectId(constructionDefect
          .getConstructionDefectId());
    constZone.setConstructionExampleList(constructionDefect
         .getConstructionExampleList());
    constZone.setConstructionTypeId(constructionDefect
         .getConstructionTypeId());
    constZone.setDangerCategory(constructionDefect.getDangerCategory());
    constZone.setDefectNumber(constructionDefect.getDefectNumber());

    constZone.setDefectParameters(constructionDefect.getDefectParameters());
    constZone.setDefectType(constructionDefect.getDefectType());
    constZone.setDefectVarity(constructionDefect.getDefectVarity());
    constZone.setDefectZone(constructionDefect.getDefectZone());

    constZone.setWayToPhoto(constructionDefect.getWayToPhoto());
    constZone.setFile(constructionDefect.getFile());
    constZone.setOtherReason(constructionDefect.getOtherReason());
    //        constZone.setPhotoBlob(Hibernate
    //     .createBlob(new FileInputStream(FileHelper
    //     .getCurrentPath(request) + constZone.getWayToPhoto())));
    constZone.setPhotoRefference(constructionDefect.getPhotoRefference());
    constZone.setReason(constructionDefect.getReason());
    constZone.setType(constructionDefect.getType());

    List parameters = constructionDefect.getDefectParameters();
    List defectList = new ArrayList();
    for (int i = 0; i < parameters.size(); i++) {

      DefectParameterZone defectParameter = (DefectParameterZone) parameters
          .get(i);
      DefectParameterZone zone = new DefectParameterZone();

      zone.setParameterValueSecond(defectParameter
          .getParameterValueSecond());
      zone.setParameterValue(defectParameter.getParameterValue());
      zone.setParameter(defectParameter.getParameter());

      defectList.add(zone);

    }
    constZone.setDefectParameters(defectList);

    return constZone;
  }

}
TOP

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

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.