home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 June / INTERNET92.ISO / pc / software / windows / building / visual_dhtml / visualdhtmlwin9x_nt.exe / OCTextAr.___ (.txt) < prev    next >
Encoding:
Java Class File  |  2001-10-19  |  4.7 KB  |  264 lines

  1. import java.awt.Color;
  2. import java.awt.Component;
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.LayoutManager;
  10. import java.awt.Panel;
  11.  
  12. class OCTextArea extends Panel {
  13.    public Color bgColor = new Color(153, 153, 153);
  14.    private Image off;
  15.    private Graphics g_off;
  16.    // $FF: renamed from: fm java.awt.FontMetrics
  17.    private FontMetrics field_0;
  18.    // $FF: renamed from: ds java.awt.Dimension
  19.    private Dimension field_1;
  20.    private boolean paint_called = false;
  21.    private boolean first_run = true;
  22.    private int desc_index = 0;
  23.    private boolean m_underline_title = false;
  24.    private String m_desc;
  25.    private String m_title_desc;
  26.    private boolean m_has_title;
  27.    private int m_def_align;
  28.    private int m_def_valign;
  29.    private Color m_title_color = new Color(153, 0, 0);
  30.    private Color m_def_textcolor;
  31.    private Font m_font;
  32.    private Font m_tfont;
  33.    private int m_xoffset;
  34.    private int m_yoffset;
  35.    private int m_extra_title_space;
  36.    private Color m_bgcolor;
  37.  
  38.    public void setUnderlineTitle(boolean var1) {
  39.       this.m_underline_title = var1;
  40.    }
  41.  
  42.    public void reshape(int var1, int var2, int var3, int var4) {
  43.       if (var3 * var4 > 0) {
  44.          this.field_1 = new Dimension(var3, var4);
  45.          this.centerAppArea();
  46.          super.reshape(var1, var2, var3, var4);
  47.       }
  48.    }
  49.  
  50.    private void parseMessage() {
  51.       if (this.m_desc != null && !this.m_desc.equals("")) {
  52.          int var1 = this.m_desc.indexOf("|");
  53.          if (var1 > 0) {
  54.             this.m_has_title = true;
  55.             if (var1 < this.m_desc.length() - 1) {
  56.                this.m_title_desc = this.m_desc.substring(0, var1);
  57.                this.m_desc = this.m_desc.substring(var1 + 1);
  58.                return;
  59.             }
  60.  
  61.             this.m_has_title = false;
  62.             return;
  63.          }
  64.  
  65.          this.m_has_title = false;
  66.       }
  67.  
  68.    }
  69.  
  70.    OCTextArea(String var1) {
  71.       this.m_def_textcolor = Color.black;
  72.       this.m_font = new Font("Helvetica", 0, 12);
  73.       this.m_tfont = new Font("Helvetica", 1, 14);
  74.       this.m_xoffset = 4;
  75.       this.m_yoffset = 4;
  76.       this.m_extra_title_space = 2;
  77.       this.m_bgcolor = ACutilb.windowColor;
  78.       this.m_desc = var1;
  79.       this.parseMessage();
  80.       ((Container)this).setLayout((LayoutManager)null);
  81.    }
  82.  
  83.    public void setTopMargin(int var1) {
  84.       this.m_yoffset = var1;
  85.    }
  86.  
  87.    public void setTitleColor(String var1) {
  88.       this.m_title_color = occcolor.ConvertColor(var1);
  89.    }
  90.  
  91.    public void setBGColor(String var1) {
  92.       this.m_bgcolor = occcolor.ConvertColor(var1);
  93.    }
  94.  
  95.    public void paint(Graphics var1) {
  96.       this.paint_called = true;
  97.       this.paintIt();
  98.    }
  99.  
  100.    private void paintIt() {
  101.       if (this.paint_called) {
  102.          Graphics var1 = ((Component)this).getGraphics();
  103.          if (this.first_run) {
  104.             ((Component)this).setBackground(this.bgColor);
  105.             if (this.field_1.width * this.field_1.height > 0) {
  106.                this.off = ((Component)this).createImage(this.field_1.width, this.field_1.height);
  107.                this.g_off = this.off.getGraphics();
  108.                this.g_off.setColor(this.m_bgcolor);
  109.                this.g_off.fillRect(0, 0, this.field_1.width, this.field_1.height);
  110.                this.first_run = false;
  111.                this.drawMessage();
  112.             }
  113.          } else {
  114.             var1.drawImage(this.off, 0, 0, this);
  115.          }
  116.       }
  117.    }
  118.  
  119.    public void setAlign(int var1) {
  120.       this.m_def_align = var1;
  121.    }
  122.  
  123.    public void resize(Dimension var1) {
  124.       if (var1.width * var1.height > 0) {
  125.          this.field_1 = var1;
  126.          this.centerAppArea();
  127.          super.resize(var1);
  128.       }
  129.    }
  130.  
  131.    public void resize(int var1, int var2) {
  132.       if (var1 * var2 > 0) {
  133.          this.field_1 = new Dimension(var1, var2);
  134.          this.centerAppArea();
  135.          super.resize(var1, var2);
  136.       }
  137.    }
  138.  
  139.    private void drawMessage() {
  140.       int var1 = 0;
  141.       String[] var2 = new String[0];
  142.       String var3 = "";
  143.       String var4 = "";
  144.       boolean var5 = false;
  145.       var3 = this.m_title_desc;
  146.       var4 = this.m_desc;
  147.       var5 = this.m_has_title;
  148.       this.g_off.setColor(this.m_title_color);
  149.       if (!var5) {
  150.          this.g_off.setFont(this.m_font);
  151.          this.field_0 = ((Component)this).getFontMetrics(this.m_font);
  152.       } else {
  153.          this.g_off.setFont(this.m_tfont);
  154.          this.field_0 = ((Component)this).getFontMetrics(this.m_tfont);
  155.       }
  156.  
  157.       int var6 = 0;
  158.       int var7 = 0;
  159.       if (var5) {
  160.          var6 = this.field_0.getHeight();
  161.          this.field_0 = ((Component)this).getFontMetrics(this.m_font);
  162.          var2 = ocwordw.WrapText(this.m_desc, this.field_1.width - this.m_xoffset * 2, this.field_0);
  163.          var1 = this.field_0.getHeight() * var2.length + var6 + this.m_extra_title_space + this.field_0.getAscent() / 2;
  164.          if (this.m_def_valign == 1) {
  165.             var7 = this.field_1.height / 2 - var1 / 2;
  166.          } else if (this.m_def_valign == 0) {
  167.             var7 = this.m_yoffset;
  168.          } else if (this.m_def_valign == 2) {
  169.             var7 = this.field_1.height - this.m_yoffset - var1;
  170.          }
  171.  
  172.          this.g_off.setFont(this.m_tfont);
  173.          this.field_0 = ((Component)this).getFontMetrics(this.m_tfont);
  174.          this.g_off.setColor(this.m_title_color);
  175.          int var8 = 0;
  176.          int var9 = 0;
  177.          if (this.m_def_align == 1) {
  178.             var8 = this.field_1.width / 2 - this.field_0.stringWidth(this.m_title_desc) / 2;
  179.             var9 = var7 + var6;
  180.             this.g_off.drawString(var3, var8, var9);
  181.             if (this.m_underline_title) {
  182.                this.g_off.drawLine(var8, var9 + 1, var8 + this.field_0.stringWidth(this.m_title_desc) - 1, var9 + 1);
  183.             }
  184.          } else if (this.m_def_align == 0) {
  185.             this.g_off.drawString(var3, this.m_xoffset, var7 + var6);
  186.          } else if (this.m_def_align == 2) {
  187.             this.g_off.drawString(var3, this.field_1.width - this.m_xoffset - this.field_0.stringWidth(this.m_title_desc), var7 + var6);
  188.          }
  189.  
  190.          var7 = var7 + var6 + this.m_extra_title_space;
  191.          this.g_off.setFont(this.m_font);
  192.          this.field_0 = ((Component)this).getFontMetrics(this.m_font);
  193.       } else {
  194.          var2 = ocwordw.WrapText(this.m_desc, this.field_1.width - this.m_xoffset * 2, this.field_0);
  195.          var1 = this.field_0.getHeight() * var2.length + var6 + this.field_0.getAscent() / 2;
  196.          if (this.m_def_valign == 1) {
  197.             var7 = this.field_1.height / 2 - var1 / 2;
  198.          } else if (this.m_def_valign == 0) {
  199.             var7 = this.m_yoffset;
  200.          } else if (this.m_def_valign == 2) {
  201.             var7 = this.field_1.height - this.m_yoffset - var1;
  202.          }
  203.       }
  204.  
  205.       this.g_off.setColor(this.m_def_textcolor);
  206.  
  207.       for(int var18 = 0; var18 < var2.length; ++var18) {
  208.          if (this.m_def_align == 1) {
  209.             this.g_off.drawString(var2[var18], this.field_1.width / 2 - this.field_0.stringWidth(var2[var18]) / 2, var7 + (var18 + 1) * this.field_0.getHeight());
  210.          } else if (this.m_def_align == 0) {
  211.             this.g_off.drawString(var2[var18], this.m_xoffset, var7 + (var18 + 1) * this.field_0.getHeight());
  212.          } else if (this.m_def_align == 2) {
  213.             this.g_off.drawString(var2[var18], this.field_1.width - (var7 + (var18 + 1) * this.field_0.getHeight()) - this.m_xoffset, var7 + (var18 + 1) * this.field_0.getHeight());
  214.          }
  215.       }
  216.  
  217.       this.paintIt();
  218.    }
  219.  
  220.    public void setFont(String var1) {
  221.       this.m_font = ocfontc.getFontSD(var1, ",");
  222.    }
  223.  
  224.    public void setFont(Font var1) {
  225.       this.m_font = var1;
  226.    }
  227.  
  228.    public void setTitleFont(String var1) {
  229.       this.m_tfont = ocfontc.getFontSD(var1, ",");
  230.    }
  231.  
  232.    public void setBodyColor(String var1) {
  233.       this.m_def_textcolor = occcolor.ConvertColor(var1);
  234.    }
  235.  
  236.    public void setLRMargins(int var1) {
  237.       this.m_xoffset = var1;
  238.    }
  239.  
  240.    public void setVAlign(int var1) {
  241.       this.m_def_valign = var1;
  242.    }
  243.  
  244.    public void updateDisplay(int var1) {
  245.       this.desc_index = var1;
  246.       this.centerAppArea();
  247.    }
  248.  
  249.    private void centerAppArea() {
  250.       this.first_run = true;
  251.       this.paintIt();
  252.    }
  253.  
  254.    public void setText(String var1) {
  255.       this.m_desc = var1;
  256.       this.parseMessage();
  257.       this.centerAppArea();
  258.    }
  259.  
  260.    public void setExtraTitleSpace(int var1) {
  261.       this.m_extra_title_space = var1;
  262.    }
  263. }
  264.