/** * @author 이동민 * @since 2014.07.28 * @version 1.0 * @see
 *  Copyright (C) 2007 by 313 DEV GRP, Inc - All Rights Reserved
 *  Unauthorized copying of this file, via any medium is strictly prohibited
 *  Proprietary and confidential
 *  Written by 313 developer group <313@313.co.kr>, December 2010
 * 
* */ package egovframework.com.ext.jstree.springHibernate.core.controller; import com.google.common.collect.Maps; import egovframework.com.ext.jstree.springHibernate.core.service.JsTreeHibernateService; import egovframework.com.ext.jstree.springHibernate.core.util.Util_TitleChecker; import egovframework.com.ext.jstree.springHibernate.core.validation.group.*; import egovframework.com.ext.jstree.springHibernate.core.vo.JsTreeHibernateDTO; import egovframework.com.ext.jstree.support.mvc.GenericAbstractController; import egovframework.com.ext.jstree.support.util.ParameterParser; import org.hibernate.criterion.Order; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.util.StringUtils; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; @Controller @RequestMapping(value = {"/com/ext/jstree/springHibernate/core"}) public class JsTreeHibernateController extends GenericAbstractController { @Autowired @Qualifier("JsTreeHibernateService") private JsTreeHibernateService jsTreeHibernateService; @ResponseBody @RequestMapping(value = "/getChildNode.do", method = RequestMethod.GET) public ModelAndView getChildNode(JsTreeHibernateDTO jsTreeHibernateDTO, ModelMap model, HttpServletRequest request) throws Exception { ParameterParser parser = new ParameterParser(request); if (parser.getInt("c_id") <= 0) { throw new RuntimeException(); } jsTreeHibernateDTO.setWhere("c_parentid", new Long(parser.get("c_id"))); List list = jsTreeHibernateService.getChildNode(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", list); return modelAndView; } @ResponseBody @RequestMapping(value = "/getPaginatedChildNode.do", method = RequestMethod.GET) public ModelAndView getPaginatedChildNode(JsTreeHibernateDTO paginatedJsTreeHibernateDTO, ModelMap model, HttpServletRequest request) throws Exception { if (paginatedJsTreeHibernateDTO.getC_id() <= 0 || paginatedJsTreeHibernateDTO.getPageIndex() <= 0 || paginatedJsTreeHibernateDTO.getPageUnit() <= 0 || paginatedJsTreeHibernateDTO.getPageSize() <= 0) { throw new RuntimeException(); } paginatedJsTreeHibernateDTO.setWhere("c_parentid", paginatedJsTreeHibernateDTO.getC_id()); List resultChildNodes = jsTreeHibernateService.getPaginatedChildNode(paginatedJsTreeHibernateDTO); paginatedJsTreeHibernateDTO.getPaginationInfo().setTotalRecordCount(resultChildNodes.size()); ModelAndView modelAndView = new ModelAndView("jsonView"); HashMap resultMap = Maps.newHashMap(); resultMap.put("paginationInfo", paginatedJsTreeHibernateDTO.getPaginationInfo()); resultMap.put("result", resultChildNodes); modelAndView.addObject("result", resultMap); return modelAndView; } @ResponseBody @RequestMapping(value = "/searchNode.do", method = RequestMethod.GET) public ModelAndView searchNode(JsTreeHibernateDTO jsTreeHibernateDTO, ModelMap model, HttpServletRequest request) throws Exception { ParameterParser parser = new ParameterParser(request); if (!StringUtils.hasText(request.getParameter("searchString"))) { throw new RuntimeException(); } jsTreeHibernateDTO.setWhereLike("c_title", parser.get("parser")); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateService.searchNode(jsTreeHibernateDTO)); return modelAndView; } @ResponseBody @RequestMapping(value = "/addNode.do", method = RequestMethod.POST) public ModelAndView addNode(@Validated(value = AddNode.class) JsTreeHibernateDTO jsTreeHibernateDTO, BindingResult bindingResult, ModelMap model) throws Exception { if (bindingResult.hasErrors()) throw new RuntimeException(); jsTreeHibernateDTO.setC_title(Util_TitleChecker.StringReplace(jsTreeHibernateDTO.getC_title())); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateService.addNode(jsTreeHibernateDTO)); return modelAndView; } @ResponseBody @RequestMapping(value = "/removeNode.do", method = RequestMethod.POST) public ModelAndView removeNode(@Validated(value = RemoveNode.class) JsTreeHibernateDTO jsTreeHibernateDTO, BindingResult bindingResult, ModelMap model) throws Exception { if (bindingResult.hasErrors()) throw new RuntimeException(); jsTreeHibernateDTO.setStatus(jsTreeHibernateService.removeNode(jsTreeHibernateDTO)); setJsonDefaultSetting(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateDTO); return modelAndView; } private void setJsonDefaultSetting(JsTreeHibernateDTO jsTreeHibernateDTO) { long defaultSettingValue = 0; jsTreeHibernateDTO.setC_parentid(defaultSettingValue); jsTreeHibernateDTO.setC_position(defaultSettingValue); jsTreeHibernateDTO.setC_left(defaultSettingValue); jsTreeHibernateDTO.setC_right(defaultSettingValue); jsTreeHibernateDTO.setC_level(defaultSettingValue); jsTreeHibernateDTO.setRef(defaultSettingValue); } @ResponseBody @RequestMapping(value = "/alterNode.do") public ModelAndView alterNode(@Validated(value = AlterNode.class) JsTreeHibernateDTO jsTreeHibernateDTO, BindingResult bindingResult, ModelMap model) throws Exception { if (bindingResult.hasErrors()) { throw new RuntimeException(); } jsTreeHibernateDTO.setC_title(Util_TitleChecker.StringReplace(jsTreeHibernateDTO.getC_title())); jsTreeHibernateDTO.setStatus(jsTreeHibernateService.alterNode(jsTreeHibernateDTO)); setJsonDefaultSetting(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateDTO); return modelAndView; } @ResponseBody @RequestMapping(value = "/alterNodeType.do", method = RequestMethod.POST) public ModelAndView alterNodeType(@Validated(value = AlterNodeType.class) JsTreeHibernateDTO jsTreeHibernateDTO, BindingResult bindingResult, ModelMap model) throws Exception { if (bindingResult.hasErrors()) { throw new RuntimeException(); } jsTreeHibernateService.alterNodeType(jsTreeHibernateDTO); setJsonDefaultSetting(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateDTO); return modelAndView; } @ResponseBody @RequestMapping(value = "/moveNode.do", method = RequestMethod.POST) public ModelAndView moveNode(@Validated(value = MoveNode.class) JsTreeHibernateDTO jsTreeHibernateDTO, BindingResult bindingResult, ModelMap model, HttpServletRequest request) throws Exception { if (bindingResult.hasErrors()) throw new RuntimeException(); jsTreeHibernateService.moveNode(jsTreeHibernateDTO, request); setJsonDefaultSetting(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", jsTreeHibernateDTO); return modelAndView; } @ResponseBody @RequestMapping(value = "/analyzeNode.do", method = RequestMethod.GET) public ModelAndView analyzeNode(ModelMap model) { model.addAttribute("analyzeResult", ""); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", "ture"); return modelAndView; } @ResponseBody @RequestMapping(value = "/getMonitor.do", method = RequestMethod.GET) public ModelAndView getMonitor(JsTreeHibernateDTO jsTreeHibernateDTO, ModelMap model, HttpServletRequest request) throws Exception { jsTreeHibernateDTO.setOrder(Order.asc("c_id")); List list = jsTreeHibernateService.getChildNode(jsTreeHibernateDTO); ModelAndView modelAndView = new ModelAndView("jsonView"); modelAndView.addObject("result", list); return modelAndView; } }