Spark源码导读(二)——聊天窗口构造

与Spark聊天窗口构造相关的类有:

/spark/src/java/org/jivesoftware/spark/ui/ChatRoom.java

/spark/src/java/org/jivesoftware/spark/ui/rooms/ChatRoomImpl.java

/spark/src/java/org/jivesoftware/spark/ui/rooms/GroupChatRoom.java


其中ChatRoom类是所有聊天窗口的基本实现,即所有聊天窗口共有的面板和方法都在该类里进行构造和定义。ChatRoomImpl类是对ChatRoom类的单聊窗口的实现,GroupChatRoom类是对ChatRoom类的会议室窗口的实现。

如果我们要在聊天窗口增加或者修改一些东西,比如添加图片发送按钮,就需要知道各个组件间的关系才能够在需要的地方进行添加,ChatRoom类实现了聊天窗口的基本框架,各个组件之间的关系如下图所示:


对比单聊和会议室的窗口,可以很容易知道相互对应关系。


整体的框架已经可以对上号了,但是发送表情,发送文件这些按钮的构造又在什么地方呢?

区域1对应组件editorBarLeft,区域2对应组件editorBarRight,区域3对应组件toolBar,所以想在这三个位置修改就很容易了。

区域1表情按钮、表情面板在org.jivesoftware.sparkimpl.plugin.emoticons 包里构造;

区域2是否窗口总在最前按钮在ChatRoom.java里构造;

区域3联系人信息按钮在ChatRoomImpl.java里构造;

区域3文件发送、屏幕截图按钮在/spark/src/java/org/jivesoftware/spark/filetransfer/ChatRoomTransferDecorator.java里构造。

大致知道了每个区域的功能按钮在什么地方进行构造,对其进行修改也会变得容易很多,而且顺着按钮的构造、添加的监听、处理函数能够慢慢摸清spark如何处理各类消息,系统的整体框架是什么样的。


下一篇介绍spark消息处理流程。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值