summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkTurnControl.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-06-20 06:41:15 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-06-20 06:41:15 +0200
commit0c3eb9a28363ae697f984d9413eb187bfe2511a9 (patch)
treee72cc28d72bd27c0dad9372d3b51274af9ffdeed /src/jrummikub/control/network/NetworkTurnControl.java
parent74d8205f30732a8afd6aa45f859188b0a3d447e5 (diff)
downloadJRummikub-0c3eb9a28363ae697f984d9413eb187bfe2511a9.tar
JRummikub-0c3eb9a28363ae697f984d9413eb187bfe2511a9.zip
Fixed a bunch of network synchronization bugs
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@510 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/control/network/NetworkTurnControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkTurnControl.java44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/jrummikub/control/network/NetworkTurnControl.java b/src/jrummikub/control/network/NetworkTurnControl.java
index d80c9b3..57851a2 100644
--- a/src/jrummikub/control/network/NetworkTurnControl.java
+++ b/src/jrummikub/control/network/NetworkTurnControl.java
@@ -1,52 +1,56 @@
package jrummikub.control.network;
import jrummikub.control.turn.AbstractTurnControl;
+import jrummikub.model.IHand;
import jrummikub.model.IRoundState;
import jrummikub.model.ITable;
import jrummikub.util.Event1;
import jrummikub.util.IEvent1;
import jrummikub.util.IListener1;
+import jrummikub.util.IListener3;
public class NetworkTurnControl extends AbstractTurnControl {
private IConnectionControl connectionControl;
private Event1<IRoundState> stateUpdateEvent = new Event1<IRoundState>();
-
-
+
public NetworkTurnControl(IConnectionControl connectionControl) {
this.connectionControl = connectionControl;
}
-
+
public IEvent1<IRoundState> getStateUpdateEvent() {
return stateUpdateEvent;
}
-
+
@Override
public void doStartTurn() {
- connections.add(connectionControl.getTableUpdateEvent().add(new IListener1<ITable>() {
- @Override
- public void handle(ITable table) {
- view.getTablePanel().setStoneSets(table);
- }
- }));
- connections.add(connectionControl.getTurnEndEvent().add(new IListener1<ITable>() {
- @Override
- public void handle(ITable table) {
- endOfTurn(table);
- }
- }));
+ connections.add(connectionControl.getTableUpdateEvent().add(
+ new IListener1<ITable>() {
+ @Override
+ public void handle(ITable table) {
+ view.getTablePanel().setStoneSets(table);
+ }
+ }));
+ connections.add(connectionControl.getTurnEndEvent().add(
+ new IListener3<IHand, ITable, ITable>() {
+ @Override
+ public void handle(IHand oldHand, ITable oldTable, ITable newTable) {
+ endOfTurn(oldHand, oldTable, newTable);
+ }
+ }));
timer.startTimer();
}
- private void endOfTurn(ITable newTable) {
+ private void endOfTurn(IHand oldHand, ITable oldTable, ITable newTable) {
cleanUp();
- endOfTurnEvent.emit(newTable);
+
+ endOfTurnEvent.emit(oldHand, oldTable, newTable);
}
-
+
@Override
protected void timeOut() {
}
-
+
@Override
protected void pauseTurn() {
}