home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / CSIME.ARJ / CSIME.ZIP / csime / mug / ui / BorderPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-02-09  |  3.3 KB  |  165 lines

  1. package mug.ui;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Insets;
  9. import java.awt.Panel;
  10.  
  11. public class BorderPanel extends Panel {
  12.    public static final int TOPLEFT = 0;
  13.    public static final int TOPCENTER = 1;
  14.    public static final int TOPRIGHT = 2;
  15.    public static final int BOTTOMLEFT = 4;
  16.    public static final int BOTTOMCENTER = 5;
  17.    public static final int BOTTOMRIGHT = 6;
  18.    protected String _label;
  19.    protected int _position;
  20.    protected int _hgap;
  21.    protected int _vgap;
  22.    protected boolean _raised = true;
  23.  
  24.    public BorderPanel() {
  25.    }
  26.  
  27.    public BorderPanel(boolean var1) {
  28.       this._raised = var1;
  29.    }
  30.  
  31.    public BorderPanel(String var1) {
  32.       this._label = var1;
  33.    }
  34.  
  35.    public BorderPanel(String var1, boolean var2) {
  36.       this._label = var1;
  37.       this._raised = var2;
  38.    }
  39.  
  40.    public BorderPanel(String var1, int var2) {
  41.       this._label = var1;
  42.       this._position = var2;
  43.    }
  44.  
  45.    public BorderPanel(String var1, int var2, boolean var3) {
  46.       this._label = var1;
  47.       this._position = var2;
  48.       this._raised = var3;
  49.    }
  50.  
  51.    public BorderPanel(String var1, int var2, int var3, int var4) {
  52.       this._label = var1;
  53.       this._position = var2;
  54.       this._hgap = var3;
  55.       this._vgap = var4;
  56.    }
  57.  
  58.    public BorderPanel(String var1, int var2, int var3, int var4, boolean var5) {
  59.       this._label = var1;
  60.       this._position = var2;
  61.       this._hgap = var3;
  62.       this._vgap = var4;
  63.       this._raised = var5;
  64.    }
  65.  
  66.    public BorderPanel(String var1, int var2, int var3) {
  67.       this._label = var1;
  68.       this._hgap = var2;
  69.       this._vgap = var3;
  70.    }
  71.  
  72.    public BorderPanel(String var1, int var2, int var3, boolean var4) {
  73.       this._label = var1;
  74.       this._hgap = var2;
  75.       this._vgap = var3;
  76.       this._raised = var4;
  77.    }
  78.  
  79.    public BorderPanel(int var1, int var2) {
  80.       this._hgap = var1;
  81.       this._vgap = var2;
  82.    }
  83.  
  84.    public BorderPanel(int var1, int var2, boolean var3) {
  85.       this._hgap = var1;
  86.       this._vgap = var2;
  87.       this._raised = var3;
  88.    }
  89.  
  90.    public Insets insets() {
  91.       int var1 = this._vgap;
  92.       int var2 = this._vgap;
  93.       if (this._label != null) {
  94.          FontMetrics var3 = ((Component)this).getFontMetrics(((Component)this).getFont());
  95.          if ((this._position & 4) == 0) {
  96.             var1 += var3.getAscent() + var3.getDescent();
  97.          } else {
  98.             var2 += var3.getAscent() + var3.getDescent();
  99.          }
  100.       }
  101.  
  102.       Insets var4 = super.insets();
  103.       return new Insets(var4.top + var1 + 2, var4.left + this._hgap + 2, var4.bottom + var2 + 2, var4.right + this._hgap + 2);
  104.    }
  105.  
  106.    public void paint(Graphics var1) {
  107.       int var2 = this._vgap;
  108.       int var3 = this._vgap;
  109.       Font var4 = ((Component)this).getFont();
  110.       FontMetrics var5 = ((Component)this).getFontMetrics(var4);
  111.       if (this._label != null) {
  112.          if ((this._position & 4) == 0) {
  113.             var2 += var5.getAscent() + var5.getDescent();
  114.          } else {
  115.             var3 += var5.getAscent() + var5.getDescent();
  116.          }
  117.       }
  118.  
  119.       int var6 = this._hgap / 2;
  120.       int var7 = var2 / 2;
  121.       int var8 = ((Component)this).size().width - this._hgap - 2;
  122.       int var9 = ((Component)this).size().height - (var2 + var3) / 2 - 2;
  123.       Color var10 = ((Component)this).getBackground();
  124.       Color var11;
  125.       Color var12;
  126.       if (this._raised) {
  127.          var11 = var10.brighter();
  128.          var12 = var10.darker();
  129.       } else {
  130.          var11 = var10.darker();
  131.          var12 = var10.brighter();
  132.       }
  133.  
  134.       var1.setColor(var11);
  135.       var1.drawRect(var6, var7, var8, var9);
  136.       var1.setColor(var12);
  137.       var1.drawRect(var6 + 1, var7 + 1, var8, var9);
  138.       if (this._label != null) {
  139.          int var13 = 0;
  140.          int var14 = 0;
  141.          int var15 = var5.stringWidth(this._label);
  142.          int var16 = var5.getAscent() + var5.getDescent();
  143.          if ((this._position & 3) == 0) {
  144.             var13 = var6 + 4;
  145.          } else if ((this._position & 3) == 1) {
  146.             var13 = var6 + (var8 - var15) / 2;
  147.          } else {
  148.             var13 = var6 + var8 - var15 - 4;
  149.          }
  150.  
  151.          if ((this._position & 4) == 0) {
  152.             var14 = var7 - var16 / 2;
  153.          } else {
  154.             var14 = var7 + var9 - var16 / 2;
  155.          }
  156.  
  157.          var1.clearRect(var13, var14, var15, var16);
  158.          var1.setColor(((Component)this).getForeground());
  159.          var1.setFont(var4);
  160.          var1.drawString(this._label, var13, var14 + var5.getAscent());
  161.       }
  162.  
  163.    }
  164. }
  165.