package com.jesseweiman.RPChat.chat;
import com.jesseweiman.RPChat.gui.GUI;
import com.jesseweiman.RPChat.Message;
import com.jesseweiman.RPChat.Properties;
import com.jesseweiman.RPChat.manager.ConfigManager;
import com.jesseweiman.RPChat.manager.NetworkManager;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
* Created with IntelliJ IDEA.
* User: Jesse
* Date: 10/2/12
* Time: 11:04 PM
* To change this template use File | Settings | File Templates.
*/
public class ChatManager {
public static final String DEFAULT_NAME = "Anonymous";
GUI gui;
ConfigManager configManager;
NetworkManager networkManager;
private ConcurrentLinkedQueue<Message> messages = new ConcurrentLinkedQueue<Message>();
public ChatManager(GUI gui, ConfigManager configManager){
this.gui = gui;
this.configManager = configManager;
networkManager = new NetworkManager(this, configManager);
}
public void sendMessage(String text){
configManager.load();
Message message = new Message(configManager.getString(Properties.NAME_KEY, DEFAULT_NAME), text);
messages.offer(message);
networkManager.sendMessage(message);
}
public void receiveMessage(Message message){
messages.offer(message);
gui.updateChat();
}
public Message[] getMessages() {
return messages.toArray(new Message[messages.size()]);
}
}