home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicArrowButton.class (.txt) next >
Encoding:
Java Class File  |  1999-07-15  |  2.9 KB  |  175 lines

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