spark源码结构
结构总图
org.jivesoftware.spark.ui
这是spark的一个大型包。。。其实我判断大型小型只是按照文件多少的。好吧……
请问这么长的图怎么截的,我会告诉你这是两张图吗?另存为看看…
'BareAddressFilter.java' jid地址过滤器,如果一个包没有from就不会被接收
'ChatArea.java' 聊天区域,添加了事件监听,还有实现ctrl c ctrl v功能。。。
'ChatContainer.java' 聊天容器,主要是多个聊天之间tab标签卡更新,事件监听等
'ChatFrame.java' 聊天Frame
'ChatFrameToFrontListener.java' 这是一个监听器,用来更新聊天窗口状态
'ChatInputEditor.java' 聊天的输入编辑框,里面有实现显示表情方法。还有实现删除键等
'ChatPrinter.java' 聊天记录打印,保存方法
'ChatRoom.java' 这就是构造聊天主窗口了。
'ChatRoomButton.java' 聊天窗口的button
'ChatRoomClosingListener.java' 关闭聊天窗口监听器
'ChatRoomListener.java' 聊天窗口事件监听器,接口。
'ChatRoomListenerAdapter.java' 对上面那个接口的空实现,适配器
'ChatRoomNotFoundException.java' 自定义异常。不说了
'ChatRoomPlugin.java' 聊天窗口插件定义。接口
'ChatRoomTransferHandler.java' 转移处理器,复制或者移动触发
'CommandPanel.java' 命令面板?
'ContactGroup.java' 群组联系人列表容器
'ContactGroupListener.java' 事件监听器
'ContactGroupTransferHandler.java' 群组联系人文件或图片转移处理器
'ContactInfoHandler.java' 联系人信息处理器,允许插件给ui增加或移除组件
'ContactInfoWindow.java' 联系人信息窗口
'ContactItem.java' 联系人实体,包括icon,displayname等信息
'ContactItemHandler.java' 实体处理器,主要双击打开聊天,显示状态信息等
'ContactList.java' 联系人列表面板,
'ContactListListener.java' 联系人列表的事件监听器,包括增加删除分组/联系人,单击双击联系人
'ContainerComponent.java' Container容器的定义
'CustomPainter.java' 所有方法都被注销了,原来是想实现自定义绘制面板功能吧
'DataFormUI.java' 表单组件
'FileDropListener.java' 文件删除监听器
'FromJIDFilter.java' 和那个'BareAddressFilter.java'没区别
'GlobalMessageListener.java' 全球鹰消息监听器...呃.
'GroupChatRoomTransferHandler.java' 群组聊天图片转发处理器
'ImageSelectionPanel' 允许选择面板图片
'LinkInterceptor.java' 链接拦截器,在聊天窗口处理点击链接事件
'MessageEventListener.java' 消息事件监听器,包括接收消息中,发送消息中
'MessageFilter.java' 消息过滤器,主要识别消息是进来的还是出去的
'MessageListener.java' 消息监听器,消息已发送,消息已接受
'PresenceListener.java' 状态监听器,在线、离线还是咋的。。
'RawPacketSender.java' 就是spark发送自定义包的功能
'ReconnectPanel.java' 重连重试的面板,就是spark还在openfire关闭的话显示正在重连
'ReconnectPanelIcon.java' 重连面板的icon,因为这个icon在变化。。所以专门写了一个类。
'ReconnectPanelSmall.java' 重连面板的小check图标...变化
'RosterDialog.java' 增加好友的对话框
'RosterNode.java' 花名册节点
'RosterPickList.java' 选择列表中的用户
'RosterTreeCellRenderer.java' 花名册树渲染
'ShakeWindow.java' 聊天的时候有个小铃铛,实现的窗口抖动功能
'Sparkler.java' 接口,spark对message的装饰
'SparklerDecorator.java' 装饰器
'SparkTabHandler.java' spark标签处理器
'StringTransferHandler.java' 字符串的转发解析器,就是复制粘贴吧。叫的那么牛。
'SubscriptionDialog.java' 接收拒绝好友请求的窗口
'TranscriptAlert.java' 自己搞的alert弹窗
'TranscriptWindow.java' 窗口副本。
'TranscriptWindowInterceptor.java' 拦截器,当有消息要插入到窗口之前触发
'VCardPanel.java' Vcard信息面板
'VCardViewer.java' Vcard信息查看器
终于完了。。。
不,还有下一个。要哭了,怎么这么多。。。。
org.jivesoftware.spark.ui.conferences
我怀疑我有严重强迫症,非要把源代码一个个的看过去,还得知道是啥,啥作用。哎…不说了,继续。
这里都是和会议有关的,也就是群聊。。。记得很多研究都说openfire怎么实现QQ群,多简单呀。就是这个conference,创建一个房间,你可以写个openfire插件,或者开发一个与openfire配套的用户系统,创建好房间就相当于创建群了。建立房间以后把房间的成员存储在另外表中,然后每次登陆获取到自己所加的群,然后join进入,就能收到消息啦,离线消息你只要点击进入群,自己就展示多少条离线消息,自己可以根据需要扩展。
AnswerFormDialog.java 就是在群聊的时候点击那个计数器出来的,我也不知道那个啥功能,实在不知道他想搞啥,求指点
BannedUsers.java 这是群聊的时候,点右键可以给某个人禁言,你就收不到他的消息了
BookmarksListener.java 书签监听器,增加书签,删除书签。就是spark加入会议室的时候会有房间列表,那里有给房间加书签,移除书签。
BookmarksUI.java 书签的UI构造器
ConferenceRoomBrowser.java 浏览会议室,下面这样
ConferenceServiceBrowser.java 会议服务浏览器
ConferenceServices.java 会议服务类
ConferenceUtils.java 会议服务工具类,可以获取房间各种信息
ConversationInvitation.java 处理会话邀请的
DataFormDialog.java 设置聊天室信息的对话框
GroupChatInvitationUI.java 群聊邀请的UI,显示接受不接受的那个
GroupChatParticipantList.java 群组成员列表
InvitationDialog.java 群聊邀请窗口,就是点击右键,邀请使用者显示的窗口
JoinConferenceRoomDialog.java 加入房间对话框,密码房...
RoomBrowser.java 房间详情查看
RoomCreationDialog.java 创建房间对话框
RoomInvitationListener.java 处理房间邀请监听器
org.jivesoftware.spark.ui.rooms
ChatRoomImpl.java ChatRoom的完整类,发送消息,接收消息,断开连接等等。。。
GroupChatRoom.java 这个是组聊的,上面是单聊的
org.jivesoftware.spark.ui.status
CustomMessages.java 主要是自定义状态消息,点击状态图标的弹出
CustomStatusItem.java 自定义状态bean
StatusBar.java 状态栏
StatusItem.java 状态bean
org.jivesoftware.spark.ui.themes
下面这些都是设置面板里的
ColorPreferencePanel.java 颜色偏好设置,这些都在spark->菜单->设置面板里面了
ColorSettingManager.java 颜色设置管理器
ColorSettings.java 颜色设置bean
EmoticonPanel.java 表情面板
MainThemePanel.java 主题主面板
ThemePanel.java 主题列表面板
ThemePreference.java 主题设置
好了,所有的UI类完了。。。。又该休息一会儿了。。。