package net.trolans.IRC;

import java.awt.*;
import java.util.*;

public class IRCChannel
{
	public String name;
	public String topic;
	public Vector users;
	public long mode;
	public long creation;
	public int userLimit = 0;
	public String key;
	private IRCFrame frame;

	public final int MODE_SECRET        = (1 <<  1);
	public final int MODE_TOPIC_PROTECT = (1 <<  2);
	public final int MODE_MODERATED     = (1 <<  3);
	public final int MODE_KEY           = (1 <<  4);
	public final int MODE_USERLIMIT     = (1 <<  5);
	public final int MODE_INVITEONLY    = (1 <<  6);
	
	public IRCChannel(IRCFrame frame, String channel)
	{
		users = new Vector();
		this.frame = frame;
		name = channel;
		/* sub-optimal */
		frame.channelLabel.setText(name);
		setTopicProtected(true);
	}
	
	public void setTopic(String newTopic)
	{
		topic = newTopic;
		frame.topicField.setText(topic);
	}
	
	public void setCreationTime(long creation)
	{
		this.creation = creation;
	}

	public void setTopicProtected(boolean flag)
	{
		frame.topicField.setEditable(!flag);
	}
	
	public String getTopic()
	{
		return this.topic;
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public void setModes(String modes)
	{
		if(modes.indexOf('t') > 0)
		{
			mode |= MODE_TOPIC_PROTECT;
		}
		else
		{
			setTopicProtected(false);
		}
	}
}
