package org.archstudio.demo.chatsys.client; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; /** * Myx brick: "Client Impl" * * @see org.archstudio.demo.chatsys.client.ChatClientMyxComponentStub */ public class ChatClientMyxComponent extends org.archstudio.demo.chatsys.client.ChatClientMyxComponentStub implements ActionListener { JFrame frame; JTextArea transcript; JTextField entryField; JButton sendButton; StringBuffer transcriptBuf; @Override public void begin() { super.begin(); frame = new JFrame(this.getMyxBrickItems().getBrickName().toString()); transcriptBuf = new StringBuffer(); transcript = new JTextArea(); entryField = new JTextField(20); sendButton = new JButton("Send"); sendButton.addActionListener(this); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add("Center", transcript); JPanel bottomPanel = new JPanel(); bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); bottomPanel.add(entryField); bottomPanel.add(sendButton); frame.getContentPane().add("South", bottomPanel); frame.setSize(500, 400); frame.setVisible(true); frame.validate(); frame.repaint(); } @Override public void actionPerformed(ActionEvent evt) { String text = entryField.getText(); if (!text.equals("")) { chat.sendMessage(this.getMyxBrickItems().getBrickName().getName(), text); } } @Override public void messageSent(String sender, String message) { transcriptBuf.append(sender + ": " + message); transcriptBuf.append(System.getProperty("line.separator")); transcript.setText(transcriptBuf.toString()); } }