package com.lanyotech.pps.mvc; import java.util.HashMap; import java.util.List; import java.util.Map; import com.easyjf.container.annonation.Action; import com.easyjf.container.annonation.Inject; import com.easyjf.core.support.query.QueryObject; import com.easyjf.util.CommUtil; import com.easyjf.web.Module; import com.easyjf.web.Page; import com.easyjf.web.WebForm; import com.easyjf.web.core.AbstractPageCmdAction; import com.easyjf.web.tools.IPageList; import com.lanyotech.pps.domain.Department; import com.lanyotech.pps.service.IDepartmentService; /** * DepartmentAction * @author EasyJWeb 1.0-m2 * $Id: DepartmentAction.java,v 0.0.1 2010-6-12 11:46:55 EasyJWeb 1.0-m3 with ExtJS Exp $ */ @Action public class DepartmentAction extends AbstractPageCmdAction { @Inject private IDepartmentService service; /* * set the current service * return service */ public void setService(IDepartmentService service) { this.service = service; } public Page doIndex(WebForm f, Module m) { return page("list"); } public Page doList(WebForm form) { QueryObject qo = form.toPo(QueryObject.class); String parent=CommUtil.null2String(form.get("parent")); if("root".equals(parent)||"".equals(parent)){ //只查询顶级节点 qo.addQuery("obj.parent is EMPTY", null); } else { qo.addQuery("obj.parent.id", new Long(parent), "="); } IPageList pageList = service.getDepartmentBy(qo); form.jsonResult(pageList); return Page.JSONPage; } public Page doGetTree(WebForm form){ QueryObject qo = form.toPo(QueryObject.class); String parent=CommUtil.null2String(form.get("parent")); if("root".equals(parent)||"".equals(parent)){ //只查询顶级节点 qo.addQuery("obj.parent is EMPTY", null); } else { qo.addQuery("obj.parent.id", new Long(parent), "="); } List list= service.getDepartmentBy(qo).getResult(); List ret=new java.util.ArrayList(); if(list!=null){ for(int i=0;i<list.size();i++){ Department dept=(Department)list.get(i); Map map=new HashMap(); map.put("text", dept.getName()); map.put("id", dept.getId()); if(dept.getChildren()==null||dept.getChildren().isEmpty()){ map.put("leaf", true); } ret.add(map); } } form.jsonResult(ret); return Page.JSONPage; } public Page doRemove(WebForm form) { Long id = new Long(CommUtil.null2String(form.get("id"))); service.delDepartment(id); return pageForExtForm(form); } public Page doSave(WebForm form) { Department object = form.toPo(Department.class); if (!hasErrors()) service.addDepartment(object); return pageForExtForm(form); } public Page doUpdate(WebForm form) { Long id = new Long(CommUtil.null2String(form.get("id"))); Department object = service.getDepartment(id); form.toPo(object, true); if (!hasErrors()) service.updateDepartment(id, object); return pageForExtForm(form); } }