home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / text / html / StyleSheet$BoxPainter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.7 KB  |  116 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Graphics;
  6. import java.awt.Insets;
  7. import java.io.Serializable;
  8. import javax.swing.border.BevelBorder;
  9. import javax.swing.border.Border;
  10. import javax.swing.border.LineBorder;
  11. import javax.swing.text.AttributeSet;
  12. import javax.swing.text.View;
  13. import javax.swing.text.html.CSS.Attribute;
  14.  
  15. public class StyleSheet$BoxPainter implements Serializable {
  16.    Border border;
  17.    Insets binsets;
  18.  
  19.    StyleSheet$BoxPainter(AttributeSet var1) {
  20.       this.border = this.getBorder(var1);
  21.       this.binsets = this.border.getBorderInsets((Component)null);
  22.    }
  23.  
  24.    Border getBorder(AttributeSet var1) {
  25.       Object var2 = StyleSheet.noBorder;
  26.       Object var3 = var1.getAttribute(Attribute.BORDER_STYLE);
  27.       if (var3 != null) {
  28.          String var4 = var3.toString();
  29.          int var5 = (int)this.getLength(Attribute.BORDER_WIDTH, var1);
  30.          if (var5 > 0) {
  31.             if (var4.equals("inset")) {
  32.                Color var6 = this.getBorderColor(var1);
  33.                var2 = new BevelBorder(1, var6.brighter(), var6.darker());
  34.             } else if (var4.equals("outset")) {
  35.                Color var7 = this.getBorderColor(var1);
  36.                var2 = new BevelBorder(0, var7.brighter(), var7.darker());
  37.             } else if (var4.equals("solid")) {
  38.                Color var8 = this.getBorderColor(var1);
  39.                var2 = new LineBorder(var8);
  40.             }
  41.          }
  42.       }
  43.  
  44.       return (Border)var2;
  45.    }
  46.  
  47.    Color getBorderColor(AttributeSet var1) {
  48.       Object var2 = var1.getAttribute(Attribute.BORDER_COLOR);
  49.       if (var2 == null) {
  50.          var2 = var1.getAttribute(Attribute.COLOR);
  51.       }
  52.  
  53.       if (var2 != null) {
  54.          StyleSheet.ColorValue var3 = (StyleSheet.ColorValue)var2;
  55.          return var3.getValue();
  56.       } else {
  57.          return Color.black;
  58.       }
  59.    }
  60.  
  61.    public float getInset(int var1, View var2) {
  62.       AttributeSet var3 = var2.getAttributes();
  63.       float var4 = 0.0F;
  64.       switch (var1) {
  65.          case 1:
  66.             var4 += this.getLength(Attribute.MARGIN_TOP, var3);
  67.             var4 += (float)this.binsets.top;
  68.             var4 += this.getLength(Attribute.PADDING_TOP, var3);
  69.             break;
  70.          case 2:
  71.             var4 += this.getLength(Attribute.MARGIN_LEFT, var3);
  72.             var4 += (float)this.binsets.left;
  73.             var4 += this.getLength(Attribute.PADDING_LEFT, var3);
  74.             break;
  75.          case 3:
  76.             var4 += this.getLength(Attribute.MARGIN_BOTTOM, var3);
  77.             var4 += (float)this.binsets.bottom;
  78.             var4 += this.getLength(Attribute.PADDING_BOTTOM, var3);
  79.             break;
  80.          case 4:
  81.             var4 += this.getLength(Attribute.MARGIN_RIGHT, var3);
  82.             var4 += (float)this.binsets.right;
  83.             var4 += this.getLength(Attribute.PADDING_RIGHT, var3);
  84.             break;
  85.          default:
  86.             throw new IllegalArgumentException("Invalid side: " + var1);
  87.       }
  88.  
  89.       return var4;
  90.    }
  91.  
  92.    float getLength(CSS.Attribute var1, AttributeSet var2) {
  93.       StyleSheet.LengthValue var3 = (StyleSheet.LengthValue)var2.getAttribute(var1);
  94.       float var4 = var3 != null ? var3.getValue() : 0.0F;
  95.       return var4;
  96.    }
  97.  
  98.    public void paint(Graphics var1, float var2, float var3, float var4, float var5, View var6) {
  99.       AttributeSet var7 = var6.getAttributes();
  100.       StyleSheet var8 = ((HTMLDocument)var6.getDocument()).getStyleSheet();
  101.       float var9 = this.getLength(Attribute.MARGIN_TOP, var7);
  102.       float var10 = this.getLength(Attribute.MARGIN_LEFT, var7);
  103.       var2 += var10;
  104.       var3 += var9;
  105.       var4 -= var10 + this.getLength(Attribute.MARGIN_RIGHT, var7);
  106.       var5 -= var9 + this.getLength(Attribute.MARGIN_BOTTOM, var7);
  107.       Color var11 = var8.getBackground(var7);
  108.       if (var11 != null) {
  109.          var1.setColor(var11);
  110.          var1.fillRect((int)var2, (int)var3, (int)var4, (int)var5);
  111.       }
  112.  
  113.       this.border.paintBorder((Component)null, var1, (int)var2, (int)var3, (int)var4, (int)var5);
  114.    }
  115. }
  116.