summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/impl/Table.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-04-30 23:17:48 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-04-30 23:17:48 +0200
commitd262d91b076cbaa322d49818476b251c06cee42e (patch)
tree5289130de3d010483318e6559dd3ad59a6829e71 /src/jrummikub/view/impl/Table.java
parent28f1ecd987dbe86a59ce474f3f58eb75838edc68 (diff)
downloadJRummikub-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.java31
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++;
+ }
+ }
}
}