diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-04-30 23:17:48 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-04-30 23:17:48 +0200 |
commit | d262d91b076cbaa322d49818476b251c06cee42e (patch) | |
tree | 5289130de3d010483318e6559dd3ad59a6829e71 /src/jrummikub/view/impl/Table.java | |
parent | 28f1ecd987dbe86a59ce474f3f58eb75838edc68 (diff) | |
download | JRummikub-d262d91b076cbaa322d49818476b251c06cee42e.tar JRummikub-d262d91b076cbaa322d49818476b251c06cee42e.zip |
Add display for selected stones above board
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@41 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/Table.java')
-rw-r--r-- | src/jrummikub/view/impl/Table.java | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/jrummikub/view/impl/Table.java b/src/jrummikub/view/impl/Table.java index 8e12569..a42a2a9 100644 --- a/src/jrummikub/view/impl/Table.java +++ b/src/jrummikub/view/impl/Table.java @@ -32,9 +32,10 @@ public class Table extends JPanel implements ITable { private JPanel innerPanel; private StonePainter stonePainter = new StonePainter(1); + private StonePainter selectedStonePainter = new StonePainter(1.2f); private Map<StoneSet, Position> stoneSets = Collections.emptyMap(); - private Collection<Stone> highlightedStones = Collections.emptyList(); + private Collection<Stone> selectedStones = Collections.emptyList(); private Event1<Position> clickEvent = new Event1<Position>(); @@ -60,9 +61,8 @@ public class Table extends JPanel implements ITable { repaint(); } - @Override - public void setHighlightedStones(Collection<Stone> stones) { - highlightedStones = stones; + public void setSelectedStones(Collection<Stone> stones) { + selectedStones = stones; repaint(); } @@ -109,7 +109,7 @@ public class Table extends JPanel implements ITable { for (Stone stone : stoneSet) { stonePainter.paintStone(g, stone, new Position(x, pos.getY()), - highlightedStones.contains(stone)); + selectedStones.contains(stone)); x++; } } @@ -130,5 +130,26 @@ public class Table extends JPanel implements ITable { for (Map.Entry<StoneSet, Position> stoneSet : stoneSets.entrySet()) { paintStoneSet(g, stoneSet.getKey(), stoneSet.getValue()); } + + int selectedStonesWidth = getWidth()*3/5-14; + int selectedStonesHeight = selectedStonePainter.getStoneHeight(); + int selectedStonesX = getWidth() / 2 - selectedStonesWidth / 2; + int selectedStonesY = getHeight() - selectedStonesHeight - 12; + + if (!selectedStones.isEmpty()) { + g.setColor(new Color(0, 0, 0, 0.3f)); + g.fillRect(selectedStonesX-7, selectedStonesY-7, selectedStonesWidth + 14, + selectedStonesHeight + 14); + + Graphics2D translatedG = (Graphics2D) g.create(selectedStonesX, + selectedStonesY, selectedStonesWidth, selectedStonesHeight); + + float x = 0; + + for (Stone stone : selectedStones) { + selectedStonePainter.paintStone(translatedG, stone, new Position(x, 0), false); + x++; + } + } } } |