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

  1. package com.sun.java.swing.plaf.metal;
  2.  
  3. import com.sun.java.swing.Icon;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Dimension;
  7. import java.awt.Graphics;
  8. import java.awt.Rectangle;
  9. import java.awt.image.ImageObserver;
  10. import java.io.Serializable;
  11. import java.util.Enumeration;
  12. import java.util.Vector;
  13.  
  14. class MetalBumps implements Icon, Serializable {
  15.    protected int xBumps;
  16.    protected int yBumps;
  17.    protected Color topColor;
  18.    protected Color shadowColor;
  19.    protected Color backColor;
  20.    protected static Vector buffers = new Vector();
  21.    protected BumpBuffer buffer;
  22.  
  23.    public MetalBumps(Dimension var1) {
  24.       this(var1.width, var1.height);
  25.    }
  26.  
  27.    public MetalBumps(int var1, int var2) {
  28.       this.topColor = MetalLookAndFeel.getPrimaryControlHighlight();
  29.       this.shadowColor = MetalLookAndFeel.getPrimaryControlDarkShadow();
  30.       this.backColor = MetalLookAndFeel.getPrimaryControlShadow();
  31.       this.setBumpArea(var1, var2);
  32.       this.buffer = this.getBuffer(this.topColor, this.shadowColor, this.backColor);
  33.       if (this.buffer == null) {
  34.          this.createBuffer();
  35.       }
  36.  
  37.    }
  38.  
  39.    public MetalBumps(int var1, int var2, Color var3, Color var4, Color var5) {
  40.       this.topColor = MetalLookAndFeel.getPrimaryControlHighlight();
  41.       this.shadowColor = MetalLookAndFeel.getPrimaryControlDarkShadow();
  42.       this.backColor = MetalLookAndFeel.getPrimaryControlShadow();
  43.       this.setBumpArea(var1, var2);
  44.       this.setBumpColors(var3, var4, var5);
  45.       this.buffer = this.getBuffer(this.topColor, this.shadowColor, this.backColor);
  46.       if (this.buffer == null) {
  47.          this.createBuffer();
  48.       }
  49.  
  50.    }
  51.  
  52.    protected void createBuffer() {
  53.       this.buffer = new BumpBuffer(this.topColor, this.shadowColor, this.backColor);
  54.       buffers.addElement(this.buffer);
  55.    }
  56.  
  57.    protected BumpBuffer getBuffer(Color var1, Color var2, Color var3) {
  58.       BumpBuffer var4 = null;
  59.       Enumeration var5 = buffers.elements();
  60.  
  61.       while(var5.hasMoreElements()) {
  62.          BumpBuffer var6 = (BumpBuffer)var5.nextElement();
  63.          if (var6.hasSameColors(var1, var2, var3)) {
  64.             var4 = var6;
  65.             break;
  66.          }
  67.       }
  68.  
  69.       return var4;
  70.    }
  71.  
  72.    public void setBumpArea(Dimension var1) {
  73.       this.setBumpArea(var1.width, var1.height);
  74.    }
  75.  
  76.    public void setBumpArea(int var1, int var2) {
  77.       this.xBumps = var1 / 2;
  78.       this.yBumps = var2 / 2;
  79.    }
  80.  
  81.    public void setBumpColors(Color var1, Color var2, Color var3) {
  82.       this.topColor = var1;
  83.       this.shadowColor = var2;
  84.       this.backColor = var3;
  85.       this.buffer = this.getBuffer(this.topColor, this.shadowColor, this.backColor);
  86.       if (this.buffer == null) {
  87.          this.createBuffer();
  88.       }
  89.  
  90.    }
  91.  
  92.    public void paintIcon(Component var1, Graphics var2, int var3, int var4) {
  93.       Rectangle var5 = var2.getClipBounds();
  94.       var2.setClip(var3, var4, this.getIconWidth(), this.getIconHeight());
  95.       int var6 = this.buffer.getImageSize().width;
  96.       int var7 = this.buffer.getImageSize().height;
  97.       int var8 = this.getIconWidth() / var6 + 1;
  98.       int var9 = this.getIconHeight() / var7 + 1;
  99.  
  100.       for(int var10 = 0; var10 < var9; ++var10) {
  101.          for(int var11 = 0; var11 < var8; ++var11) {
  102.             var2.drawImage(this.buffer.getImage(), var3 + var11 * var6, var4 + var10 * var7, (ImageObserver)null);
  103.          }
  104.       }
  105.  
  106.       var2.setClip(var5.x, var5.y, var5.width, var5.height);
  107.    }
  108.  
  109.    public int getIconWidth() {
  110.       return this.xBumps * 2;
  111.    }
  112.  
  113.    public int getIconHeight() {
  114.       return this.yBumps * 2;
  115.    }
  116. }
  117.