package net.trolans.IRC;

import java.text.*;
import javax.swing.*;

public class UserListModel extends DefaultListModel
{
	private Collator sorter = Collator.getInstance();

	public void addUser(IRCUser user)
	{
		int entries = getSize();
		IRCUser work;
		for(int x = 0; x < entries; x++)
		{
			work = (IRCUser)getElementAt(x);
			if(sorter.compare(work.getNick(), user.getNick()) > 0)
			{
				add(x, user);
				return;
			}
		}
		addElement(user);
	}

	public IRCUser getUser(String nick)
	{
		int entries = getSize();
		IRCUser work;
		for(int x = 0; x < entries; x++)
		{
			work = (IRCUser)getElementAt(x);
			if(work.getNick().equals(nick))
			{
				return work;
			}
		}
		return null;
	}

	public void removeUser(String nick)
	{
		removeUser(new IRCUser(nick));
	}

	public void removeUser(IRCUser user)
	{
		int entries = getSize();
		IRCUser work;
		for(int x = 0; x < entries; x++)
		{
			work = (IRCUser)getElementAt(x);
			if(work.equals(user))
			{
				remove(x);
				return;
			}
		}
	}

	public void updateUser(String oldNick, String newNick)
	{
		IRCUser work = getUser(oldNick);
		if(work != null)
		{
			work.setNick(newNick);
			removeUser(work);
			addUser(work);
		}
	}

	public void updateUser(String nick, char flag, boolean enable)
	{
		IRCUser work = getUser(nick);
		if(work != null)
		{
			work.setFlag(flag, enable);
		}
	}
}

