package magic.ui.widget.duel.viewer; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; @SuppressWarnings("serial") public class DeckEditorCardViewer extends CardViewer { private final static Dimension COUNTER_SIZE = new Dimension(100, 461); private int cardCount = 0; public void setCardCount(final int cardCount) { this.cardCount = cardCount; repaint(); } @Override public void paint(Graphics g) { super.paint(g); final int x = (getWidth() - COUNTER_SIZE.width) / 2; drawCardCount(g, x, 30, COUNTER_SIZE.width, COUNTER_SIZE.height); } private void drawCardCount(Graphics g, int X, int Y, int W, int H) { if (cardCount > 0) { Graphics2D g2d = (Graphics2D)g; g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); // g2d.setColor(Color.WHITE); final String text = Integer.toString(cardCount); int h = (int)(H * 0.15); h = h > 8 ? (int)(H * 0.15) : 9; final Font f = new Font("Dialog", Font.BOLD, h); final int w = g2d.getFontMetrics(f).stringWidth(text); g2d.setFont(f); drawStringWithOutline(g2d, text, X + ((W - w) / 2), Y + ((H - h) / 3)); } } private static final Color OUTLINE_COLOR = Color.DARK_GRAY; private static final Color FOREGROUND_COLOR = Color.YELLOW; private void drawStringWithOutline(final Graphics2D g2d, final String str, int x, int y) { // Graphics2D g2d = (Graphics2D)g; g2d.setColor(OUTLINE_COLOR); for (int i = 1; i <= 2; i++) { g2d.drawString(str,x+i,y); g2d.drawString(str,x-i,y); g2d.drawString(str,x,y+i); g2d.drawString(str,x,y-i); } g2d.setColor(FOREGROUND_COLOR); g2d.drawString(str,x,y); } }