home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / border / MatteBorder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  2.4 KB  |  106 lines

  1. package com.sun.java.swing.border;
  2.  
  3. import com.sun.java.swing.Icon;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Graphics;
  7. import java.awt.Insets;
  8.  
  9. public class MatteBorder extends EmptyBorder {
  10.    protected Color color;
  11.    protected Icon tileIcon;
  12.  
  13.    public MatteBorder(int var1, int var2, int var3, int var4, Color var5) {
  14.       super(var1, var2, var3, var4);
  15.       this.color = var5;
  16.    }
  17.  
  18.    public MatteBorder(int var1, int var2, int var3, int var4, Icon var5) {
  19.       super(var1, var2, var3, var4);
  20.       this.tileIcon = var5;
  21.    }
  22.  
  23.    public MatteBorder(Icon var1) {
  24.       this(-1, -1, -1, -1, (Icon)var1);
  25.    }
  26.  
  27.    public void paintBorder(Component var1, Graphics var2, int var3, int var4, int var5, int var6) {
  28.       Insets var7 = this.getBorderInsets(var1);
  29.       Color var8 = var2.getColor();
  30.       var2.translate(var3, var4);
  31.       if (this.color != null) {
  32.          var2.setColor(this.color);
  33.          var2.fillRect(0, 0, var5 - var7.right, var7.top);
  34.          var2.fillRect(0, var7.top, var7.left, var6 - var7.top);
  35.          var2.fillRect(var7.left, var6 - var7.bottom, var5 - var7.left, var7.bottom);
  36.          var2.fillRect(var5 - var7.right, 0, var7.right, var6 - var7.bottom);
  37.       } else if (this.tileIcon != null) {
  38.          int var9 = this.tileIcon.getIconWidth();
  39.          int var10 = this.tileIcon.getIconHeight();
  40.          Graphics var15 = var2.create();
  41.          var15.setClip(0, 0, var5, var7.top);
  42.  
  43.          for(int var12 = 0; var7.top - var12 > 0; var12 += var10) {
  44.             for(int var11 = 0; var5 - var11 > 0; var11 += var9) {
  45.                this.tileIcon.paintIcon(var1, var15, var11, var12);
  46.             }
  47.          }
  48.  
  49.          var15.dispose();
  50.          var15 = var2.create();
  51.          var15.setClip(0, var7.top, var7.left, var6 - var7.top);
  52.          int var14 = var7.top - var7.top % var10;
  53.          int var13 = 0;
  54.  
  55.          for(int var19 = var14; var6 - var19 > 0; var19 += var10) {
  56.             for(int var16 = var13; var7.left - var16 > 0; var16 += var9) {
  57.                this.tileIcon.paintIcon(var1, var15, var16, var19);
  58.             }
  59.          }
  60.  
  61.          var15.dispose();
  62.          var15 = var2.create();
  63.          var15.setClip(var7.left, var6 - var7.bottom, var5 - var7.left, var7.bottom);
  64.          var14 = var6 - var7.bottom - (var6 - var7.bottom) % var10;
  65.          var13 = var7.left - var7.left % var9;
  66.  
  67.          for(int var20 = var14; var6 - var20 > 0; var20 += var10) {
  68.             for(int var17 = var13; var5 - var17 > 0; var17 += var9) {
  69.                this.tileIcon.paintIcon(var1, var15, var17, var20);
  70.             }
  71.          }
  72.  
  73.          var15.dispose();
  74.          var15 = var2.create();
  75.          var15.setClip(var5 - var7.right, var7.top, var7.right, var6 - var7.top - var7.bottom);
  76.          var14 = var7.top - var7.top % var10;
  77.          var13 = var5 - var7.right - (var5 - var7.right) % var9;
  78.  
  79.          for(int var21 = var14; var6 - var21 > 0; var21 += var10) {
  80.             for(int var18 = var13; var5 - var18 > 0; var18 += var9) {
  81.                this.tileIcon.paintIcon(var1, var15, var18, var21);
  82.             }
  83.          }
  84.  
  85.          var15.dispose();
  86.       }
  87.  
  88.       var2.translate(-var3, -var4);
  89.       var2.setColor(var8);
  90.    }
  91.  
  92.    public Insets getBorderInsets(Component var1) {
  93.       if (this.tileIcon != null && super.top == -1 && super.bottom == -1 && super.left == -1 && super.right == -1) {
  94.          int var2 = this.tileIcon.getIconWidth();
  95.          int var3 = this.tileIcon.getIconHeight();
  96.          return new Insets(var3, var2, var3, var2);
  97.       } else {
  98.          return new Insets(super.top, super.left, super.bottom, super.right);
  99.       }
  100.    }
  101.  
  102.    public boolean isBorderOpaque() {
  103.       return this.color != null;
  104.    }
  105. }
  106.