public class JJabRoster extends
QObject {
private LinkedList<RosterGroup> groups;
private XMPPConnection con;
private Roster roster;
private boolean hideEmptyGroups;
private boolean hideOfflineContacts;
public JJabRoster
(XMPPConnection con,
QTreeWidget tree, boolean hideEmptyGroups, boolean hideOfflineContacts
) {
this.tree = tree;
this.con = con;
this.roster = con.getRoster();
this.roster.addRosterListener(new RosterListener() {
public void rosterModified(Collection addresses)
{
System.out.println("roster modified: "+addresses.toString());
}
public void presenceChanged(String user)
{
parent.setText(0, user);
getTree().addTopLevelItem(parent);
System.out.println(user);
}
public void entriesUpdated(Collection addresses)
{
System.out.println("entries updated: "+addresses.toString());
}
public void entriesDeleted(Collection addresses)
{
System.out.println("entries deleted: "+addresses.toString());
}
public void entriesAdded(Collection addresses)
{
System.out.println("entries added: "+addresses.toString());
}
});
this.hideEmptyGroups = hideEmptyGroups;
this.hideOfflineContacts = hideOfflineContacts;
groups = new LinkedList<RosterGroup>();
for(Iterator<RosterGroup> it = roster.getGroups();it.hasNext();)
groups.add(it.next());
}
public LinkedList<RosterGroup> getGroups()
{
return groups;
}
public List<RosterEntry> getEntriesForGroup(RosterGroup group)
{
LinkedList<RosterEntry> list = new LinkedList<RosterEntry>();
for(Iterator<RosterEntry> it = group.getEntries(); it.hasNext();)
list.add(it.next());
return list;
}
public void toggleHideEmptyGroups(boolean hide)
{
this.hideEmptyGroups = hide;
}
public void toggleHideOfflineContacts(boolean hide)
{
this.hideOfflineContacts = hide;
}
public Roster getRoster()
{
return roster;
}
{
return tree;
}
}