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

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.AbstractButton;
  4. import com.sun.java.swing.JButton;
  5. import com.sun.java.swing.SwingConstants;
  6. import com.sun.java.swing.UIManager;
  7. import java.awt.Color;
  8. import java.awt.Component;
  9. import java.awt.Dimension;
  10. import java.awt.Graphics;
  11.  
  12. public class BasicArrowButton extends JButton implements SwingConstants {
  13.    protected int direction;
  14.  
  15.    public BasicArrowButton(int var1) {
  16.       this.setDirection(var1);
  17.       ((Component)this).setBackground(UIManager.getColor("control"));
  18.    }
  19.  
  20.    public int getDirection() {
  21.       return this.direction;
  22.    }
  23.  
  24.    public void setDirection(int var1) {
  25.       this.direction = var1;
  26.    }
  27.  
  28.    public void paint(Graphics var1) {
  29.       int var5 = ((Component)this).getSize().width;
  30.       int var6 = ((Component)this).getSize().height;
  31.       Color var2 = var1.getColor();
  32.       boolean var3 = ((AbstractButton)this).getModel().isPressed();
  33.       boolean var4 = ((Component)this).isEnabled();
  34.       var1.setColor(((Component)this).getBackground());
  35.       var1.fillRect(1, 1, var5 - 2, var6 - 2);
  36.       if (var3) {
  37.          var1.setColor(UIManager.getColor("controlShadow"));
  38.          var1.drawRect(0, 0, var5 - 1, var6 - 1);
  39.       } else {
  40.          var1.drawLine(0, 0, 0, var6 - 1);
  41.          var1.drawLine(1, 0, var5 - 2, 0);
  42.          var1.setColor(UIManager.getColor("controlHighlight"));
  43.          var1.drawLine(1, 1, 1, var6 - 3);
  44.          var1.drawLine(2, 1, var5 - 3, 1);
  45.          var1.setColor(UIManager.getColor("controlShadow"));
  46.          var1.drawLine(1, var6 - 2, var5 - 2, var6 - 2);
  47.          var1.drawLine(var5 - 2, 1, var5 - 2, var6 - 3);
  48.          var1.setColor(UIManager.getColor("controlDkShadow"));
  49.          var1.drawLine(0, var6 - 1, var5 - 1, var6 - 1);
  50.          var1.drawLine(var5 - 1, var6 - 1, var5 - 1, 0);
  51.       }
  52.  
  53.       if (var6 >= 5 && var5 >= 5) {
  54.          if (var3) {
  55.             var1.translate(1, 1);
  56.          }
  57.  
  58.          int var7 = Math.min((var6 - 4) / 3, (var5 - 4) / 3);
  59.          var7 = Math.max(var7, 2);
  60.          this.paintTriangle(var1, (var5 - var7) / 2, (var6 - var7) / 2, var7, this.direction, var4);
  61.          if (var3) {
  62.             var1.translate(-1, -1);
  63.          }
  64.  
  65.          var1.setColor(var2);
  66.       } else {
  67.          var1.setColor(var2);
  68.       }
  69.    }
  70.  
  71.    public Dimension getPreferredSize() {
  72.       return new Dimension(16, 16);
  73.    }
  74.  
  75.    public Dimension getMinimumSize() {
  76.       return new Dimension(5, 5);
  77.    }
  78.  
  79.    public Dimension getMaximumSize() {
  80.       return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  81.    }
  82.  
  83.    public boolean isFocusTraversable() {
  84.       return false;
  85.    }
  86.  
  87.    public void requestFocus() {
  88.    }
  89.  
  90.    public void paintTriangle(Graphics var1, int var2, int var3, int var4, int var5, boolean var6) {
  91.       Color var7 = var1.getColor();
  92.       int var10 = 0;
  93.       var4 = Math.max(var4, 2);
  94.       int var8 = var4 / 2;
  95.       var1.translate(var2, var3);
  96.       if (var6) {
  97.          var1.setColor(UIManager.getColor("controlDkShadow"));
  98.       } else {
  99.          var1.setColor(UIManager.getColor("controlShadow"));
  100.       }
  101.  
  102.       switch (var5) {
  103.          case 1:
  104.             int var16;
  105.             for(var16 = 0; var16 < var4; ++var16) {
  106.                var1.drawLine(var8 - var16, var16, var8 + var16, var16);
  107.             }
  108.  
  109.             if (!var6) {
  110.                var1.setColor(UIManager.getColor("controlHighlight"));
  111.                var1.drawLine(var8 - var16 + 2, var16, var8 + var16, var16);
  112.             }
  113.             break;
  114.          case 3:
  115.             if (!var6) {
  116.                var1.translate(1, 1);
  117.                var1.setColor(UIManager.getColor("controlHighlight"));
  118.  
  119.                for(int var14 = var4 - 1; var14 >= 0; --var14) {
  120.                   var1.drawLine(var10, var8 - var14, var10, var8 + var14);
  121.                   ++var10;
  122.                }
  123.  
  124.                var1.translate(-1, -1);
  125.                var1.setColor(UIManager.getColor("controlShadow"));
  126.             }
  127.  
  128.             var10 = 0;
  129.  
  130.             for(int var15 = var4 - 1; var15 >= 0; --var15) {
  131.                var1.drawLine(var10, var8 - var15, var10, var8 + var15);
  132.                ++var10;
  133.             }
  134.             break;
  135.          case 5:
  136.             if (!var6) {
  137.                var1.translate(1, 1);
  138.                var1.setColor(UIManager.getColor("controlHighlight"));
  139.  
  140.                for(int var12 = var4 - 1; var12 >= 0; --var12) {
  141.                   var1.drawLine(var8 - var12, var10, var8 + var12, var10);
  142.                   ++var10;
  143.                }
  144.  
  145.                var1.translate(-1, -1);
  146.                var1.setColor(UIManager.getColor("controlShadow"));
  147.             }
  148.  
  149.             var10 = 0;
  150.  
  151.             for(int var13 = var4 - 1; var13 >= 0; --var13) {
  152.                var1.drawLine(var8 - var13, var10, var8 + var13, var10);
  153.                ++var10;
  154.             }
  155.             break;
  156.          case 7:
  157.             int var9;
  158.             for(var9 = 0; var9 < var4; ++var9) {
  159.                var1.drawLine(var9, var8 - var9, var9, var8 + var9);
  160.             }
  161.  
  162.             if (!var6) {
  163.                var1.setColor(UIManager.getColor("controlHighlight"));
  164.                var1.drawLine(var9, var8 - var9 + 2, var9, var8 + var9);
  165.             }
  166.       }
  167.  
  168.       var1.translate(-var2, -var3);
  169.       var1.setColor(var7);
  170.    }
  171. }
  172.