package com.quiltplayer.view.swing.buttons;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.BorderFactory;
import net.miginfocom.swing.MigLayout;
import com.quiltplayer.view.swing.ColorConstantsDark;
import com.quiltplayer.view.swing.labels.Highlightable;
import com.quiltplayer.view.swing.listeners.HighlightableMouseListener;
/**
* @author Vlado Palczynski
*/
public abstract class ScrollableAndHighlightableButton extends ScrollableButton implements Highlightable {
private static final long serialVersionUID = 1L;
protected Color background = ColorConstantsDark.BACKGROUND;
private Color[] gradient = { Color.ORANGE, Color.ORANGE.darker(), Color.ORANGE.darker().darker() };
private float[] dist = { 0.0f, 0.5f, 1.0f };
public ScrollableAndHighlightableButton() {
super();
setDefaults();
}
private void setDefaults() {
setLayout(new MigLayout(""));
setBorder(BorderFactory.createEmptyBorder());
setOpaque(false);
addMouseListener(new HighlightableMouseListener(background, this));
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.view.swing.labels.Highlightable#highlight()
*/
@Override
public void highlight(Color color) {
background = color;
repaint();
}
/*
* (non-Javadoc)
*
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
*/
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(background);
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 11, 11);
}
}