Search in sources :

Example 36 with Buddy

use of org.olat.instantMessaging.model.Buddy in project openolat by klemens.

the class Roster method getBuddies.

public synchronized List<Buddy> getBuddies() {
    Set<Buddy> buddies = new HashSet<Buddy>();
    Set<Buddy> vips = new HashSet<Buddy>();
    for (Buddy entry : entries) {
        if (entry.isVip()) {
            vips.add(entry);
        }
        buddies.add(entry);
    }
    for (BuddyGroup group : groups) {
        for (Buddy entry : group.getBuddy()) {
            if (entry.isVip()) {
                vips.add(entry);
            }
            buddies.add(entry);
        }
    }
    // if vip once, vip always
    List<Buddy> orderedBuddies = new ArrayList<Buddy>(buddies.size());
    for (Buddy buddy : buddies) {
        Buddy clone = buddy.clone();
        clone.setVip(vips.contains(buddy));
        orderedBuddies.add(clone);
    }
    Collections.sort(orderedBuddies);
    return orderedBuddies;
}
Also used : ArrayList(java.util.ArrayList) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) BuddyGroup(org.olat.instantMessaging.model.BuddyGroup) Buddy(org.olat.instantMessaging.model.Buddy) HashSet(java.util.HashSet)

Aggregations

Buddy (org.olat.instantMessaging.model.Buddy)36 OpenInstantMessageEvent (org.olat.instantMessaging.OpenInstantMessageEvent)16 BuddyGroup (org.olat.instantMessaging.model.BuddyGroup)6 ArrayList (java.util.ArrayList)4 Link (org.olat.core.gui.components.link.Link)4 HashSet (java.util.HashSet)2 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)2 Test (org.junit.Test)2 UserSessionView (org.olat.admin.sysinfo.model.UserSessionView)2 IdentityShort (org.olat.basesecurity.IdentityShort)2 TableEvent (org.olat.core.gui.components.table.TableEvent)2 SyntheticUserRequest (org.olat.core.gui.util.SyntheticUserRequest)2 Identity (org.olat.core.id.Identity)2 OLATResourceable (org.olat.core.id.OLATResourceable)2 UserSession (org.olat.core.util.UserSession)2 InstantMessageNotification (org.olat.instantMessaging.InstantMessageNotification)2 RosterEntryView (org.olat.instantMessaging.model.RosterEntryView)2