foul-magics/Mage.Client/src/main/java/mage/client/components/ability/MageScrollButton.java

75 lines
2 KiB
Java

package mage.client.components.ability;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.plaf.basic.BasicArrowButton;
import javax.swing.plaf.metal.MetalScrollButton;
/**
* Buttons for scroll bar.
*
* @author nantuko
*/
public class MageScrollButton extends MetalScrollButton {
private static Icon buttonLeft;
private static Icon buttonRight;
private static ImageIcon buttonUp;
private static ImageIcon buttonDown;
private int width;
static {
buttonLeft = new ImageIcon(MageScrollButton.class.getResource("/buttons/left.png"));
buttonRight = new ImageIcon(MageScrollButton.class.getResource("/buttons/right.png"));
buttonUp = new ImageIcon(MageScrollButton.class.getResource("/buttons/up.png"));
buttonDown = new ImageIcon(MageScrollButton.class.getResource("/buttons/down.png"));
}
public MageScrollButton(int direction, int width, boolean freeStanding) {
super(direction, width, freeStanding);
setOpaque(false);
this.width = width;
buttonUp.setImage(buttonUp.getImage().getScaledInstance(width, width, Image.SCALE_SMOOTH));
buttonDown.setImage(buttonDown.getImage().getScaledInstance(width, width, Image.SCALE_SMOOTH));
}
@Override
public Dimension getMaximumSize() {
return this.getPreferredSize();
}
@Override
public Dimension getMinimumSize() {
return this.getPreferredSize();
}
@Override
public Dimension getPreferredSize() {
return new Dimension(width, width);
}
@Override
public void paint(Graphics g) {
switch (getDirection()) {
case BasicArrowButton.WEST:
buttonLeft.paintIcon(null, g, 0, 0);
break;
case BasicArrowButton.EAST:
buttonRight.paintIcon(null, g, 0, 0);
break;
case BasicArrowButton.NORTH:
buttonUp.paintIcon(null, g, 0, 0);
break;
case BasicArrowButton.SOUTH:
buttonDown.paintIcon(null, g, 0, 0);
break;
}
}
}