home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import javax.swing.AbstractButton;
- import javax.swing.JButton;
- import javax.swing.JComponent;
- import javax.swing.SwingConstants;
- import javax.swing.UIManager;
-
- public class BasicArrowButton extends JButton implements SwingConstants {
- protected int direction;
-
- public BasicArrowButton(int var1) {
- ((JComponent)this).setRequestFocusEnabled(false);
- this.setDirection(var1);
- ((JComponent)this).setBackground(UIManager.getColor("control"));
- }
-
- public int getDirection() {
- return this.direction;
- }
-
- public Dimension getMaximumSize() {
- return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
- }
-
- public Dimension getMinimumSize() {
- return new Dimension(5, 5);
- }
-
- public Dimension getPreferredSize() {
- return new Dimension(16, 16);
- }
-
- public boolean isFocusTraversable() {
- return false;
- }
-
- public void paint(Graphics var1) {
- int var5 = ((Component)this).getSize().width;
- int var6 = ((Component)this).getSize().height;
- Color var2 = var1.getColor();
- boolean var3 = ((AbstractButton)this).getModel().isPressed();
- boolean var4 = ((Component)this).isEnabled();
- var1.setColor(((Component)this).getBackground());
- var1.fillRect(1, 1, var5 - 2, var6 - 2);
- if (var3) {
- var1.setColor(UIManager.getColor("controlShadow"));
- var1.drawRect(0, 0, var5 - 1, var6 - 1);
- } else {
- var1.drawLine(0, 0, 0, var6 - 1);
- var1.drawLine(1, 0, var5 - 2, 0);
- var1.setColor(UIManager.getColor("controlLtHighlight"));
- var1.drawLine(1, 1, 1, var6 - 3);
- var1.drawLine(2, 1, var5 - 3, 1);
- var1.setColor(UIManager.getColor("controlShadow"));
- var1.drawLine(1, var6 - 2, var5 - 2, var6 - 2);
- var1.drawLine(var5 - 2, 1, var5 - 2, var6 - 3);
- var1.setColor(UIManager.getColor("controlDkShadow"));
- var1.drawLine(0, var6 - 1, var5 - 1, var6 - 1);
- var1.drawLine(var5 - 1, var6 - 1, var5 - 1, 0);
- }
-
- if (var6 >= 5 && var5 >= 5) {
- if (var3) {
- var1.translate(1, 1);
- }
-
- int var7 = Math.min((var6 - 4) / 3, (var5 - 4) / 3);
- var7 = Math.max(var7, 2);
- this.paintTriangle(var1, (var5 - var7) / 2, (var6 - var7) / 2, var7, this.direction, var4);
- if (var3) {
- var1.translate(-1, -1);
- }
-
- var1.setColor(var2);
- } else {
- var1.setColor(var2);
- }
- }
-
- public void paintTriangle(Graphics var1, int var2, int var3, int var4, int var5, boolean var6) {
- Color var7 = var1.getColor();
- int var10 = 0;
- var4 = Math.max(var4, 2);
- int var8 = var4 / 2;
- var1.translate(var2, var3);
- if (var6) {
- var1.setColor(UIManager.getColor("controlDkShadow"));
- } else {
- var1.setColor(UIManager.getColor("controlShadow"));
- }
-
- switch (var5) {
- case 1:
- int var16;
- for(var16 = 0; var16 < var4; ++var16) {
- var1.drawLine(var8 - var16, var16, var8 + var16, var16);
- }
-
- if (!var6) {
- var1.setColor(UIManager.getColor("controlLtHighlight"));
- var1.drawLine(var8 - var16 + 2, var16, var8 + var16, var16);
- }
- case 2:
- case 4:
- case 6:
- default:
- break;
- case 3:
- if (!var6) {
- var1.translate(1, 1);
- var1.setColor(UIManager.getColor("controlLtHighlight"));
-
- for(int var14 = var4 - 1; var14 >= 0; --var14) {
- var1.drawLine(var10, var8 - var14, var10, var8 + var14);
- ++var10;
- }
-
- var1.translate(-1, -1);
- var1.setColor(UIManager.getColor("controlShadow"));
- }
-
- var10 = 0;
-
- for(int var15 = var4 - 1; var15 >= 0; --var15) {
- var1.drawLine(var10, var8 - var15, var10, var8 + var15);
- ++var10;
- }
- break;
- case 5:
- if (!var6) {
- var1.translate(1, 1);
- var1.setColor(UIManager.getColor("controlLtHighlight"));
-
- for(int var12 = var4 - 1; var12 >= 0; --var12) {
- var1.drawLine(var8 - var12, var10, var8 + var12, var10);
- ++var10;
- }
-
- var1.translate(-1, -1);
- var1.setColor(UIManager.getColor("controlShadow"));
- }
-
- var10 = 0;
-
- for(int var13 = var4 - 1; var13 >= 0; --var13) {
- var1.drawLine(var8 - var13, var10, var8 + var13, var10);
- ++var10;
- }
- break;
- case 7:
- int var9;
- for(var9 = 0; var9 < var4; ++var9) {
- var1.drawLine(var9, var8 - var9, var9, var8 + var9);
- }
-
- if (!var6) {
- var1.setColor(UIManager.getColor("controlLtHighlight"));
- var1.drawLine(var9, var8 - var9 + 2, var9, var8 + var9);
- }
- }
-
- var1.translate(-var2, -var3);
- var1.setColor(var7);
- }
-
- public void setDirection(int var1) {
- this.direction = var1;
- }
- }
-