From cbb09f132ad988d4da2ded127eaea8b4248fb93f Mon Sep 17 00:00:00 2001 From: Phillip Date: Fri, 4 Mar 2011 21:59:36 +0000 Subject: Added Chatbox, very much a work in progress. Not integrated into tesseract UI yet, as network code has not been implemented. --- src/tesseract/chatbox/Chatbox.java | 112 +++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/tesseract/chatbox/Chatbox.java (limited to 'src/tesseract/chatbox/Chatbox.java') 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(""); + } + } + } + +} -- cgit v1.2.3