Added TurnControlFactory
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@308 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
73f6fb9c1b
commit
eb7ccb46c5
4 changed files with 86 additions and 15 deletions
|
@ -95,8 +95,12 @@ public class RoundControl {
|
||||||
|
|
||||||
view.getPlayerPanel().setEndTurnMode(inspectOnly, mayRedeal);
|
view.getPlayerPanel().setEndTurnMode(inspectOnly, mayRedeal);
|
||||||
|
|
||||||
ITurnControl turnControl = new HumanTurnControl(roundState.getActivePlayer()
|
ITurnControl turnControl = roundState
|
||||||
.getHand(), clonedTable, view, inspectOnly);
|
.getActivePlayer()
|
||||||
|
.getPlayerSettings()
|
||||||
|
.getTurnControlFactory()
|
||||||
|
.create(roundState.getActivePlayer().getHand(), clonedTable,
|
||||||
|
view, inspectOnly);
|
||||||
turnControl.getEndOfTurnEvent().add(new IListener() {
|
turnControl.getEndOfTurnEvent().add(new IListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -50,7 +50,8 @@ public class HumanTurnControl extends AbstractTurnControl {
|
||||||
* @param inspectOnly
|
* @param inspectOnly
|
||||||
* the current turn doesn't allow any table manipulation
|
* the current turn doesn't allow any table manipulation
|
||||||
*/
|
*/
|
||||||
public HumanTurnControl(IHand hand, ITable table, IView view, boolean inspectOnly) {
|
public HumanTurnControl(IHand hand, ITable table, IView view,
|
||||||
|
boolean inspectOnly) {
|
||||||
this.hand = hand;
|
this.hand = hand;
|
||||||
this.table = table;
|
this.table = table;
|
||||||
this.view = view;
|
this.view = view;
|
||||||
|
@ -58,6 +59,21 @@ public class HumanTurnControl extends AbstractTurnControl {
|
||||||
this.timer = new TurnTimer(view);
|
this.timer = new TurnTimer(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a factory for this turn control
|
||||||
|
*
|
||||||
|
* @return factory
|
||||||
|
*/
|
||||||
|
public static TurnControlFactory getFactory() {
|
||||||
|
return new TurnControlFactory() {
|
||||||
|
@Override
|
||||||
|
public ITurnControl create(IHand hand, ITable table, IView view,
|
||||||
|
boolean inspectOnly) {
|
||||||
|
return new HumanTurnControl(hand, table, view, inspectOnly);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/** Test only constructor **/
|
/** Test only constructor **/
|
||||||
HumanTurnControl(IHand hand, ITable table, IView view, ITurnTimer testTimer) {
|
HumanTurnControl(IHand hand, ITable table, IView view, ITurnTimer testTimer) {
|
||||||
this.hand = hand;
|
this.hand = hand;
|
||||||
|
@ -81,12 +97,13 @@ public class HumanTurnControl extends AbstractTurnControl {
|
||||||
connections.add(view.getPlayerPanel().getEndTurnEvent()
|
connections.add(view.getPlayerPanel().getEndTurnEvent()
|
||||||
.add(endOfTurnListener));
|
.add(endOfTurnListener));
|
||||||
|
|
||||||
connections.add(view.getPlayerPanel().getRedealEvent().add(new IListener() {
|
connections.add(view.getPlayerPanel().getRedealEvent()
|
||||||
@Override
|
.add(new IListener() {
|
||||||
public void handle() {
|
@Override
|
||||||
endOfTurn(true);
|
public void handle() {
|
||||||
}
|
endOfTurn(true);
|
||||||
}));
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
addHandPanelHandlers();
|
addHandPanelHandlers();
|
||||||
addStoneCollectionHandlers();
|
addStoneCollectionHandlers();
|
||||||
|
|
9
src/jrummikub/control/turn/TurnControlFactory.java
Normal file
9
src/jrummikub/control/turn/TurnControlFactory.java
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
package jrummikub.control.turn;
|
||||||
|
|
||||||
|
import jrummikub.model.IHand;
|
||||||
|
import jrummikub.model.ITable;
|
||||||
|
import jrummikub.view.IView;
|
||||||
|
|
||||||
|
public interface TurnControlFactory {
|
||||||
|
public ITurnControl create(IHand hand, ITable table, IView view, boolean inspectOnly);
|
||||||
|
}
|
|
@ -2,24 +2,46 @@ package jrummikub.model;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
|
import jrummikub.control.turn.HumanTurnControl;
|
||||||
|
import jrummikub.control.turn.TurnControlFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The settings of a player
|
* The settings of a player
|
||||||
*/
|
*/
|
||||||
public class PlayerSettings {
|
public class PlayerSettings {
|
||||||
private String name;
|
private String name;
|
||||||
private Color color;
|
private Color color;
|
||||||
|
private TurnControlFactory turnControlFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new player
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* the player's name
|
||||||
|
* @param color
|
||||||
|
* the player's color
|
||||||
|
* @param turnControlFactory
|
||||||
|
* the player's {@link TurnControlFactory}
|
||||||
|
*/
|
||||||
|
public PlayerSettings(String name, Color color,
|
||||||
|
TurnControlFactory turnControlFactory) {
|
||||||
|
this.name = name;
|
||||||
|
this.color = color;
|
||||||
|
this.turnControlFactory = turnControlFactory;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new human player
|
* Create a new human player
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* the player's name
|
* the player's name
|
||||||
* @param color
|
* @param color
|
||||||
* the player's color
|
* the player's color
|
||||||
*/
|
*/
|
||||||
public PlayerSettings(String name, Color color) {
|
public PlayerSettings(String name, Color color) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.color = color;
|
this.color = color;
|
||||||
|
this.turnControlFactory = HumanTurnControl.getFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,7 +66,7 @@ public class PlayerSettings {
|
||||||
* Sets the player's color
|
* Sets the player's color
|
||||||
*
|
*
|
||||||
* @param color
|
* @param color
|
||||||
* the new color
|
* the new color
|
||||||
*/
|
*/
|
||||||
public void setColor(Color color) {
|
public void setColor(Color color) {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
|
@ -54,9 +76,28 @@ public class PlayerSettings {
|
||||||
* Sets the player's name
|
* Sets the player's name
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* the new name
|
* the new name
|
||||||
*/
|
*/
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the player's TurnControlFactory
|
||||||
|
*
|
||||||
|
* @param turnControlFactory
|
||||||
|
* player's TurnControlFactory
|
||||||
|
*/
|
||||||
|
public void setTurnControlFactory(TurnControlFactory turnControlFactory) {
|
||||||
|
this.turnControlFactory = turnControlFactory;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the player's TurnControlFactory
|
||||||
|
*
|
||||||
|
* @return player's TurnControlFactory
|
||||||
|
*/
|
||||||
|
public TurnControlFactory getTurnControlFactory() {
|
||||||
|
return turnControlFactory;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue