Subversion Repositories SmartDukaan

Rev

Rev 20424 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.hotspotstore.controllers;


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.hotspotstore.controllers.BaseController;
import com.hotspotstore.model.Banner;
import com.hotspotstore.storage.Mongo;

import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

@Results({
        @Result(name = "redirect", location = "${url}", type = "redirect")
})


public class BannerController extends BaseController{

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        private static Logger log = Logger.getLogger(Class.class);
        private String id;
        private File userImage;
        private String bannerName;
        private String fileExtention;
        private String link;
        private String priority;
        private Banner bannerObj;
        private String sameWindowTarget;
        private String url;
        private String isActive;
        private String[] mapLink;

        public String[] getMapLink() {
                return mapLink;
        }

        public void setMapLink(String[] mapLink) {
                this.mapLink = mapLink;
        }

        private String[] mapCoordinates;

        public String[] getMapCoordinates() {
                return mapCoordinates;
        }

        public void setMapCoordinates(String[] mapCoordinates) {
                this.mapCoordinates = mapCoordinates;
        }

        public String getSameWindowTarget() {
                return sameWindowTarget;
        }

        public void setSameWindowTarget(String sameWindowTarget) {
                this.sameWindowTarget = sameWindowTarget;
        }

        public String create(){
                try{
                        String filePath = request.getSession().getServletContext().getRealPath("/images/banners/");
                        String imageName = getImageName();
                        File fileToCreate = new File(filePath, imageName); 
                        FileUtils.copyFile(this.userImage, fileToCreate);

                        Banner banner = new Banner();
                        banner.setBannerName(bannerName);
                        banner.setLink(link);
                        banner.setImageName(imageName);
                        banner.setPriority(Integer.valueOf(priority));
                        banner.setActive(false);
                        banner.setSameWindowTarget(Boolean.valueOf(sameWindowTarget));
                        banner.setFileExtention(fileExtention);
                        Mongo.addBanner(banner);
                }
                catch(Exception e){
                        log.error("Error while adding banner",e);
                        addActionError("Failed to do changes");
                }
                addActionMessage("Banner added successfully");
                return "index";
        }

        public String update() throws NumberFormatException, Exception{
                try{
                        bannerObj = Mongo.getBannerById(Long.valueOf(id));
                        if (userImage !=null){
                                bannerObj.setImageName(getImageName());
                                String filePath = request.getSession().getServletContext().getRealPath("/images/banners/");
                                File fileToCreate = new File(filePath, bannerObj.getImageName()); 
                                FileUtils.copyFile(this.userImage, fileToCreate);
                        }
                        bannerObj.setBannerName(bannerName);
                        bannerObj.setLink(link);
                        bannerObj.setPriority(Integer.valueOf(priority));
                        bannerObj.setActive(Boolean.valueOf(isActive));
                        bannerObj.setSameWindowTarget(Boolean.valueOf(sameWindowTarget));
                        bannerObj.setFileExtention(fileExtention);
                        ArrayList<Map<String, String>> bannerList = new ArrayList<Map<String, String>>();
                        if (mapLink!=null){
                                for(int i=0;i<mapLink.length;i++){
                                        if(mapLink[i].isEmpty() || mapCoordinates[i].isEmpty()) {
                                                continue;
                                        }
                                        Map<String, String> bannerMap = new HashMap<String, String>();
                                        bannerMap.put("link", mapLink[i]);
                                        bannerMap.put("coordinates", mapCoordinates[i]);
                                        bannerList.add(bannerMap);
                                }
                        }
                        bannerObj.setBannerList(bannerList);
                        Mongo.updateBanner(bannerObj);
                        addActionMessage("Banner updated successfully");
                }
                catch(Exception e){
                        log.error("Unable to update banner ",e);
                        addActionMessage("Banner updation failed");
                }
                return "index";
        }

        public String destroy(){
                try{
                        Mongo.deleteBanner(Long.valueOf(id));
                        addActionMessage("Banner deleted successfully");
                }
                catch(Exception e){
                        addActionError("Unable to delete banner");
                }
                return "index";

        }

        public ArrayList<Banner> getAllBanners(){
                return Mongo.getAllBanners();
        }

        public String index() {
                return "index";
        }

        public String editNew() {
                return "editNew";
        }

        public String edit() throws NumberFormatException, Exception {
                bannerObj = Mongo.getBannerById(Long.valueOf(id));
                return "edit";
        }

        public String getImageName() {
                Calendar cal=GregorianCalendar.getInstance();
                return String.valueOf(cal.getTimeInMillis())+"."+fileExtention;
        }

        public String getId() {
                return id;
        }

        public void setId(String id) {
                this.id = id;
        }


        public File getUserImage() {
                return userImage;
        }

        public void setUserImage(File userImage) {
                this.userImage = userImage;
        }

        public String getBannerName() {
                return bannerName;
        }

        public void setBannerName(String bannerName) {
                this.bannerName = bannerName;
        }

        public String getFileExtention() {
                return fileExtention;
        }

        public void setFileExtention(String fileExtention) {
                this.fileExtention = fileExtention;
        }

        public String getLink() {
                return link;
        }

        public void setLink(String link) {
                this.link = link;
        }

        public String getPriority() {
                return priority;
        }

        public void setPriority(String priority) {
                this.priority = priority;
        }

        public void setBannerObj(Banner bannerObj) {
                this.bannerObj = bannerObj;
        }

        public Banner getBannerObj() {
                return bannerObj;
        }

        public void setUrl(String url) {
                this.url = url;
        }

        public String getUrl() {
                return url;
        }

        public void setIsActive(String isActive) {
                this.isActive = isActive;
        }

        public String getIsActive() {
                return isActive;
        }

}