Allow laying out stone sets

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@180 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Matthias Schiffer 2011-05-09 00:33:34 +02:00
parent b9fbe279c3
commit b86571cf83
8 changed files with 209 additions and 125 deletions

View file

@ -12,6 +12,7 @@ import jrummikub.util.Connection;
import jrummikub.util.Event;
import jrummikub.util.IEvent;
import jrummikub.util.IListener;
import jrummikub.util.IListener1;
import jrummikub.util.IListener2;
import jrummikub.view.IView;
@ -59,8 +60,7 @@ public class TurnControl {
@Override
public void handle(Stone stone, Boolean collect) {
handStoneClick(stone, collect);
stoneClick(stone, collect);
}
}));
@ -72,6 +72,36 @@ public class TurnControl {
collectionStoneClick(stone, collect);
}
}));
connections.add(view.getTablePanel().getStoneClickEvent()
.add(new IListener2<Stone, Boolean>() {
@Override
public void handle(Stone stone, Boolean collect) {
stoneClick(stone, collect);
}
}));
connections.add(view.getTablePanel().getClickEvent()
.add(new IListener1<Position>() {
@Override
public void handle(Position pos) {
tableClick(pos);
}
}));
connections.add(view.getTablePanel().getLeftConnectorClickEvent()
.add(new IListener1<StoneSet>() {
@Override
public void handle(StoneSet set) {
leftConnectorClick(set);
}
}));
connections.add(view.getTablePanel().getRightConnectorClickEvent()
.add(new IListener1<StoneSet>() {
@Override
public void handle(StoneSet set) {
rightConnectorClick(set);
}
}));
view.getPlayerPanel().getHandPanel().setStones(hand.clone());
view.enableStartTurnPanel(false);
@ -87,7 +117,7 @@ public class TurnControl {
}
private void handStoneClick(Stone stone, boolean collect) {
private void stoneClick(Stone stone, boolean collect) {
if (collect) {
if (!selectedStones.remove(stone)) {
selectedStones.add(stone);
@ -109,17 +139,34 @@ public class TurnControl {
view.setSelectedStones(selectedStones);
}
private void leftConnectorClick(StoneSet set){
private void pickUpSelectedStones() {
for (Stone stone : selectedStones) {
hand.pickUp(stone);
table.pickUpStone(stone);
}
}
private void rightConnectorClick(StoneSet set){
private void tableClick(Position position) {
if (selectedStones.isEmpty()) {
return;
}
pickUpSelectedStones();
table.drop(new StoneSet(selectedStones), position);
selectedStones.clear();
view.getTablePanel().setStoneSets(table);
view.getPlayerPanel().getHandPanel().setStones(hand);
view.setSelectedStones(selectedStones);
}
private void tableClick(Position position){
private void leftConnectorClick(StoneSet set) {
}
private void rightConnectorClick(StoneSet set) {
}
private void endOfTurn() {