diff options
| author | Tyler Ferrari <69283684+Sowgro@users.noreply.github.com> | 2025-10-05 14:29:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-05 14:29:39 -0400 |
| commit | 7ce2647830e34c61a479eebc69b679f7d20df94a (patch) | |
| tree | 18fdc4d99f8f5b23baf156e7753d352607e619d4 /src/main/java/design/controller/userinput/Menu.java | |
| parent | c5cbe4ffd56b7c96d85dc1676387993c6c15af7b (diff) | |
| parent | 75ef9ca83d43051616c0083af85eacbd71b4b4b6 (diff) | |
| download | designproject-design-6-7ce2647830e34c61a479eebc69b679f7d20df94a.tar.gz designproject-design-6-7ce2647830e34c61a479eebc69b679f7d20df94a.tar.bz2 designproject-design-6-7ce2647830e34c61a479eebc69b679f7d20df94a.zip | |
Merge pull request #3 from RIT-SWEN-262/user-input-dev
User input dev
Diffstat (limited to 'src/main/java/design/controller/userinput/Menu.java')
| -rw-r--r-- | src/main/java/design/controller/userinput/Menu.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/design/controller/userinput/Menu.java b/src/main/java/design/controller/userinput/Menu.java new file mode 100644 index 0000000..7677793 --- /dev/null +++ b/src/main/java/design/controller/userinput/Menu.java @@ -0,0 +1,30 @@ +package design.controller.userinput; + +import java.util.*; + +public abstract class Menu { + public abstract String getTitle(); + + public abstract List<MenuOption> getMenuOptions(); + + public void present() { + var menuOptions = getMenuOptions(); + System.out.printf("-- %s --\n", getTitle().toUpperCase()); + for (int i = 0; i < menuOptions.size(); i++) { + MenuOption menuOption = menuOptions.get(i); + System.out.printf("%s: %s\n", i, menuOption.getName()); + } + Scanner sc = new Scanner(System.in); + var line = sc.nextLine(); + var split = line.split(" "); + + try { + int i = Integer.parseInt(split[0]); + menuOptions.get(i).onCommand(Arrays.copyOfRange(split, 1, split.length)); + } catch (Exception ex) { + System.err.printf("Invalid option \"%s\"\n", line); + present(); + } + } + +} |
