Kommentare
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@559 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
fd378778d1
commit
1823fb1610
5 changed files with 144 additions and 76 deletions
|
@ -43,7 +43,7 @@ public class GameOfferControl extends AbstractGameBeginControl {
|
|||
.add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
List<PlayerSettings> players = gameData.getGameSettings()
|
||||
gameData.getGameSettings()
|
||||
.getPlayerList();
|
||||
if (checkPlayers()) {
|
||||
startGame();
|
||||
|
|
|
@ -45,11 +45,13 @@ public class NetworkControl {
|
|||
* Creates a new network control
|
||||
*
|
||||
* @param loginData
|
||||
* user's login data
|
||||
* user's login data
|
||||
* @param connectionControl
|
||||
* current connection for events and messages
|
||||
* current connection for events and messages
|
||||
* @param saveControl
|
||||
* save control if saving will ever be allowed
|
||||
* @param view
|
||||
* for events and handlers
|
||||
* for events and handlers
|
||||
*/
|
||||
public NetworkControl(final LoginData loginData,
|
||||
IConnectionControl connectionControl, SaveControl saveControl,
|
||||
|
@ -79,6 +81,10 @@ public class NetworkControl {
|
|||
}
|
||||
}
|
||||
}));
|
||||
addViewEventListeners();
|
||||
}
|
||||
|
||||
private void addViewEventListeners() {
|
||||
connections.add(view.getQuitWarningPanel().getCancelEvent()
|
||||
.add(new IListener() {
|
||||
@Override
|
||||
|
@ -126,7 +132,7 @@ public class NetworkControl {
|
|||
* Adds the listeners for connection control events
|
||||
*
|
||||
* @param view
|
||||
* view for events
|
||||
* view for events
|
||||
*/
|
||||
public void addConnectionControlListeners(final IView view) {
|
||||
connections.add(connectionControl.getGameOfferEvent().add(
|
||||
|
@ -165,7 +171,6 @@ public class NetworkControl {
|
|||
if (ack) {
|
||||
createGameJoinControl();
|
||||
} else {
|
||||
// TODO Error message
|
||||
view.showGameListPanel(true);
|
||||
}
|
||||
}
|
||||
|
@ -174,14 +179,16 @@ public class NetworkControl {
|
|||
|
||||
private void addConnectionSetupListeners(final LoginData loginData,
|
||||
final IView view) {
|
||||
connections.add(connectionControl.getConnectedEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
view.getGameListPanel().setChannelName(loginData.getChannelName());
|
||||
view.showConnectPanel(false);
|
||||
view.showGameListPanel(true);
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getConnectedEvent().add(
|
||||
new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
view.getGameListPanel().setChannelName(
|
||||
loginData.getChannelName());
|
||||
view.showConnectPanel(false);
|
||||
view.showGameListPanel(true);
|
||||
}
|
||||
}));
|
||||
|
||||
connections.add(connectionControl.getConnectionFailedEvent().add(
|
||||
new IListener1<LoginError>() {
|
||||
|
@ -324,7 +331,8 @@ public class NetworkControl {
|
|||
if (gameOfferControl != null) {
|
||||
return;
|
||||
}
|
||||
gameOfferControl = new GameOfferControl(connectionControl, settings, view);
|
||||
gameOfferControl = new GameOfferControl(connectionControl, settings,
|
||||
view);
|
||||
gameOfferControl.getBackEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
|
@ -332,14 +340,15 @@ public class NetworkControl {
|
|||
view.showGameListPanel(true);
|
||||
}
|
||||
});
|
||||
gameOfferControl.getStartGameEvent().add(new IListener1<GameSettings>() {
|
||||
@Override
|
||||
public void handle(GameSettings settings) {
|
||||
gameControl = new NetworkGameControl(settings, saveControl, view,
|
||||
connectionControl, true);
|
||||
gameControl.startGame();
|
||||
}
|
||||
});
|
||||
gameOfferControl.getStartGameEvent().add(
|
||||
new IListener1<GameSettings>() {
|
||||
@Override
|
||||
public void handle(GameSettings settings) {
|
||||
gameControl = new NetworkGameControl(settings,
|
||||
saveControl, view, connectionControl, true);
|
||||
gameControl.startGame();
|
||||
}
|
||||
});
|
||||
gameOfferControl.startGameOffer();
|
||||
}
|
||||
|
||||
|
|
|
@ -9,12 +9,30 @@ import jrummikub.util.IListener;
|
|||
import jrummikub.view.IView;
|
||||
import jrummikub.view.IView.BottomPanelType;
|
||||
|
||||
/**
|
||||
* Class controlling network games
|
||||
*/
|
||||
public class NetworkGameControl extends GameControl {
|
||||
private IConnectionControl connectionControl;
|
||||
private boolean host;
|
||||
|
||||
public NetworkGameControl(GameSettings gameSettings, SaveControl saveControl,
|
||||
IView view, IConnectionControl connectionControl, boolean host) {
|
||||
/**
|
||||
* Creates new network game control
|
||||
*
|
||||
* @param gameSettings
|
||||
* current game settings
|
||||
* @param saveControl
|
||||
* if there should ever be saving in network mode
|
||||
* @param view
|
||||
* the view
|
||||
* @param connectionControl
|
||||
* the current connection
|
||||
* @param host
|
||||
* of the current game
|
||||
*/
|
||||
public NetworkGameControl(GameSettings gameSettings,
|
||||
SaveControl saveControl, IView view,
|
||||
IConnectionControl connectionControl, boolean host) {
|
||||
super(gameSettings, saveControl, view);
|
||||
|
||||
this.connectionControl = connectionControl;
|
||||
|
@ -23,12 +41,13 @@ public class NetworkGameControl extends GameControl {
|
|||
|
||||
@Override
|
||||
protected void startRound() {
|
||||
connections.add(connectionControl.getRoundStartEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
NetworkGameControl.super.startRound();
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getRoundStartEvent().add(
|
||||
new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
NetworkGameControl.super.startRound();
|
||||
}
|
||||
}));
|
||||
|
||||
if (host) {
|
||||
connectionControl.startRound();
|
||||
|
@ -42,7 +61,8 @@ public class NetworkGameControl extends GameControl {
|
|||
|
||||
@Override
|
||||
protected RoundControl createRoundControl(IRoundState roundState) {
|
||||
return new NetworkRoundControl(roundState, view, connectionControl, host);
|
||||
return new NetworkRoundControl(roundState, view, connectionControl,
|
||||
host);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,10 +9,25 @@ import jrummikub.util.IListener;
|
|||
import jrummikub.util.IListener1;
|
||||
import jrummikub.view.IView;
|
||||
|
||||
/**
|
||||
* Round control for network games
|
||||
*/
|
||||
public class NetworkRoundControl extends RoundControl {
|
||||
private IConnectionControl connectionControl;
|
||||
private boolean currentlyActive;
|
||||
|
||||
/**
|
||||
* Creates new network round control
|
||||
*
|
||||
* @param roundState
|
||||
* current round state
|
||||
* @param view
|
||||
* the view
|
||||
* @param connectionControl
|
||||
* connection control for the current connection
|
||||
* @param startActive
|
||||
* true for host
|
||||
*/
|
||||
public NetworkRoundControl(IRoundState roundState, IView view,
|
||||
final IConnectionControl connectionControl, boolean startActive) {
|
||||
super(roundState, view, false);
|
||||
|
@ -27,18 +42,20 @@ public class NetworkRoundControl extends RoundControl {
|
|||
setRoundState(state);
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getTurnStartEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
startTurn();
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getNextPlayerEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
NetworkRoundControl.super.nextPlayer();
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getTurnStartEvent().add(
|
||||
new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
startTurn();
|
||||
}
|
||||
}));
|
||||
connections.add(connectionControl.getNextPlayerEvent().add(
|
||||
new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
NetworkRoundControl.super.nextPlayer();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,12 +71,12 @@ public class NetworkRoundControl extends RoundControl {
|
|||
@Override
|
||||
protected ITurnControl createTurnControl(Type type) {
|
||||
switch (type) {
|
||||
case HUMAN:
|
||||
currentlyActive = true;
|
||||
break;
|
||||
case NETWORK:
|
||||
currentlyActive = false;
|
||||
break;
|
||||
case HUMAN:
|
||||
currentlyActive = true;
|
||||
break;
|
||||
case NETWORK:
|
||||
currentlyActive = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!currentlyActive) {
|
||||
|
|
Reference in a new issue