}
return groupTreeItems;
}
protected void updateAccountRoster(final GOIMAccount account) {
Roster roster = account.xmpp.getRoster();
TreeItem item = null;
boolean createOwnPresence = false;
if (managesAllAccounts()) {
item = getAccountTreeItem(account);
// item.removeAll();
createOwnPresence = item.getItemCount() < 1;
} else {
createOwnPresence = contactList.getItemCount() < 1;
// contactList.removeAll();
}
Map<String, TreeGroup> groupTreeItems = getGroupTreeItems(item);
if (createOwnPresence) {
final TreeItem ownPresence = (item == null ? new TreeItem(
contactList, SWT.NULL) : new TreeItem(item, SWT.NULL));
ownPresence.setText(account.getUsername() + " (Self)");
// ownPresence.setImage(GOIMIcons.getImageForPresence(null,account.xmpp.getOwnPresence()));
ownPresence.setData("account",account);
ownPresence.setData("entryjid", account.jid + "/"
+ account.resource);
updatePresenceOfItem(ownPresence, null, account.xmpp
.getOwnPresence());
SpheneListener<SpheneEvent> changeListener;
account.changeListenerList
.addListener(changeListener = new SpheneListener<SpheneEvent>() {
public void handleEvent(SpheneEvent event) {
ownPresence.setText(account.getUsername()
+ " (Self)");
ownPresence.setData("entryjid", account.jid + "/"
+ account.resource);
}
});
ownPresence.addListener(SWT.Dispose, RemoveListener
.getRemoveListener(account.changeListenerList,
changeListener));
}
if (roster == null)
return;
List<String> displayedGroups = new ArrayList<String>(groupTreeItems.keySet());
Iterator groups = roster.getGroups();
while (groups.hasNext()) {
RosterGroup group = (RosterGroup) groups.next();
updateRosterGroup(account, roster, groupTreeItems, item, group, group
.getName());
displayedGroups.remove(group.getName());