summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/turn
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/turn')
-rw-r--r--src/jrummikub/control/turn/HumanTurnControl.java35
-rw-r--r--src/jrummikub/control/turn/TurnControlFactory.java9
2 files changed, 35 insertions, 9 deletions
diff --git a/src/jrummikub/control/turn/HumanTurnControl.java b/src/jrummikub/control/turn/HumanTurnControl.java
index 9b44f4e..399f547 100644
--- a/src/jrummikub/control/turn/HumanTurnControl.java
+++ b/src/jrummikub/control/turn/HumanTurnControl.java
@@ -34,7 +34,7 @@ public class HumanTurnControl extends AbstractTurnControl {
private List<Stone> selectedStones = new ArrayList<Stone>();
private List<Connection> connections = new ArrayList<Connection>();
-
+
private boolean inspectOnly;
/**
@@ -50,7 +50,8 @@ public class HumanTurnControl extends AbstractTurnControl {
* @param inspectOnly
* 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.table = table;
this.view = view;
@@ -58,6 +59,21 @@ public class HumanTurnControl extends AbstractTurnControl {
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 **/
HumanTurnControl(IHand hand, ITable table, IView view, ITurnTimer testTimer) {
this.hand = hand;
@@ -80,13 +96,14 @@ public class HumanTurnControl extends AbstractTurnControl {
connections.add(timer.getTimeRunOutEvent().add(endOfTurnListener));
connections.add(view.getPlayerPanel().getEndTurnEvent()
.add(endOfTurnListener));
-
- connections.add(view.getPlayerPanel().getRedealEvent().add(new IListener() {
- @Override
- public void handle() {
- endOfTurn(true);
- }
- }));
+
+ connections.add(view.getPlayerPanel().getRedealEvent()
+ .add(new IListener() {
+ @Override
+ public void handle() {
+ endOfTurn(true);
+ }
+ }));
addHandPanelHandlers();
addStoneCollectionHandlers();
diff --git a/src/jrummikub/control/turn/TurnControlFactory.java b/src/jrummikub/control/turn/TurnControlFactory.java
new file mode 100644
index 0000000..3af910b
--- /dev/null
+++ b/src/jrummikub/control/turn/TurnControlFactory.java
@@ -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);
+}