diff src/main/java/alice/test/chat/ChatWindow.java @ 601:30f2c04571c2 dispose

add chat, add Star topology to topology manager&node
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Wed, 27 Apr 2016 16:28:10 +0900
parents
children 8a9fd716c335
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/test/chat/ChatWindow.java	Wed Apr 27 16:28:10 2016 +0900
@@ -0,0 +1,55 @@
+package alice.test.chat;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+/**
+ * Created by e125769 on 3/29/16.
+ */
+public class ChatWindow extends CodeSegment{
+
+    public JTextArea textArea;
+    public Receiver name = ids.create(CommandType.PEEK);
+
+    public ChatWindow(){
+        name.setKey("local","userName");
+    }
+
+    @Override
+    public void run() {
+        JFrame mainFrame = new JFrame("Chat");
+        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        mainFrame.setSize(300, 500);
+        mainFrame.setLocationRelativeTo(null);
+        Container contentPane = mainFrame.getContentPane();
+
+        textArea = new JTextArea(5,0);
+        JScrollPane scrollPane = new JScrollPane(textArea);
+
+        final JTextField textField = new JTextField();
+        textField.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                send("(" + name+ ") " + textField.getText() + "\n");
+                textField.setText("");
+            }
+        });
+
+        contentPane.add(scrollPane, BorderLayout.CENTER);
+        contentPane.add(textField, BorderLayout.SOUTH);
+        mainFrame.setVisible(true);
+    }
+
+    public void show(String message){
+        textArea.append(message);
+    }
+
+    public void send(String message){
+        ods.put("sendMessage", message);
+    }
+}