diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-03 16:03:09 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-05-03 16:03:09 +0200 |
commit | 3e257e3979f1f58d8b5ceb7a2d4472201bb94c34 (patch) | |
tree | e5c737e91fb6ce740367f31a6aaee9a3995221cd /src/jrummikub/view/impl/StoneCollectionPanel.java | |
parent | e7b428c01986dd288c548f7daf86834ff12e4a2d (diff) | |
download | JRummikub-3e257e3979f1f58d8b5ceb7a2d4472201bb94c34.tar JRummikub-3e257e3979f1f58d8b5ceb7a2d4472201bb94c34.zip |
Renamed everything in the view
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@75 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/StoneCollectionPanel.java')
-rw-r--r-- | src/jrummikub/view/impl/StoneCollectionPanel.java | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/jrummikub/view/impl/StoneCollectionPanel.java b/src/jrummikub/view/impl/StoneCollectionPanel.java new file mode 100644 index 0000000..e4ca1c6 --- /dev/null +++ b/src/jrummikub/view/impl/StoneCollectionPanel.java @@ -0,0 +1,76 @@ +package jrummikub.view.impl; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Insets; +import java.util.Collection; +import java.util.Collections; + +import javax.swing.border.EmptyBorder; + +import jrummikub.model.Position; +import jrummikub.model.Stone; +import jrummikub.view.IStoneCollectionPanel; + +/** + * Implementation of the stone collection (selection) + */ +@SuppressWarnings("serial") +class StoneCollectionPanel extends AbstractStonePanel implements IStoneCollectionPanel { + private final static int INSET = 7; + private final static float STONE_SCALE = 1.1f; + + private Collection<Stone> selectedStones = Collections.emptyList(); + + /** + * Creates a new StoneCollection instance + */ + StoneCollectionPanel() { + super(STONE_SCALE); + + setOpaque(false); + setVisible(false); + setBorder(new EmptyBorder(INSET, INSET, INSET, INSET)); + } + + /** + * Sets the stones to be shown in the collection + * + * @param stones + * the selected stones + */ + void setSelectedStones(Collection<Stone> stones) { + selectedStones = stones; + + if (stones.isEmpty()) { + setVisible(false); + } else { + setSize(getStonePainter().getStoneWidth() * stones.size() + 2 * INSET, + getStonePainter().getStoneHeight() + 2 * INSET); + setVisible(true); + + repaint(); + } + } + + @Override + public void paintComponent(Graphics g1) { + Insets insets = getInsets(); + int x = insets.left, y = insets.top, width = getWidth() - insets.left + - insets.right, height = getHeight() - insets.top - insets.bottom; + Graphics2D g = (Graphics2D) g1.create(x, y, width, height); + + if (!selectedStones.isEmpty()) { + g1.setColor(new Color(0, 0, 0, 0.25f)); + g1.fillRoundRect(0, 0, getWidth(), getHeight(), INSET, INSET); + + float xpos = 0; + + for (Stone stone : selectedStones) { + getStonePainter().paintStone(g, stone, new Position(xpos, 0), false); + xpos++; + } + } + } +} |