home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.TextArea;
-
- public class ChatPanel extends TextArea implements ChatRenderer {
- TextArea pChatText;
- ParaChat applet;
- private boolean nlmode;
- public static final String avgString = "ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- public int WRAP_LENGTH;
- private int textLen;
- public int max_text_len = 10240;
- private String lineCont = "- ";
-
- public ChatPanel() {
- super("");
- }
-
- public void setApplet(ParaChat var1) {
- this.pChatText = this;
- this.applet = var1;
- this.pChatText.setFont(new Font("Dialog", 0, 10));
- this.pChatText.setForeground(Color.blue);
- this.pChatText.setBackground(Color.white);
- this.pChatText.setEditable(false);
- }
-
- public void setnl(boolean var1) {
- this.nlmode = var1;
- }
-
- public boolean getnl() {
- return this.nlmode;
- }
-
- public String getSelectedText() {
- return super.getSelectedText();
- }
-
- public void setWrapLength(int var1) {
- this.WRAP_LENGTH = var1;
- }
-
- public int getWrapLength() {
- return this.WRAP_LENGTH;
- }
-
- public void appendTextWithWrap(String var1, String var2, String var3, boolean var4) {
- if (var2.equals(this.applet.nickName)) {
- this.appendTextWithWrap("[PRIVATE FROM " + var1 + "] " + var3, var4);
- } else {
- this.appendTextWithWrap("[" + var1 + "] " + var3, var4);
- }
- }
-
- public void appendTextWithWrap(String var1, boolean var2) {
- String var3 = var1;
- boolean var5 = false;
- this.applet.testForURL(var1);
- if (this.textLen > this.max_text_len) {
- this.pChatText.setText(this.pChatText.getText().substring(this.max_text_len - this.max_text_len / 10));
- this.textLen = this.pChatText.getText().length();
- }
-
- this.textLen += var1.length();
- int var4;
- if (this.WRAP_LENGTH == 0) {
- int var6 = this.pChatText.size().width - 15;
- FontMetrics var7 = this.pChatText.getFontMetrics(this.pChatText.getFont());
- long var8 = (long)var7.stringWidth("ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") / (long)"ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".length();
- var4 = var6 / (int)var8 - 2;
- } else {
- var4 = this.WRAP_LENGTH;
- }
-
- while(var3.length() > var4) {
- int var10 = var3.lastIndexOf(32, var4);
- int var11 = var3.indexOf(10);
- int var12;
- if (var11 >= 0 && var11 < var4) {
- var12 = var11;
- } else {
- var12 = var10;
- }
-
- int var9;
- if (var12 < 0) {
- var12 = var4;
- var9 = var4;
- } else {
- var9 = var12 + 1;
- }
-
- if (var5) {
- this.pChatText.appendText(this.lineCont);
- }
-
- this.pChatText.appendText(var3.substring(0, var12));
- if (var2) {
- this.pChatText.appendText("\n");
- }
-
- var3 = var3.substring(var9);
- var5 = true;
- }
-
- if (var5) {
- this.pChatText.appendText(this.lineCont);
- }
-
- this.pChatText.appendText(var3 + "\n");
- if (this.nlmode) {
- this.pChatText.appendText("\n");
- }
-
- }
-
- public void update(Graphics var1) {
- ((Component)this).paint(var1);
- }
- }
-