package com.javaeye.yourgame.action;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.xml.registry.infomodel.User;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.ScriptProxy;
import org.hibernate.criterion.DetachedCriteria;
import com.javaeye.yourgame.core.BaseAction;
import com.javaeye.yourgame.core.Page;
import com.javaeye.yourgame.po.Message;
import com.javaeye.yourgame.service.IMessageService;
@SuppressWarnings("serial")
public class MessageAction extends BaseAction {
public static Map<String, TreeNode> onlineUsers = new TreeMap<String, TreeNode>();
private Map<String, Object> infos = new HashMap<String, Object>();
public static Map<Long, Message> messages = new TreeMap<Long, Message>();
private Message msg;
private Page page;
private IMessageService messageService;
private boolean success;
private User user;
/**
* 发送消息,在这个方法里面当聊天记录等于5条的时候自动保存到数据库,然后清空记录
*
*/
@SuppressWarnings("unchecked")
public String addMessage(String text, String sender) throws Exception {
if (text != null) {
msg = new Message();
msg.setDate(new Date());
msg.setSender(sender);
msg.setText(text);
messages.put(msg.getId(), msg);
if (messages.size() >= 5) {
List list = new ArrayList();
list.addAll(messages.values());
messageService.saveMessages(list);
messages.clear();
}
WebContext wctx = WebContextFactory.get();
String currentPage = wctx.getCurrentPage();
Collection<ScriptSession> sessions = wctx.getScriptSessionsByPage(currentPage);
ScriptProxy s = new ScriptProxy(sessions);
s.addFunctionCall("receiveMessages", msg);
}
return NONE;
}
public String findChatHistory() throws ParseException {
DetachedCriteria dc = DetachedCriteria.forClass(Message.class);
page.setResult(dc);
page = messageService.findByCriteria(page);
return SUCCESS;
}
public String addUser() {
TreeNode tn = new TreeNode();
tn.setId(java.util.UUID.randomUUID().toString());
tn.setText(getRequest().getParameter("userName"));
onlineUsers.put(tn.getId(), tn); // 用户下线,则从map中移除
this.setSuccess(true);
return SUCCESS;
}
public String getOnlineUsers() {
this.jsonString = "[";
for (Iterator it = onlineUsers.entrySet().iterator(); it.hasNext();) {
Map.Entry en = (Map.Entry) it.next();
TreeNode tn = (TreeNode) en.getValue();
this.jsonString += "{id:'" + tn.getId() + "'";
this.jsonString += ",leaf:true,iconCls:'icon-user',";
this.jsonString += "text:'" + tn.getText() + "'}";
if (it.hasNext()) {
this.jsonString += ",";
}
}
this.jsonString += "]";
return SUCCESS;
}
public boolean isSuccess() {
return success;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void setSuccess(boolean success) {
this.success = success;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public Map<String, Object> getInfos() {
return infos;
}
public void setInfos(Map<String, Object> infos) {
this.infos = infos;
}
public void setMessageService(IMessageService messageService) {
this.messageService = messageService;
}
public static class TreeNode {
public String id;
public String text;
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return this.text;
}
public void setText(String text) {
this.text = text;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Ext Demo, Ext学习入门
共312个文件
gif:198个
jar:32个
xml:18个
3星 · 超过75%的资源 需积分: 10 129 下载量 137 浏览量
2011-03-27
22:53:47
上传
评论 3
收藏 14.11MB ZIP 举报
温馨提示
ExtJs demo ExJS+Spring+Struts2, 有点点价值的学习资料
资源推荐
资源详情
资源评论
收起资源包目录
Ext Demo, Ext学习入门 (312个子文件)
MessageAction.class 6KB
MessageDao.class 3KB
Page.class 3KB
MessageService.class 2KB
BaseAction.class 2KB
Message.class 2KB
MessageDao$1.class 1KB
HibernateUtils.class 1KB
MessageAction$TreeNode.class 853B
ExportDB.class 791B
IMessageDao.class 576B
IMessageService.class 417B
.classpath 3KB
ext-all.css 132KB
tool-sprites.gif 4KB
btn.gif 4KB
tip-sprite.gif 4KB
error-tip-corners.gif 4KB
blue-loading.gif 3KB
large-loading.gif 3KB
tools-sprites-trans.gif 3KB
group-cs.gif 2KB
search-trigger.gif 2KB
tabs-sprite.gif 2KB
loading-balls.gif 2KB
tb-sprite.gif 2KB
checkbox.gif 2KB
clear-trigger.gif 2KB
trigger.gif 2KB
trigger-square.gif 2KB
radio.gif 2KB
icon-error.gif 2KB
tb-xl-btn-sprite.gif 2KB
icon-question.gif 2KB
date-trigger.gif 2KB
icon-info.gif 2KB
e-handle.gif 2KB
trigger-tpl.gif 1KB
icon-warning.gif 1KB
sort-hd.gif 1KB
gradient-bg.gif 1KB
gradient-bg.gif 1KB
corners-sprite.gif 1KB
tab-btm-left-bg.gif 1KB
tab-btm-inactive-right-bg.gif 1KB
white-corners-sprite.gif 1KB
s-handle.gif 1KB
scroll-right.gif 1KB
scroll-left.gif 1KB
grid3-hd-btn.gif 1KB
tb-btn-sprite.gif 1KB
wait.gif 1KB
scroller-bg.gif 1KB
hd-sprite.gif 1KB
bg.gif 1KB
row-check-sprite.gif 1KB
e-handle-dark.gif 1KB
s-handle-dark.gif 1KB
pick-button.gif 1KB
drop-yes.gif 1016B
drop-yes.gif 1016B
corners-blue.gif 1010B
corners.gif 1005B
drop-add.gif 1001B
drop-add.gif 1001B
exclamation.gif 996B
user.gif 987B
calendar.gif 979B
refresh.gif 977B
close.gif 972B
tool-sprite-tpl.gif 971B
hmenu-unlock.gif 971B
columns.gif 962B
warning.gif 960B
checked.gif 959B
folder-open.gif 956B
hmenu-lock.gif 955B
row-expand-sprite.gif 955B
group-expand-sprite.gif 955B
folder.gif 952B
tip-anchor-sprite.gif 951B
drop-no.gif 949B
drop-no.gif 949B
drop-no.gif 947B
leaf.gif 945B
unchecked.gif 941B
s-arrow-b.gif 937B
s-arrow-o.gif 937B
s-arrow.gif 937B
hmenu-asc.gif 931B
hmenu-desc.gif 930B
page-first-disabled.gif 925B
page-first.gif 925B
page-last-disabled.gif 923B
page-last.gif 923B
btn-arrow.gif 919B
group-by.gif 917B
btn-arrow-light.gif 916B
drop-under.gif 911B
drop-over.gif 911B
共 312 条
- 1
- 2
- 3
- 4
资源评论
- yangxiao30962012-09-20多谢楼主分享不过 放在myeclipse里面运行不了
- QQ5733001212014-06-18不错,学习了
- sturat2013-09-10谢谢分享,好不容易才把项目配起来,花了好长时间,不划算
djvc2008
- 粉丝: 2
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 信息办公个人求职管理系统-jobgljsp.rar
- 信息办公一流网络JSP网络管理系统 v1.0-yljsp10.rar
- chirpstack学习
- 管家婆辉煌、财贸、工贸、服装,食品,千方模拟狗
- 基于python开发的工业环境老鼠检测+源码+文档(毕业设计&课程设计&项目开发)
- USB转以太网的芯片SR9900全套设计资料包括(参考设计原理图PCB+ Linux -Windows驱动程序+量产工具)
- 信息办公XML考试系统-xmlks.rar
- 基于python开发的无人机图像目标检测+实验数据+开发文档+操作流程+源码(毕业设计&课程设计&项目开发)
- 全球智能商品管理与优化系统
- IDM下载器(电脑小工具)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功