diff options
Diffstat (limited to 'mock')
-rw-r--r-- | mock/jrummikub/model/MockHand.java | 17 | ||||
-rw-r--r-- | mock/jrummikub/view/MockHandPanel.java | 11 |
2 files changed, 22 insertions, 6 deletions
diff --git a/mock/jrummikub/model/MockHand.java b/mock/jrummikub/model/MockHand.java index dc4dd04..994f7f5 100644 --- a/mock/jrummikub/model/MockHand.java +++ b/mock/jrummikub/model/MockHand.java @@ -8,7 +8,7 @@ import jrummikub.util.Pair; public class MockHand implements IHand { - public List<Stone> stones = new ArrayList<Stone>(); + public List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>(); public Iterable<Pair<Stone, Position>> iterable; @@ -19,7 +19,7 @@ public class MockHand implements IHand { @Override public void drop(Stone object, Position position) { - stones.add(object); + stones.add(new Pair<Stone, Position>(object, position)); } @Override @@ -30,7 +30,12 @@ public class MockHand implements IHand { @Override public void pickUp(Stone object) { - stones.remove(object); + List<Pair<Stone, Position>> itList = new ArrayList(stones); + for (Pair<Stone, Position> entry : itList) { + if (entry.getFirst() == object) { + stones.remove(entry); + } + } } @Override @@ -40,7 +45,11 @@ public class MockHand implements IHand { @Override public Iterator<Pair<Stone, Position>> iterator() { - return iterable.iterator(); + if (iterable != null) { + return iterable.iterator(); + } else { + return stones.iterator(); + } } public MockHand clone() { diff --git a/mock/jrummikub/view/MockHandPanel.java b/mock/jrummikub/view/MockHandPanel.java index 4fdd58e..42bc41e 100644 --- a/mock/jrummikub/view/MockHandPanel.java +++ b/mock/jrummikub/view/MockHandPanel.java @@ -1,5 +1,8 @@ package jrummikub.view; +import java.util.ArrayList; +import java.util.List; + import jrummikub.model.Position; import jrummikub.model.Stone; import jrummikub.util.Event2; @@ -9,7 +12,7 @@ import jrummikub.util.Pair; public class MockHandPanel implements IHandPanel { public Event2<Stone, Boolean> stoneClickEvent = new Event2<Stone, Boolean>(); - public Iterable<Pair<Stone, Position>> stones; + public List<Pair<Stone, Position>> stones; @Override public IEvent2<Stone, Boolean> getStoneClickEvent() { @@ -36,7 +39,11 @@ public class MockHandPanel implements IHandPanel { @Override public void setStones(Iterable<Pair<Stone, Position>> stones) { - this.stones = stones; + this.stones = new ArrayList<Pair<Stone, Position>>(); + + for (Pair<Stone, Position> entry : stones) { + this.stones.add(entry); + } } } |