home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 May / PCWK5A99.ISO / Linuxwld / linuxwld.exe / ChatPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-05-31  |  2.8 KB  |  125 lines

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Font;
  4. import java.awt.FontMetrics;
  5. import java.awt.Graphics;
  6. import java.awt.TextArea;
  7.  
  8. public class ChatPanel extends TextArea implements ChatRenderer {
  9.    TextArea pChatText;
  10.    ParaChat applet;
  11.    private boolean nlmode;
  12.    public static final String avgString = "ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  13.    public int WRAP_LENGTH;
  14.    private int textLen;
  15.    public int max_text_len = 10240;
  16.    private String lineCont = "- ";
  17.  
  18.    public ChatPanel() {
  19.       super("");
  20.    }
  21.  
  22.    public void setApplet(ParaChat var1) {
  23.       this.pChatText = this;
  24.       this.applet = var1;
  25.       this.pChatText.setFont(new Font("Dialog", 0, 10));
  26.       this.pChatText.setForeground(Color.blue);
  27.       this.pChatText.setBackground(Color.white);
  28.       this.pChatText.setEditable(false);
  29.    }
  30.  
  31.    public void setnl(boolean var1) {
  32.       this.nlmode = var1;
  33.    }
  34.  
  35.    public boolean getnl() {
  36.       return this.nlmode;
  37.    }
  38.  
  39.    public String getSelectedText() {
  40.       return super.getSelectedText();
  41.    }
  42.  
  43.    public void setWrapLength(int var1) {
  44.       this.WRAP_LENGTH = var1;
  45.    }
  46.  
  47.    public int getWrapLength() {
  48.       return this.WRAP_LENGTH;
  49.    }
  50.  
  51.    public void appendTextWithWrap(String var1, String var2, String var3, boolean var4) {
  52.       if (var2.equals(this.applet.nickName)) {
  53.          this.appendTextWithWrap("[PRIVATE FROM " + var1 + "] " + var3, var4);
  54.       } else {
  55.          this.appendTextWithWrap("[" + var1 + "] " + var3, var4);
  56.       }
  57.    }
  58.  
  59.    public void appendTextWithWrap(String var1, boolean var2) {
  60.       String var3 = var1;
  61.       boolean var5 = false;
  62.       this.applet.testForURL(var1);
  63.       if (this.textLen > this.max_text_len) {
  64.          this.pChatText.setText(this.pChatText.getText().substring(this.max_text_len - this.max_text_len / 10));
  65.          this.textLen = this.pChatText.getText().length();
  66.       }
  67.  
  68.       this.textLen += var1.length();
  69.       int var4;
  70.       if (this.WRAP_LENGTH == 0) {
  71.          int var6 = this.pChatText.size().width - 15;
  72.          FontMetrics var7 = this.pChatText.getFontMetrics(this.pChatText.getFont());
  73.          long var8 = (long)var7.stringWidth("ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") / (long)"ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".length();
  74.          var4 = var6 / (int)var8 - 2;
  75.       } else {
  76.          var4 = this.WRAP_LENGTH;
  77.       }
  78.  
  79.       while(var3.length() > var4) {
  80.          int var10 = var3.lastIndexOf(32, var4);
  81.          int var11 = var3.indexOf(10);
  82.          int var12;
  83.          if (var11 >= 0 && var11 < var4) {
  84.             var12 = var11;
  85.          } else {
  86.             var12 = var10;
  87.          }
  88.  
  89.          int var9;
  90.          if (var12 < 0) {
  91.             var12 = var4;
  92.             var9 = var4;
  93.          } else {
  94.             var9 = var12 + 1;
  95.          }
  96.  
  97.          if (var5) {
  98.             this.pChatText.appendText(this.lineCont);
  99.          }
  100.  
  101.          this.pChatText.appendText(var3.substring(0, var12));
  102.          if (var2) {
  103.             this.pChatText.appendText("\n");
  104.          }
  105.  
  106.          var3 = var3.substring(var9);
  107.          var5 = true;
  108.       }
  109.  
  110.       if (var5) {
  111.          this.pChatText.appendText(this.lineCont);
  112.       }
  113.  
  114.       this.pChatText.appendText(var3 + "\n");
  115.       if (this.nlmode) {
  116.          this.pChatText.appendText("\n");
  117.       }
  118.  
  119.    }
  120.  
  121.    public void update(Graphics var1) {
  122.       ((Component)this).paint(var1);
  123.    }
  124. }
  125.