Package com.vst.webapp.action

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

package com.vst.webapp.action;

import com.vst.model.BuildingObject;
import com.vst.model.ObjectPhoto;
import com.vst.service.BuildingObjectManager;
import com.vst.service.ObjectPhotoManager;
import com.vst.webapp.util.ImageUtil;
import com.vst.util.FileHelper;
import org.apache.commons.lang.StringUtils;
import org.hibernate.Hibernate;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Locale;

public class ObjectPhotoFormController extends BaseFormController {
    private ObjectPhotoManager objectPhotoManager = null;
    private BuildingObjectManager buildingObjectManager = null;


    public void setBuildingObjectManager(BuildingObjectManager buildingObjectManager) {
        this.buildingObjectManager = buildingObjectManager;
    }

    public void setObjectPhotoManager(ObjectPhotoManager objectPhotoManager) {
        this.objectPhotoManager = objectPhotoManager;
    }

    public ObjectPhotoFormController() {
        setCommandName("objectPhoto");
        setCommandClass(ObjectPhoto.class);
    }

    protected Object formBackingObject(HttpServletRequest request)
            throws Exception {

        if (!isFormSubmission(request)) {
            String photoId = request.getParameter("photoId");
            ObjectPhoto objectPhoto = null;
            String objectId = request.getParameter("objectId");

            if (!StringUtils.isEmpty(photoId)) {
                objectPhoto = objectPhotoManager.getObjectPhoto(photoId);
                objectPhotoManager.evict(objectPhoto);
            } else {
                objectPhoto = new ObjectPhoto();
            }
            if (objectId != null) {
                objectPhoto.setObjectId(new Integer(objectId));
            }
            if (request.getParameter("edited") != null) {
                request.setAttribute("addition", "?edited=1");
                objectPhoto.setEdited(true);
            }
            objectPhoto.setDocLocation(request.getParameter("docLocation"));

            return objectPhoto;
        }
        if (request.getAttribute("objectPhoto") != null) {
            ObjectPhoto objectPhoto = (ObjectPhoto) request.getAttribute("objectPhoto");
            objectPhotoManager.evict(objectPhoto);
        }
        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...");
        }

        ObjectPhoto objectPhoto = (ObjectPhoto) command;
        boolean isNew = (objectPhoto.getPhotoId() == null);
        Locale locale = request.getLocale();
        if (request.getParameter("delete") != null) {
            BuildingObject buildingObject = buildingObjectManager.getBuildingObject(objectPhoto.getObjectId().toString());
            buildingObject.getPhotoes().remove(objectPhoto);
            objectPhotoManager.removeObjectPhoto(objectPhoto.getPhotoId().toString());
            buildingObject.getPhotoes().remove(objectPhoto);
            buildingObjectManager.saveBuildingObject(buildingObject);
            saveMessage(request, getText("objectPhoto.deleted", locale));
        } else {
            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();
                objectPhoto.setWayToPhoto(fileName);
                objectPhoto.setPhotoBlob(Hibernate.createBlob(new FileInputStream(FileHelper.getCurrentPath(request) + fileName)));
//                                if (!isNew) {
//                                   objectPhotoManager.evict(objectPhoto);
//                                }

                if (isNew) {

                    BuildingObject buildingObject = buildingObjectManager.getBuildingObject(objectPhoto.getObjectId().toString());

                    buildingObject.getPhotoes().add(objectPhoto);
                    buildingObjectManager.saveBuildingObject(buildingObject);
//                    objectPhoto.setPhotoPosition(new Integer(buildingObject.getPhotoes().size()));
//
//                   objectPhotoManager.saveObjectPhoto(objectPhoto);
                } else {
                    objectPhotoManager.evict(objectPhoto);
                    objectPhotoManager.saveObjectPhoto(objectPhoto);
                }

                String key = (isNew) ? "objectPhoto.added" : "objectPhoto.updated";
                saveMessage(request, getText(key, locale));
            }


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

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

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.