/****************************************************************************** * Copyright (c) 2008 Versant Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Remy Chi Jian Suen (Versant Corporation) - initial API and implementation ******************************************************************************/ package org.eclipse.ecf.internal.example.collab.presence; import java.util.LinkedList; import java.util.List; import org.eclipse.ecf.core.user.IUser; import org.eclipse.ecf.presence.IPresenceListener; import org.eclipse.ecf.presence.IPresenceSender; import org.eclipse.ecf.presence.roster.AbstractRosterManager; import org.eclipse.ecf.presence.roster.IRosterEntry; import org.eclipse.ecf.presence.roster.IRosterItem; import org.eclipse.ecf.presence.roster.IRosterSubscriptionSender; import org.eclipse.ecf.presence.roster.Roster; public class RosterManager extends AbstractRosterManager { private List presenceListeners = new LinkedList(); private PresenceContainer presenceContainer; public RosterManager(PresenceContainer presenceContainer, IUser user) { super(); this.presenceContainer = presenceContainer; roster = new Roster(presenceContainer, user) { public boolean addItem(IRosterItem item) { if (super.addItem(item)) { fireRosterAdd((IRosterEntry) item); return true; } return false; } public boolean removeItem(IRosterItem item) { if (super.removeItem(item)) { fireRosterRemove((IRosterEntry) item); return true; } return false; } }; } public IPresenceSender getPresenceSender() { return presenceContainer; } public IRosterSubscriptionSender getRosterSubscriptionSender() { return null; } public void addPresenceListener(IPresenceListener listener) { if (!presenceListeners.contains(listener)) { presenceListeners.add(listener); } } public void removePresenceListener(IPresenceListener listener) { presenceListeners.remove(listener); } }