summaryrefslogtreecommitdiff
path: root/src/main/java/design/controller/userinput/menus/UserSettings.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-16 02:01:58 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-16 02:01:58 -0500
commit969b8071dd799dfaed939e10bf77b8a1ad42f9dc (patch)
tree214016dc742a155512fbb2f851cf589509f3b361 /src/main/java/design/controller/userinput/menus/UserSettings.java
parentcf59d52cba70742f1d4098c38b4c7a798b3d89fa (diff)
parent43530df067b1132b944e9619bdf60b72264829ec (diff)
downloaddesignproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.tar.gz
designproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.tar.bz2
designproject-design-6-969b8071dd799dfaed939e10bf77b8a1ad42f9dc.zip
Merge branch 'main' into import-exportimport-export
# Conflicts: # data/personaldb.json # src/main/java/design/controller/userinput/menus/MainMenu.java # src/main/java/design/persistence/JSONLeagueDatabase.java # src/main/java/design/persistence/JSONPersonalDatabase.java # src/test/java/design/model/ClubTest.java # src/test/java/design/model/GolferTest.java
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/UserSettings.java58
1 files changed, 34 insertions, 24 deletions
diff --git a/src/main/java/design/controller/userinput/menus/UserSettings.java b/src/main/java/design/controller/userinput/menus/UserSettings.java
index 47b0a5b..1b2082d 100644
--- a/src/main/java/design/controller/userinput/menus/UserSettings.java
+++ b/src/main/java/design/controller/userinput/menus/UserSettings.java
@@ -12,6 +12,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
+import design.model.undo.UndoManager;
+
public class UserSettings extends Menu {
private final Golfer golfer = Session.getCurrentGolfer();
@@ -25,6 +27,8 @@ public class UserSettings extends Menu {
@Override
public List<MenuOption> getMenuOptions() {
+ boolean guest = Session.isGuest();
+
var opts = new ArrayList<MenuOption>();
opts.add(new MenuOption("return to main menu", () -> new MainMenu().present()));
@@ -34,31 +38,37 @@ public class UserSettings extends Menu {
new SelectUser(doAfter).present();
}));
- opts.add(new MenuOption("set password...", () -> {
- System.out.print("Enter password: ");
- var password = scanner.nextLine();
-
- golfer.setPassword(password);
- try {
- personalDatabase.updateGolfer(golfer);
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- }
- this.present();
- }));
+ if (!guest) {
+ opts.add(new MenuOption("set password...", () -> {
+ UndoManager.instance().capture(golfer, "Change password for @" + golfer.getUsername());
- opts.add(new MenuOption("set full name...", () -> {
- System.out.print("Enter full name: ");
- var fullName = scanner.nextLine();
-
- golfer.setFullName(fullName);
- try {
- personalDatabase.updateGolfer(golfer);
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- }
- this.present();
- }));
+ System.out.print("Enter password: ");
+ var password = scanner.nextLine();
+
+ golfer.setPassword(password);
+ try {
+ personalDatabase.updateGolfer(golfer);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ this.present();
+ }));
+
+ opts.add(new MenuOption("set full name...", () -> {
+ UndoManager.instance().capture(golfer, "Change full name for @" + golfer.getUsername());
+
+ System.out.print("Enter full name: ");
+ var fullName = scanner.nextLine();
+
+ golfer.setFullName(fullName);
+ try {
+ personalDatabase.updateGolfer(golfer);
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ this.present();
+ }));
+ }
return opts;
}