summaryrefslogtreecommitdiff
path: root/src/Client/UserInterface.java
blob: 5f69550d17572d361a2a0cd73ad2c29113504048 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package Client;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.xml.soap.Text;

public class UserInterface extends JFrame implements ActionListener
{	
	private JTextField message;
	private JTextArea output;
	private ChatClient client;
	private ChatClientReader read;
	private JTextField host = new JTextField("localhost", 15);
	private JTextField port = new JTextField("6667", 4);
	
	public void outputWriter (String line)
	{
		output.append(line + "\n");
	}
	
	/** Graphic interface recipient the client*/
	public UserInterface(ChatClient client)
	{
		this.client = client;
		
		this.setIconImage(getIconImage());
		this.setSize(800, 400);
		
		output = new JTextArea(10, 20);
		output.setBackground(Color.gray);
					
		JPanel msgPanel = new JPanel();
		JPanel conPanel = new JPanel();
		JPanel vertPanel = new JPanel();
		
		message = new JTextField(40);
		JButton stop = new JButton("Stop");
		stop.setActionCommand("stop");
		stop.addActionListener(this);
		stop.setToolTipText("Click this button to exit.");
		
		JButton send = new JButton("Send");
		send.setActionCommand("send");
		send.addActionListener(this);
		send.setToolTipText("Click this button to send message.");
		
		JButton connect = new JButton("Connect");
		connect.setActionCommand("connect");
		connect.addActionListener(this);
		connect.setToolTipText("Click this button to connect the server.");
		
		vertPanel.setLayout(new BoxLayout(vertPanel, BoxLayout.PAGE_AXIS));
		
		
		
		msgPanel.add(connect);
		msgPanel.add(send);
		msgPanel.add(new JLabel("Message:"));
		msgPanel.add(message);
		msgPanel.add(stop);
				
	
			
		conPanel.add(new JLabel("host:"));
		conPanel.add(host);
		conPanel.add(new JLabel("port:"));
		conPanel.add(port);
		
		vertPanel.add(output);
		vertPanel.add(conPanel);
		vertPanel.add(msgPanel);
				
		add(vertPanel);
		
		setVisible(true);
	}
	

	
	/** Syncing the the action that the button send to the perform
	 * @param name of the action  */	
	int counterClick = 0;
	public void actionPerformed(ActionEvent e)
	{
		
		System.out.println(e.getActionCommand()); //FIXME: delete.
		String command = e.getActionCommand();
		
		if (command == "stop")
		{	
			System.exit(0);
		}
				
		if (command == "send")
		{
			output.append(message.getText() + "\n");
			client.runSendline(message.getText());
			message.setText("");
			
		}
		
		if (counterClick>0 && command == "connect")
		{
			output.append("You've alredy connected to the server" + "\n");
		}
		
		if (command == "connect" && counterClick == 0 )
		{
			if (client.connect("localhost",(Integer.parseInt("6667"))))
			{
				output.append("You've connect to the server succesufully" + "\n");
				counterClick++;
			}
		}

	}
}