/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.um.action; import java.util.List; import com.jinhe.tss.component.support.web.webwork.PTActionSupport; import com.jinhe.tss.core.web.dispaly.grid.GridDataEncoder; import com.jinhe.tss.core.web.dispaly.tree.LevelTreeParser; import com.jinhe.tss.core.web.dispaly.tree.TreeEncoder; import com.jinhe.tss.core.web.dispaly.xform.XFormEncoder; import com.jinhe.tss.core.web.dispaly.xform.XFormTemplet; import com.jinhe.tss.um.entity.Message; import com.jinhe.tss.um.helper.UMQueryCondition; import com.jinhe.tss.um.service.IMessageService; public class MessageAction extends PTActionSupport { private static final long serialVersionUID = -412038103801L; private static final String XFORM_URI = "template/xform/message.xml"; private static final String GRID_URI = "template/grid/messageGrid.xml"; private static final String USER_GRID_URI = "template/grid/userGrid.xml"; private static final String SEARCH_USER_URI = "template/xform/searchUser.xml"; private static final String SAVE_MODE = "save"; private IMessageService service; private Long id; private String type; private String mode; private Integer boxId; // 信箱類型,分收件箱、發件箱、草稿箱 private Message message = new Message(); private UMQueryCondition condition = new UMQueryCondition(); public String getMessageInfo(){ Message message = new Message(); if( id != null ){ message = service.viewMessage(id); if("reply".equals(type)) { // 回复 Message newMessage = new Message(); newMessage.setReceiverId(message.getSenderId()); newMessage.setReceiver(message.getSender()); newMessage.setTitle("Re: " + message.getTitle()); message = newMessage; } else if("forward".equals(type)) { // 转发 Message newMessage = new Message(); newMessage.setContent(message.getContent()); newMessage.setTitle(message.getTitle()); message = newMessage; } } XFormEncoder messagerEncoder = new XFormEncoder(XFORM_URI, message); return print("MessageInfo", messagerEncoder); } public String saveMessage(){ if(SAVE_MODE.equals(mode)){ service.saveMessage(message); return printSuccessMessage("保存成功!"); } else { service.sendMessage(message); return printSuccessMessage("发送成功!"); } } public String viewMessage(){ XFormEncoder messagerEncoder = new XFormEncoder(XFORM_URI, service.viewMessage(id)); return print("MessageInfo", messagerEncoder); } public String deleteMessage(){ service.deleteMessage(id); return printSuccessMessage("删除成功!"); } public String getSearchUserInfo(){ GridDataEncoder encoder = new GridDataEncoder(null, USER_GRID_URI); XFormTemplet template = new XFormTemplet(SEARCH_USER_URI); return print(new String[]{"SearchUser", "ExistUserList"}, new Object[]{template.getTemplet().asXML(), encoder}); } public String getGroupTree(){ List<?> groups = service.getGroupsList(); TreeEncoder encoder = new TreeEncoder(groups, new LevelTreeParser()); encoder.setNeedRootNode(false); return print("GroupTree", encoder); } public String searchUsers(){ List<?> users = service.getUsersByCondition(condition); GridDataEncoder encoder = new GridDataEncoder(users, USER_GRID_URI); return print("SourceList", encoder); } public String getMessageList(){ List<?> messages = null; switch (boxId) { case 1: break; case 2: messages = service.getInboxList(); break; case 3: messages = service.getDraftList(); break; case 4: messages = service.getOutboxList(); break; default: break; } return print("MessageList", new GridDataEncoder(messages, GRID_URI)); } public void setId(Long id) { this.id = id; } public void setService(IMessageService service) { this.service = service; } public Message getMessage() { return message; } public void setMode(String mode) { this.mode = mode; } public void setBoxId(Integer boxId) { this.boxId = boxId; } public void setType(String type) { this.type = type; } public UMQueryCondition getCondition() { return condition; } }