diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-20 06:41:15 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-20 06:41:15 +0200 |
commit | 0c3eb9a28363ae697f984d9413eb187bfe2511a9 (patch) | |
tree | e72cc28d72bd27c0dad9372d3b51274af9ffdeed /src/jrummikub/control/network/NetworkTurnControl.java | |
parent | 74d8205f30732a8afd6aa45f859188b0a3d447e5 (diff) | |
download | JRummikub-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.java | 44 |
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() { } |