From f5ee1d85f63503fbb1f49d5c4e44f46be175ce24 Mon Sep 17 00:00:00 2001 From: Timur Saglam Date: Sun, 21 Oct 2018 19:29:51 +0200 Subject: [PATCH] FIX: Allowed aborting when entering a new name. COMMENT: Updated TODO comments. --- .../java/carcassonne/model/ai/AbstractPlayerAI.java | 2 +- .../java/carcassonne/model/ai/CarcassonneMove.java | 4 ++-- .../java/carcassonne/model/grid/FieldsPattern.java | 2 +- .../java/carcassonne/model/terrain/Terrain.java | 2 +- .../view/main/menubar/MenuNamesMouseAdapter.java | 13 ++++++++++--- .../carcassonne/view/secondary/GameMessage.java | 7 +------ 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/carcassonne/model/ai/AbstractPlayerAI.java b/src/main/java/carcassonne/model/ai/AbstractPlayerAI.java index 8053938f..feab9d5a 100644 --- a/src/main/java/carcassonne/model/ai/AbstractPlayerAI.java +++ b/src/main/java/carcassonne/model/ai/AbstractPlayerAI.java @@ -18,7 +18,7 @@ public AbstractPlayerAI() { public abstract CarcassonneMove getBestMove(); public List getPossibleMoves() { - // TODO (HIGH) implement method getPossibleMoves(). + // TODO (MEDIUM) implement method getPossibleMoves(). return null; } diff --git a/src/main/java/carcassonne/model/ai/CarcassonneMove.java b/src/main/java/carcassonne/model/ai/CarcassonneMove.java index beb0ba74..937d33c7 100644 --- a/src/main/java/carcassonne/model/ai/CarcassonneMove.java +++ b/src/main/java/carcassonne/model/ai/CarcassonneMove.java @@ -10,12 +10,12 @@ public class CarcassonneMove implements Comparable { * Basic constructor, creates the move object. */ public CarcassonneMove() { - // TODO (HIGH) Implement CarcassonneMove class. Maybe build two subclasses. + // TODO (MEDIUM) Implement CarcassonneMove class. Maybe build two subclasses. } @Override public int compareTo(CarcassonneMove otherMove) { - // TODO (HIGH) Implement compareTo() method. + // TODO (MEDIUM) Implement compareTo() method. return 0; } } diff --git a/src/main/java/carcassonne/model/grid/FieldsPattern.java b/src/main/java/carcassonne/model/grid/FieldsPattern.java index 0502c501..faf3ac82 100644 --- a/src/main/java/carcassonne/model/grid/FieldsPattern.java +++ b/src/main/java/carcassonne/model/grid/FieldsPattern.java @@ -134,7 +134,7 @@ private GridDirection getFieldOpposite(GridDirection position, GridDirection nei private List getFieldPositions(Tile tile, GridDirection startingPoint) { List fieldPositions = new LinkedList<>(); for (GridDirection position : GridDirection.values()) { // for every position on tile - if (tile.hasConnection(startingPoint, position)) { // TODO (HIGH) Add exceptions! + if (tile.hasConnection(startingPoint, position)) { fieldPositions.add(position); } } diff --git a/src/main/java/carcassonne/model/terrain/Terrain.java b/src/main/java/carcassonne/model/terrain/Terrain.java index 906facd9..ea85bddd 100644 --- a/src/main/java/carcassonne/model/terrain/Terrain.java +++ b/src/main/java/carcassonne/model/terrain/Terrain.java @@ -97,7 +97,7 @@ public void rotateRight() { rotate(GridDirection.indirectNeighbors()); } - private void createMeepleSpots() { // TODO (MEDIUM) Improve code quality. + private void createMeepleSpots() { // TODO (HIGH) Improve code quality. meepleSpots = new LinkedList<>(); meepleSpots.addAll(Arrays.asList(GridDirection.values())); for (GridDirection spot : GridDirection.values()) { // for every spot diff --git a/src/main/java/carcassonne/view/main/menubar/MenuNamesMouseAdapter.java b/src/main/java/carcassonne/view/main/menubar/MenuNamesMouseAdapter.java index 6e347444..b3bfe1fd 100644 --- a/src/main/java/carcassonne/view/main/menubar/MenuNamesMouseAdapter.java +++ b/src/main/java/carcassonne/view/main/menubar/MenuNamesMouseAdapter.java @@ -32,9 +32,16 @@ public MenuNamesMouseAdapter(int player, JMenuItem item) { */ @Override public void mousePressed(MouseEvent e) { - String newName = GameMessage.getUserInput("Please enter a new name for player " + item.getText() + "!"); - GameOptions.getInstance().playerNames[player] = newName; - item.setText(newName); + String name = GameMessage.getUserInput("Please enter a new name for player " + item.getText() + "!"); + if (name != null) { // if not canceled. + if (name.isEmpty()) { + GameMessage.showMessage("Invalid name, please try again!"); + mousePressed(e); // try again + } else { + GameOptions.getInstance().playerNames[player] = name; + item.setText(name); + } + } } } diff --git a/src/main/java/carcassonne/view/secondary/GameMessage.java b/src/main/java/carcassonne/view/secondary/GameMessage.java index 2bbe2836..e3b9a68d 100644 --- a/src/main/java/carcassonne/view/secondary/GameMessage.java +++ b/src/main/java/carcassonne/view/secondary/GameMessage.java @@ -19,12 +19,7 @@ private GameMessage() { * @return the user input string. */ public static String getUserInput(String messageText) { - String input = JOptionPane.showInputDialog(null, messageText, TITLE, JOptionPane.QUESTION_MESSAGE); - if (input != null && input.length() > 0) { - return input; - } - showWarning("You need to enter something!"); - return getUserInput(messageText); + return JOptionPane.showInputDialog(null, messageText, TITLE, JOptionPane.QUESTION_MESSAGE); } /**