diff options
Diffstat (limited to 'ui-console/src/main')
10 files changed, 92 insertions, 58 deletions
diff --git a/ui-console/src/main/java/market/guess/ui/console/App.java b/ui-console/src/main/java/market/guess/ui/console/App.java index 5158478..ccffc06 100644 --- a/ui-console/src/main/java/market/guess/ui/console/App.java +++ b/ui-console/src/main/java/market/guess/ui/console/App.java | |||
| @@ -1,5 +1,16 @@ | |||
| 1 | package market.guess.ui.console; | 1 | package market.guess.ui.console; |
| 2 | 2 | ||
| 3 | import market.guess.api.GuessMarketContext; | ||
| 4 | import market.guess.service.LocalGuessMarketContext; | ||
| 5 | import market.guess.service.TradingOperation; | ||
| 6 | import market.guess.service.TradingOperationImpl; | ||
| 7 | import market.guess.service.infrastructure.provider.Loader; | ||
| 8 | import market.guess.service.infrastructure.provider.XMLLoader; | ||
| 9 | import market.guess.service.repository.EventRepository; | ||
| 10 | import market.guess.service.repository.InMemoryEventRepository; | ||
| 11 | import market.guess.service.repository.InMemoryUserRepository; | ||
| 12 | import market.guess.service.repository.UserRepository; | ||
| 13 | import market.guess.ui.console.command.LoadFileMenuCommand; | ||
| 3 | import org.picocontainer.DefaultPicoContainer; | 14 | import org.picocontainer.DefaultPicoContainer; |
| 4 | import org.picocontainer.behaviors.Caching; | 15 | import org.picocontainer.behaviors.Caching; |
| 5 | 16 | ||
| @@ -7,25 +18,19 @@ public class App { | |||
| 7 | public static void main() { | 18 | public static void main() { |
| 8 | var pico = new DefaultPicoContainer(new Caching()); | 19 | var pico = new DefaultPicoContainer(new Caching()); |
| 9 | 20 | ||
| 10 | pico.addComponent(ConsoleInputProviderFactory.class); | 21 | pico.addComponent(EventRepository.class, InMemoryEventRepository.class); |
| 11 | pico.addComponent(ConsoleOutputProviderFactory.class); | 22 | pico.addComponent(UserRepository.class, InMemoryUserRepository.class); |
| 23 | |||
| 24 | pico.addComponent(TradingOperation.class, TradingOperationImpl.class); | ||
| 25 | pico.addComponent(Loader.class, XMLLoader.class); | ||
| 26 | pico.addComponent(GuessMarketContext.class, LocalGuessMarketContext.class); | ||
| 27 | |||
| 28 | pico.addComponent(LoadFileMenuCommand.class); | ||
| 29 | |||
| 30 | pico.addComponent(InputProvider.class, ConsoleInputProvider.class); | ||
| 31 | pico.addComponent(OutputProvider.class, ConsoleOutputProvider.class); | ||
| 12 | pico.addComponent(Menu.class); | 32 | pico.addComponent(Menu.class); |
| 13 | 33 | ||
| 14 | pico.start(); | 34 | pico.start(); |
| 15 | // var context = new LocalGuessMarketContext(); | ||
| 16 | // var factory = new ConsoleInputProviderFactory(); | ||
| 17 | // var oFactory = new ConsoleOutputProviderFactory(); | ||
| 18 | // | ||
| 19 | // context.LoadAsync(); | ||
| 20 | // printMenu(oFactory.create()); | ||
| 21 | // | ||
| 22 | // try (var provider = factory.create()) { | ||
| 23 | // var input = provider.nextInt(); | ||
| 24 | // while (input != 0) { | ||
| 25 | // input = provider.nextInt(); | ||
| 26 | // } | ||
| 27 | // } catch (Exception ex) { | ||
| 28 | // ex.printStackTrace(); | ||
| 29 | // | ||
| 30 | } | 35 | } |
| 31 | } | 36 | } |
diff --git a/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java b/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java deleted file mode 100644 index a7433b7..0000000 --- a/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | public class ConsoleInputProviderFactory implements InputProviderFactory { | ||
| 4 | |||
| 5 | @Override | ||
| 6 | public InputProvider create() { | ||
| 7 | return new ConsoleInputProvider(); | ||
| 8 | } | ||
| 9 | } | ||
diff --git a/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java b/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java index 84017ac..3009d95 100644 --- a/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java +++ b/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java | |||
| @@ -11,4 +11,9 @@ public class ConsoleOutputProvider implements OutputProvider { | |||
| 11 | public void println(Object object) { | 11 | public void println(Object object) { |
| 12 | IO.println(object); | 12 | IO.println(object); |
| 13 | } | 13 | } |
| 14 | |||
| 15 | @Override | ||
| 16 | public void newLine() { | ||
| 17 | IO.println(""); | ||
| 18 | } | ||
| 14 | } | 19 | } |
diff --git a/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java b/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java deleted file mode 100644 index 3665df3..0000000 --- a/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | public class ConsoleOutputProviderFactory implements OutputProviderFactory { | ||
| 4 | |||
| 5 | @Override | ||
| 6 | public OutputProvider create() { | ||
| 7 | return new ConsoleOutputProvider(); | ||
| 8 | } | ||
| 9 | } | ||
diff --git a/ui-console/src/main/java/market/guess/ui/console/InputProviderFactory.java b/ui-console/src/main/java/market/guess/ui/console/InputProviderFactory.java deleted file mode 100644 index dcbb1c6..0000000 --- a/ui-console/src/main/java/market/guess/ui/console/InputProviderFactory.java +++ /dev/null | |||
| @@ -1,5 +0,0 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | public interface InputProviderFactory { | ||
| 4 | InputProvider create(); | ||
| 5 | } | ||
diff --git a/ui-console/src/main/java/market/guess/ui/console/Menu.java b/ui-console/src/main/java/market/guess/ui/console/Menu.java index 81dade0..1f3f2be 100644 --- a/ui-console/src/main/java/market/guess/ui/console/Menu.java +++ b/ui-console/src/main/java/market/guess/ui/console/Menu.java | |||
| @@ -1,17 +1,24 @@ | |||
| 1 | package market.guess.ui.console; | 1 | package market.guess.ui.console; |
| 2 | 2 | ||
| 3 | import java.util.List; | ||
| 4 | import market.guess.ui.console.command.MenuCommand; | ||
| 3 | import org.picocontainer.Startable; | 5 | import org.picocontainer.Startable; |
| 4 | 6 | ||
| 5 | public class Menu implements Startable { | 7 | public final class Menu implements Startable { |
| 6 | private final OutputProvider outputProvider; | 8 | private final OutputProvider out; |
| 9 | private final InputProvider in; | ||
| 10 | private final List<MenuCommand> commands; | ||
| 7 | 11 | ||
| 8 | public Menu(OutputProviderFactory factory) { | 12 | public Menu( |
| 9 | this.outputProvider = factory.create(); | 13 | List<MenuCommand> commands, OutputProvider outputProvider, InputProvider inputProvider) { |
| 14 | this.commands = commands; | ||
| 15 | this.out = outputProvider; | ||
| 16 | this.in = inputProvider; | ||
| 10 | } | 17 | } |
| 11 | 18 | ||
| 12 | @Override | 19 | @Override |
| 13 | public void start() { | 20 | public void start() { |
| 14 | printMenu(outputProvider); | 21 | printMenu(); |
| 15 | } | 22 | } |
| 16 | 23 | ||
| 17 | @Override | 24 | @Override |
| @@ -19,13 +26,10 @@ public class Menu implements Startable { | |||
| 19 | // Do nothing. | 26 | // Do nothing. |
| 20 | } | 27 | } |
| 21 | 28 | ||
| 22 | private static void printMenu(OutputProvider provider) { | 29 | private void printMenu() { |
| 23 | provider.println("[1] Load Marketplace"); | 30 | out.newLine(); |
| 24 | provider.println("[2] Save Marketplace"); | 31 | for (var command : commands) { |
| 25 | provider.println("[3] Show All Events"); | 32 | out.println(" %d -- %s".formatted(command.getIndex(), command.getName())); |
| 26 | provider.println("[4] Event Info"); | 33 | } |
| 27 | provider.println("[5] Participate In Event"); | ||
| 28 | provider.println("[6] Close Event"); | ||
| 29 | provider.println("[7] Exit"); | ||
| 30 | } | 34 | } |
| 31 | } | 35 | } |
diff --git a/ui-console/src/main/java/market/guess/ui/console/OutputProvider.java b/ui-console/src/main/java/market/guess/ui/console/OutputProvider.java index 57ff001..e49bec5 100644 --- a/ui-console/src/main/java/market/guess/ui/console/OutputProvider.java +++ b/ui-console/src/main/java/market/guess/ui/console/OutputProvider.java | |||
| @@ -3,5 +3,7 @@ package market.guess.ui.console; | |||
| 3 | public interface OutputProvider { | 3 | public interface OutputProvider { |
| 4 | void print(Object object); | 4 | void print(Object object); |
| 5 | 5 | ||
| 6 | void newLine(); | ||
| 7 | |||
| 6 | void println(Object object); | 8 | void println(Object object); |
| 7 | } | 9 | } |
diff --git a/ui-console/src/main/java/market/guess/ui/console/OutputProviderFactory.java b/ui-console/src/main/java/market/guess/ui/console/OutputProviderFactory.java deleted file mode 100644 index 6d6601f..0000000 --- a/ui-console/src/main/java/market/guess/ui/console/OutputProviderFactory.java +++ /dev/null | |||
| @@ -1,5 +0,0 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | public interface OutputProviderFactory { | ||
| 4 | OutputProvider create(); | ||
| 5 | } | ||
diff --git a/ui-console/src/main/java/market/guess/ui/console/command/LoadFileMenuCommand.java b/ui-console/src/main/java/market/guess/ui/console/command/LoadFileMenuCommand.java new file mode 100644 index 0000000..eddc68f --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/command/LoadFileMenuCommand.java | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | package market.guess.ui.console.command; | ||
| 2 | |||
| 3 | import market.guess.api.GuessMarketContext; | ||
| 4 | import market.guess.ui.console.OutputProvider; | ||
| 5 | |||
| 6 | public final class LoadFileMenuCommand implements MenuCommand { | ||
| 7 | private final GuessMarketContext context; | ||
| 8 | private final OutputProvider out; | ||
| 9 | |||
| 10 | public LoadFileMenuCommand(GuessMarketContext context, OutputProvider out) { | ||
| 11 | this.context = context; | ||
| 12 | this.out = out; | ||
| 13 | } | ||
| 14 | |||
| 15 | @Override | ||
| 16 | public int getIndex() { | ||
| 17 | return 1; | ||
| 18 | } | ||
| 19 | |||
| 20 | @Override | ||
| 21 | public String getName() { | ||
| 22 | return "Load events from file"; | ||
| 23 | } | ||
| 24 | |||
| 25 | @Override | ||
| 26 | public boolean allowed() { | ||
| 27 | return true; | ||
| 28 | } | ||
| 29 | |||
| 30 | @Override | ||
| 31 | public void execute() { | ||
| 32 | // TODO Auto-generated method stub | ||
| 33 | throw new UnsupportedOperationException("Unimplemented method 'execute'"); | ||
| 34 | } | ||
| 35 | } | ||
diff --git a/ui-console/src/main/java/market/guess/ui/console/command/MenuCommand.java b/ui-console/src/main/java/market/guess/ui/console/command/MenuCommand.java new file mode 100644 index 0000000..8a28dfe --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/command/MenuCommand.java | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | package market.guess.ui.console.command; | ||
| 2 | |||
| 3 | public interface MenuCommand { | ||
| 4 | int getIndex(); | ||
| 5 | |||
| 6 | String getName(); | ||
| 7 | |||
| 8 | boolean allowed(); | ||
| 9 | |||
| 10 | void execute(); | ||
| 11 | } | ||