home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2004 May / DPPCPRO0504.ISO / May / Seatools / SeaTools.iso / tools / en / webhelp / webhelp.cab / hhapplet / BsscTextArea.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-04-17  |  1.7 KB  |  100 lines

  1. package hhapplet;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Component;
  5. import java.awt.FontMetrics;
  6. import java.awt.Rectangle;
  7. import java.awt.TextArea;
  8.  
  9. public class BsscTextArea extends TextArea {
  10.    private String m_text = "";
  11.  
  12.    protected void processEvent(AWTEvent var1) {
  13.       if (var1.getID() == 101 || var1.getID() == 102) {
  14.          super.setText(this.parseText());
  15.       }
  16.  
  17.    }
  18.  
  19.    public BsscTextArea() {
  20.       ((Component)this).enableEvents(1L);
  21.    }
  22.  
  23.    private String parseText() {
  24.       Rectangle var1 = ((Component)this).getBounds();
  25.       int var2 = var1.width - 20;
  26.       FontMetrics var3 = ((Component)this).getGraphics().getFontMetrics();
  27.       String var4 = new String(this.m_text);
  28.       StringBuffer var5 = new StringBuffer();
  29.       StringBuffer var6 = new StringBuffer();
  30.       StringBuffer var7 = new StringBuffer();
  31.       int var8 = var3.charWidth(' ');
  32.       int var9 = 0;
  33.       int var10 = -1;
  34.  
  35.       do {
  36.          var10 = var4.indexOf(10, var9);
  37.          Object var11 = null;
  38.          String var19;
  39.          if (var10 != -1) {
  40.             var19 = var4.substring(var9, var10);
  41.             var9 = var10 + 1;
  42.          } else {
  43.             var19 = var4.substring(var9);
  44.             var9 = -1;
  45.          }
  46.  
  47.          boolean var12 = true;
  48.          int var13 = 0;
  49.          int var14 = -1;
  50.          int var15 = 0;
  51.  
  52.          do {
  53.             var14 = var19.indexOf(32, var15);
  54.             Object var16 = null;
  55.             String var21;
  56.             if (var14 != -1) {
  57.                var21 = var19.substring(var15, var14);
  58.                var15 = var14 + 1;
  59.             } else {
  60.                var21 = var19.substring(var15);
  61.                var15 = -1;
  62.             }
  63.  
  64.             int var17 = var3.charsWidth(var21.toCharArray(), 0, var21.length());
  65.             if (var12) {
  66.                var13 = var17;
  67.                var7.append(var21);
  68.                var12 = false;
  69.             } else if (var13 != 0 && var13 + var17 + var8 >= var2) {
  70.                var6.append(var7);
  71.                var6.append("\n");
  72.                var7.setLength(0);
  73.                var13 = var17;
  74.                var7.append(var21);
  75.             } else {
  76.                var13 += var17 + var8;
  77.                var7.append(' ');
  78.                var7.append(var21);
  79.             }
  80.          } while(var15 != -1);
  81.  
  82.          if (var7.length() != 0) {
  83.             var6.append(var7);
  84.             var7.setLength(0);
  85.          }
  86.  
  87.          var5.append(var6);
  88.          var6.setLength(0);
  89.          var5.append("\n");
  90.       } while(var9 != -1);
  91.  
  92.       return var5.toString();
  93.    }
  94.  
  95.    public void setText(String var1) {
  96.       this.m_text = var1;
  97.       super.setText(this.parseText());
  98.    }
  99. }
  100.