package magic.ui.widget.deck.stats;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JLabel;
import javax.swing.JPanel;
import magic.data.MagicIcon;
import magic.ui.MagicImages;
import magic.ui.helpers.ColorHelper;
import magic.ui.theme.Theme;
import magic.ui.utility.MagicStyle;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
class ManaCurveUnitPanel extends JPanel {
static int MAX_VALUE = 0;
private static final Color COLOR1 = ColorHelper.bleach1(
MagicStyle.getTheme().getColor(Theme.COLOR_TITLE_BACKGROUND),
0.2f
);
private final JLabel iconLabel;
private final JLabel valueLabel;
private int value;
ManaCurveUnitPanel(MagicIcon manaIcon) {
iconLabel = new JLabel(MagicImages.getIcon(manaIcon));
iconLabel.setHorizontalAlignment(JLabel.CENTER);
valueLabel = new JLabel("0");
valueLabel.setHorizontalAlignment(JLabel.CENTER);
setLayout(new MigLayout("flowy, insets 4"));
add(iconLabel, "w 100%");
add(valueLabel, "w 100%");
setOpaque(false);
}
void setValue(int aValue) {
this.value = aValue;
valueLabel.setText(Integer.toString(aValue));
repaint();
}
@Override
protected void paintComponent(Graphics g) {
final Graphics2D g2d = (Graphics2D) g;
if (value > 0) {
int h = getHeight();
int y = getHeight() - h - (int) (h * (value / (double) MAX_VALUE));
final GradientPaint PAINT_COLOR = new GradientPaint(0, 0, COLOR1, 0, h + 50, Color.WHITE);
g2d.setPaint(PAINT_COLOR);
g2d.fillRect(0, y + h, getWidth(), h - y);
}
super.paintComponent(g);
}
}