summaryrefslogtreecommitdiff
path: root/src/tesseract/chatbox/Chatbox.java
blob: 7fa9fd6243ffae048f8471bddb21f1be7ed89388 (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
package tesseract.chatbox;

import java.awt.BorderLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;

import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Chatbox extends JFrame implements Observer {
	
	private final JPanel textPanel;
	private final JScrollPane scroller;
	private final JTextArea textArea;
	private final JButton submitButton;
	private final JTextField chatField;
	private String myName;
	private String toSend;
	private StringBuilder chats;
	
	public Chatbox() {
		textPanel = new JPanel(new BorderLayout());
		textArea = new JTextArea(10, 80);
		textArea.setEditable(false);
		scroller = new JScrollPane(textArea);
		submitButton = new JButton("Submit");
		chatField = new JTextField();
		this.setName("Chat");
		chats = new StringBuilder();
		buildFrame();
		attachListeners();
	}
	
	private void attachListeners() {
		submitButton.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				//TODO: SEND MESSAGE IN chatField.
				if (arg0.getSource().equals(submitButton)) {
					toSend = chatField.getText();
					chatField.setText("");
					// PeerMessage message = new PeerMessage(Message, null, toSend);
					// Send(message);
				}
			}
		});
		
		
		//chatField.addKeyListener()
		
	}

	public boolean setMyName(final String theName) {
		myName = theName;
		return myName.equals(theName);
	}
	
	private void buildFrame() {
		textPanel.add(scroller, BorderLayout.CENTER);
		JPanel southPanel = new JPanel();
		GroupLayout layout = new GroupLayout(southPanel);
		layout.setHorizontalGroup(
			layout.createSequentialGroup()
				.addComponent(chatField)
				.addComponent(submitButton)
		);
		textPanel.add(southPanel, BorderLayout.SOUTH);
		this.add(textPanel);
		this.pack();
		this.setVisible(false);
	}

	@Override
	public void update(Observable arg0, Object arg1) {
		String inc = " ";
		String source = " ";
		// TODO Listen for PeerMessage with string in it.
		/*
		if (((PeerMessage) arg0).getExtra().getClass == inc.getClass()) {
				inc = (PeerMessage) arg0).getExtra();
				source = ((PeerMessage) arg0).getPeer.getName();
		      chats.append("\n");
		      chats.append(source + ": " + inc);
				
		 }//*/
		
		
	}
	
	private class ChatFieldListener extends KeyAdapter {
					
		public void keyReleased(KeyEvent e) {
				if (e.getKeyCode() == 10) {
					toSend = chatField.getText();
					chatField.setText("");
				}
		    }
	}

}