Source code: org/zazof/jteg/gui/ChatPanel.java
1 /**
2 * Represents the textarea where information is printed out, like chat messages
3 *
4 * @author Jef De Geeter
5 * @date August 2001
6 */
7
8 package org.zazof.jteg.gui;
9
10 import javax.swing.*;
11 import org.zazof.jteg.*;
12
13 public class ChatPanel extends JTextArea implements MessageListener{
14
15 // We make ChatPanel a SingleTon in order to allow other Actions in the program
16 // to write to the textarea
17
18
19 public ChatPanel(){
20 super();
21 setRows(6);
22 setEditable(false);
23 MessageManager.getInstance().addMessageListener(this);
24 }
25
26 public void setScrollBar(JScrollBar myScrollbar)
27 {
28 $myScrollbar = myScrollbar;
29 }
30
31 public void writeMessage(String line)
32 {
33 addNewTextline(line);
34 }
35
36 private void addNewTextline(String line){
37 if (DEBUG) System.out.println("LINE ADDED TO CHATPANEL");
38 append(line + "\n");
39 if ($myScrollbar != null)
40 $myScrollbar.setValue($myScrollbar.getMaximum());
41 }
42
43 public void messageArrived(Message m){
44 if (DEBUG) System.out.println("Message received with name " + m.getMessageName());
45 if (m.getMessageName().equals("chat")){
46 ChatMessage cm;
47 cm = (ChatMessage) m;
48 addNewTextline(cm.getContent());
49 }
50 if (m.getMessageName().equals("internalinfo")){
51 InformationMessage im;
52 im = (InformationMessage) m;
53 addNewTextline(im.getInfo());
54 }
55 if (m.getMessageName().equals("new_player")){
56 NewPlayerMessage npm;
57 npm = (NewPlayerMessage) m;
58 addNewTextline(LanguageManager.getInstance().lookup("playerjoined", npm.getNewPlayerName()));
59 }
60 if (m.getMessageName().equals("winner")){
61 WinnerMessage wm;
62 wm = (WinnerMessage) m;
63 try{
64 addNewTextline(LanguageManager.getInstance().lookup("playerthatwon", wm.getWinner().getName()));
65 }
66 catch (Exception exc){
67 addNewTextline(LanguageManager.getInstance().lookup("nonexistentplayer"));
68 }
69 }
70 if (m.getMessageName().equals("dados")){
71 DiceMessage dm;
72 dm = (DiceMessage) m;
73 }
74 }
75
76 private JScrollBar $myScrollbar;
77 private static final boolean DEBUG = false;
78 }