Select Git revision
ChatScreen.java 4.64 KiB
package GUI;
import client.Client;
import remote.IChatController;
import remote.IClientController;
import javax.swing.*;
import java.awt.event.*;
import java.rmi.RemoteException;
public class ChatScreen {
public JPanel panel2;
public JPanel othersPanel;
private JButton sendButton;
private JComboBox sendMessageToComboBox;
private JTextArea chatDisplayBox;
private JComboBox kickUserComboBox;
private JButton kickOutButton;
private JButton promoteToManagerButton;
private JTextField chatInputBox;
private JLabel sendMessageToLabel;
private JLabel managersNameLabel;
private JLabel yourNameLabel;
private JLabel yourNameDisplay;
private JLabel managersNameDisplay;
private JPanel myAreaPanel;
private JPanel managersPanel;
private JPanel chatPanel;
private JButton exitThisRoomButton;
private JFrame frame;
public Client getClient() {
return client;
}
public Client client;
public ChatScreen(Client client)
{
this.client = client;
yourNameDisplay.setText(client.getUserName());
exitThisRoomButton.addActionListener(actionListener);
sendButton.addActionListener(actionListener);
kickOutButton.addActionListener(actionListener);
promoteToManagerButton.addActionListener(actionListener);
}
public void setUserName(String userName)
{
this.yourNameDisplay.setText(userName);
}
public void setManagerName(String manager)
{
this.managersNameDisplay.setText(manager);
}
public JButton getSendButton() {
return sendButton;
}
public JTextArea getChatDisplayBox() {
return chatDisplayBox;
}
public JComboBox getSendMessageToComboBox()
{
return sendMessageToComboBox;
}
public JComboBox getKickUserComboBox()
{
return kickUserComboBox;
}
public void setManagerToolsVisibility() {
try {
if (client.getClientController().getAdmin().equals(client.getUserName())){
managersPanel.setVisible(true);
}
else {
managersPanel.setVisible(false);
}
} catch (RemoteException e) {
e.printStackTrace();
}
}
public void exitChatScreen() {
System.exit(0);
}
ActionListener actionListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == sendButton)
{
String message = chatInputBox.getText();
chatInputBox.setText("");
IChatController chatController = client.getChatController();
try
{
System.out.println("Send button pressed");
String toUser = sendMessageToComboBox.getSelectedItem().toString();
if( toUser.equals("All") )
{
chatController.broadcastMessage(client.getUserName(), message);
}
else
{
chatController.sendPrivateMessage(client.getUserName(), toUser, message);
}
}
catch (RemoteException ex)
{
ex.printStackTrace();
}
}
else if (e.getSource() == exitThisRoomButton)
{
System.out.println("Exit room button pressed by: " + client.getUserName());
client.getApplicationMain().closeWindow();
}
else if (e.getSource() == kickOutButton)
{
IClientController clientController = client.getClientController();
String toUser = kickUserComboBox.getSelectedItem().toString();
try {
System.out.println("Kick out button pressed");
clientController.kickUser(client.getUserName(), toUser);
}
catch (RemoteException ex) {
ex.printStackTrace();
}
}
else if (e.getSource() == promoteToManagerButton)
{
IClientController clientController = client.getClientController();
String toUser = kickUserComboBox.getSelectedItem().toString();
try {
System.out.println("Promote to manager button pressed");
clientController.assignAdmin(client.getUserName(), toUser);
}
catch (RemoteException ex) {
ex.printStackTrace();
}
}
}
};
}