您的位置:首页 > 其它

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,然后重新排序显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐