summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tesseract/chatbox/Chatbox.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/tesseract/chatbox/Chatbox.java b/src/tesseract/chatbox/Chatbox.java
new file mode 100644
index 0000000..7fa9fd6
--- /dev/null
+++ b/src/tesseract/chatbox/Chatbox.java
@@ -0,0 +1,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("");
+ }
+ }
+ }
+
+}