diff options
Diffstat (limited to 'src/jrummikub/control/turn/HumanTurnControl.java')
-rw-r--r-- | src/jrummikub/control/turn/HumanTurnControl.java | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/src/jrummikub/control/turn/HumanTurnControl.java b/src/jrummikub/control/turn/HumanTurnControl.java index d7f7721..55b17f2 100644 --- a/src/jrummikub/control/turn/HumanTurnControl.java +++ b/src/jrummikub/control/turn/HumanTurnControl.java @@ -60,32 +60,23 @@ public class HumanTurnControl extends AbstractTurnControl { if (this.timer == null) { this.timer = new TurnTimer(view); } - IListener endOfTurnListener = new IListener() { + + connections.add(timer.getTimeRunOutEvent().add(new IListener() { @Override public void handle() { endOfTurn(false); } - }; - connections.add(timer.getTimeRunOutEvent().add(endOfTurnListener)); - connections.add(view.getPlayerPanel().getEndTurnEvent() - .add(endOfTurnListener)); - - connections.add(view.getPlayerPanel().getRedealEvent() - .add(new IListener() { - @Override - public void handle() { - endOfTurn(true); - } - })); + })); + addButtonHandlers(); addHandPanelHandlers(); addStoneCollectionHandlers(); - if (!inspectOnly) - addTablePanelHandlers(); - - addListeners(); + if (turnMode == TurnMode.NORMAL_TURN) { + addTablePanelHandlers(); + } + view.getHandPanel().setStones(hand.clone()); view.getHandPanel().resetCurrentRow(); view.setBottomPanel(BottomPanelType.HUMAN_HAND_PANEL); @@ -93,7 +84,7 @@ public class HumanTurnControl extends AbstractTurnControl { timer.startTimer(); } - private void addListeners() { + private void addButtonHandlers() { connections.add(view.getPlayerPanel().getSortByGroupsEvent() .add(new IListener() { @Override @@ -109,6 +100,22 @@ public class HumanTurnControl extends AbstractTurnControl { sortByRuns(); } })); + + connections.add(view.getPlayerPanel().getEndTurnEvent() + .add(new IListener() { + + @Override + public void handle() { + endOfTurn(false); + } + })); + + connections.add(view.getPlayerPanel().getRedealEvent().add(new IListener() { + @Override + public void handle() { + endOfTurn(true); + } + })); } private void addHandPanelHandlers() { @@ -425,12 +432,15 @@ public class HumanTurnControl extends AbstractTurnControl { table.drop(joinedSet, newPos); } else { StoneSet joinedSet = new StoneSet(selectedStones).join(newSet); - table.drop(joinedSet, new Position(newPos.getX() - - selectedStones.size(), newPos.getY())); + table.drop(joinedSet, + new Position(newPos.getX() - selectedStones.size(), newPos.getY())); } } else { - table.drop(new StoneSet(selectedStones), new Position(pos.getX() - + (set.size() - selectedStones.size()) * 0.5f, pos.getY())); + table.drop( + new StoneSet(selectedStones), + new Position( + pos.getX() + (set.size() - selectedStones.size()) * 0.5f, pos + .getY())); } selectedStones.clear(); @@ -525,8 +535,7 @@ public class HumanTurnControl extends AbstractTurnControl { static class HandStonePositionComparator implements Comparator<Pair<Stone, Position>> { @Override - public int compare(Pair<Stone, Position> pair1, - Pair<Stone, Position> pair2) { + public int compare(Pair<Stone, Position> pair1, Pair<Stone, Position> pair2) { Position pos1 = pair1.getSecond(), pos2 = pair2.getSecond(); if (pos1.getY() < pos2.getY()) { return -1; |