XMPP客户端关于用户组排序的一个可能的实现方法
2011-09-30 09:13
465 查看
group的存放格式
SDK将group list存放在storage:groups namespace中,group的位置就是其在list中的顺序。也就是说,在下面举的例子中,group0的位置是0,SH的位置是1...。SDK会将Personal group和LDAP group都存在storage中,type='ldap'说明这个group是LDAP group,否则是Personal group(因为LDAP和Personal的group名称有可能相同,因此我们必须要区分是LDAP还是Personal的group)。
SDK在Login的过程中,会向UI fire OnListGroup回调,这时候必须要过滤掉LDAP类型的group(LDAP的group会有专门的回调)。
<iq id='conid27' type='set'> <query xmlns='jabber:iq:private'> <storage xmlns='http://jabber.com/jabber/storage:groups'> <group type='ldap'>ldap group id</group> //position is 0 <group>SH</group> //position is 1 <group>Team</group> //pos is 2 <group>Test Users</group> //pos is 3 <group>US</group> //pos is 4 <group>SZ</group> //pos is 5 <group>HZ</group> //pos is 6 <group>HF</group> //pos is 7 </storage> </query> </iq>
[/code]
SDK和UI之间的接口
UI在现实group list之前,调用SDK的GetGroupPos方法获取每个group的position,然后排序显示。用户拖动一个group时,UI调用SDK的MoveGroup方法,SDK将重新排好序的Group list存到storage中,同时向UI fire OnGroupMoved回调,UI收到回调以后,调用SDK的GetGroupPos方法获取所有group的position,然后重新排序显示。
相关文章推荐
- XMPP客户端关于用户组和好友列表的管理的一个实现方法
- XMPP客户端关于用户组和好友列表的管理的一个实现方法
- 自己写的关于实现数字阶乘的方法,一个采用普通方法,一个是采用递归
- 一个XMPP客户端需要实现的基本的XEP
- 关于cannot find module 'xxxx’的一个可能解决方法。
- 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
- 关于排序方法有了一个笼统的了解
- 用PHP实现一个关于德州扑克算法的程序(二):排序
- 实现一个简单的 成绩排序(两种方法)
- 如何实现多个线程同步 (2013-11-10 12:07:24)转载▼ 标签: it 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题,Java实现线程同步的方法很多
- 关于把一个无符号数的二进制位翻转的两种实现方法
- 无配置WCF客户端的一个简单到令人发指的实现方法
- 实现通讯录分组排序的一个方法
- QT中 实现一个服务端接收两个客户端的解决方法
- 关于java实现时间格式化的通用的一个方法
- 一个关于多线程的简单例子(两种实现方法)
- 关于在cocos2d-x中一个精灵移动到 另外一个地点的实现方法。
- 定义一个方法,实现对一维数组的从小到大排序
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)