package magic.ui.widget.duel.player;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import magic.data.MagicIcon;
import magic.ui.MagicImages;
import magic.ui.helpers.ImageHelper;
import magic.ui.utility.MagicStyle;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
public class PlayerCounterPanel extends JPanel {
private static final Font COUNTER_FONT = new Font("Dialog", Font.PLAIN, 12);
private static final Color OFF_COLOR = MagicStyle.getTranslucentColor(Color.BLACK, 100);
private final ImageIcon onIcon;
private final ImageIcon offIcon;
private final JLabel iconLabel;
private final JLabel valueLabel;
PlayerCounterPanel(MagicIcon icon, String tooltip) {
setOpaque(false);
onIcon = MagicImages.getIcon(icon);
offIcon = new ImageIcon(ImageHelper.getTranslucentImage(onIcon.getImage(), 0.4f));
iconLabel = getIconLabel(tooltip);
valueLabel = getValueLabel(tooltip);
setLayout(new MigLayout("insets 0, alignx right, gapx 1"));
add(valueLabel, "aligny top");
add(iconLabel);
}
private JLabel getIconLabel(String tooltip) {
JLabel lbl = new JLabel();
lbl.setToolTipText(tooltip);
lbl.setHorizontalAlignment(SwingConstants.CENTER);
lbl.setMinimumSize(new Dimension(16, 16));
lbl.setPreferredSize(lbl.getMinimumSize());
lbl.setMaximumSize(lbl.getMinimumSize());
return lbl;
}
private JLabel getValueLabel(String tooltip) {
JLabel lbl = new JLabel();
lbl.setToolTipText(tooltip);
lbl.setFont(COUNTER_FONT);
lbl.setHorizontalAlignment(SwingConstants.RIGHT);
lbl.setMaximumSize(new Dimension(36, 14));
return lbl;
}
void update(int newValue) {
iconLabel.setIcon(newValue > 0 ? onIcon : offIcon);
valueLabel.setForeground(newValue > 0 ? Color.BLACK : OFF_COLOR);
valueLabel.setText(String.valueOf(newValue));
}
}