diff options
author | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-30 01:31:36 +0200 |
---|---|---|
committer | Jannis Harder <harder@informatik.uni-luebeck.de> | 2011-05-30 01:31:36 +0200 |
commit | b19a46b7b259f3a6e189ba594446be3ad54801f5 (patch) | |
tree | 405d28e31fd04009d49749ed0d8d87365b0bb6b4 /src/jrummikub/view/impl/HandPanel.java | |
parent | 15558d7138efbf16a52d49484a6923b03514f453 (diff) | |
download | JRummikub-b19a46b7b259f3a6e189ba594446be3ad54801f5.tar JRummikub-b19a46b7b259f3a6e189ba594446be3ad54801f5.zip |
Implemented view code for AI turns
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@319 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/HandPanel.java')
-rw-r--r-- | src/jrummikub/view/impl/HandPanel.java | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/jrummikub/view/impl/HandPanel.java b/src/jrummikub/view/impl/HandPanel.java index bede319..1851ed9 100644 --- a/src/jrummikub/view/impl/HandPanel.java +++ b/src/jrummikub/view/impl/HandPanel.java @@ -29,16 +29,23 @@ class HandPanel extends AbstractStonePanel implements IHandPanel { private final static int HEIGHT = 2; private final static BufferedImage BACKGROUND; + private final static BufferedImage DARK_BACKGROUND; static { ImageIcon image = new ImageIcon( HandPanel.class.getResource("/jrummikub/resource/wood.png")); + ImageIcon darkImage = new ImageIcon( + HandPanel.class.getResource("/jrummikub/resource/dark_wood.png")); BACKGROUND = new BufferedImage(image.getIconWidth(), image.getIconHeight(), BufferedImage.TYPE_INT_RGB); + DARK_BACKGROUND = new BufferedImage(darkImage.getIconWidth(), darkImage.getIconHeight(), + BufferedImage.TYPE_INT_RGB); image.paintIcon(null, BACKGROUND.createGraphics(), 0, 0); + darkImage.paintIcon(null, DARK_BACKGROUND.createGraphics(), 0, 0); } private BufferedImage scaledBackground = BACKGROUND; + private BufferedImage scaledDarkBackground = BACKGROUND; private PlayerPanel playerPanel; @@ -47,7 +54,6 @@ class HandPanel extends AbstractStonePanel implements IHandPanel { private boolean repaintAll = true; private Collection<Stone> selectedStones = Collections.emptyList(); - /** * Creates a new Board instance */ @@ -65,14 +71,14 @@ class HandPanel extends AbstractStonePanel implements IHandPanel { }); } - private BufferedImage getScaledBackground(int size) { + private BufferedImage getScaledBackground(int size, BufferedImage background) { BufferedImage scaled = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB); Graphics2D g = scaled.createGraphics(); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); - g.drawImage(BACKGROUND, 0, 0, size, size, null); + g.drawImage(background, 0, 0, size, size, null); return scaled; } @@ -86,13 +92,22 @@ class HandPanel extends AbstractStonePanel implements IHandPanel { int size = height / HEIGHT; + + BufferedImage background = isEnabled() ? scaledBackground : scaledDarkBackground ; + if (repaintAll) { - if (scaledBackground.getHeight() != size) - scaledBackground = getScaledBackground(size); - + if (background.getHeight() != size) { + if (!isEnabled()) { + scaledDarkBackground = getScaledBackground(size, DARK_BACKGROUND); + } else { + scaledBackground = getScaledBackground(size, BACKGROUND); + } + background = isEnabled() ? scaledBackground : scaledDarkBackground; + } + for (int i = 0; i < HEIGHT; ++i) { for (int xpos = -size * i / 3; xpos < width; xpos += size) { - g.drawImage(scaledBackground, xpos, size * i, null); + g.drawImage(background, xpos, size * i, null); } } } |