diff options
Diffstat (limited to 'ui-console')
8 files changed, 125 insertions, 2 deletions
diff --git a/ui-console/.classpath b/ui-console/.classpath index ec2bc02..cfc0f9a 100644 --- a/ui-console/.classpath +++ b/ui-console/.classpath | |||
| @@ -6,6 +6,8 @@ | |||
| 6 | <attribute name="test" value="true"/> | 6 | <attribute name="test" value="true"/> |
| 7 | </attributes> | 7 | </attributes> |
| 8 | </classpathentry> | 8 | </classpathentry> |
| 9 | <classpathentry kind="src" path="/guess-market-api"/> | ||
| 10 | <classpathentry kind="lib" path="../lib/pico/picocontainer-2.15.2.jar"/> | ||
| 9 | <classpathentry kind="lib" path="../lib/junit/junit-platform-console-standalone-6.1.1.jar"/> | 11 | <classpathentry kind="lib" path="../lib/junit/junit-platform-console-standalone-6.1.1.jar"/> |
| 10 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | 12 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
| 11 | <classpathentry kind="output" path="bin"/> | 13 | <classpathentry kind="output" path="bin"/> |
diff --git a/ui-console/.project b/ui-console/.project index 9e047cb..d620a57 100644 --- a/ui-console/.project +++ b/ui-console/.project | |||
| @@ -2,7 +2,8 @@ | |||
| 2 | <projectDescription> | 2 | <projectDescription> |
| 3 | <name>guess-market-ui-console</name> | 3 | <name>guess-market-ui-console</name> |
| 4 | <comment></comment> | 4 | <comment></comment> |
| 5 | <projects> | 5 | <projects> |
| 6 | <project>guess-market-api</project> | ||
| 6 | </projects> | 7 | </projects> |
| 7 | <buildSpec> | 8 | <buildSpec> |
| 8 | <buildCommand> | 9 | <buildCommand> |
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 06be86d..5158478 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,7 +1,31 @@ | |||
| 1 | package market.guess.ui.console; | 1 | package market.guess.ui.console; |
| 2 | 2 | ||
| 3 | import org.picocontainer.DefaultPicoContainer; | ||
| 4 | import org.picocontainer.behaviors.Caching; | ||
| 5 | |||
| 3 | public class App { | 6 | public class App { |
| 4 | public static void main() { | 7 | public static void main() { |
| 5 | IO.println("Hello World"); | 8 | var pico = new DefaultPicoContainer(new Caching()); |
| 9 | |||
| 10 | pico.addComponent(ConsoleInputProviderFactory.class); | ||
| 11 | pico.addComponent(ConsoleOutputProviderFactory.class); | ||
| 12 | pico.addComponent(Menu.class); | ||
| 13 | |||
| 14 | 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 | // | ||
| 6 | } | 30 | } |
| 7 | } | 31 | } |
diff --git a/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProvider.java b/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProvider.java new file mode 100644 index 0000000..71de3be --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProvider.java | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | import java.util.Scanner; | ||
| 4 | import market.guess.InputProvider; | ||
| 5 | |||
| 6 | public class ConsoleInputProvider implements InputProvider { | ||
| 7 | private final Scanner scanner = new Scanner(System.in); | ||
| 8 | |||
| 9 | @Override | ||
| 10 | public int nextInt() { | ||
| 11 | while (!scanner.hasNextInt()) { | ||
| 12 | scanner.next(); | ||
| 13 | } | ||
| 14 | |||
| 15 | return scanner.nextInt(); | ||
| 16 | } | ||
| 17 | |||
| 18 | @Override | ||
| 19 | public void close() throws Exception { | ||
| 20 | scanner.close(); | ||
| 21 | } | ||
| 22 | } | ||
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 new file mode 100644 index 0000000..d122549 --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | import market.guess.InputProvider; | ||
| 4 | import market.guess.InputProviderFactory; | ||
| 5 | |||
| 6 | public class ConsoleInputProviderFactory implements InputProviderFactory { | ||
| 7 | |||
| 8 | @Override | ||
| 9 | public InputProvider create() { | ||
| 10 | return new ConsoleInputProvider(); | ||
| 11 | } | ||
| 12 | } | ||
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 new file mode 100644 index 0000000..eb9f31b --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | import market.guess.OutputProvider; | ||
| 4 | |||
| 5 | public class ConsoleOutputProvider implements OutputProvider { | ||
| 6 | |||
| 7 | @Override | ||
| 8 | public void print(Object object) { | ||
| 9 | IO.print(object); | ||
| 10 | } | ||
| 11 | |||
| 12 | @Override | ||
| 13 | public void println(Object object) { | ||
| 14 | IO.println(object); | ||
| 15 | } | ||
| 16 | } | ||
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 new file mode 100644 index 0000000..6db91fc --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | import market.guess.OutputProvider; | ||
| 4 | import market.guess.OutputProviderFactory; | ||
| 5 | |||
| 6 | public class ConsoleOutputProviderFactory implements OutputProviderFactory { | ||
| 7 | |||
| 8 | @Override | ||
| 9 | public OutputProvider create() { | ||
| 10 | return new ConsoleOutputProvider(); | ||
| 11 | } | ||
| 12 | } | ||
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 new file mode 100644 index 0000000..a5217a4 --- /dev/null +++ b/ui-console/src/main/java/market/guess/ui/console/Menu.java | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | package market.guess.ui.console; | ||
| 2 | |||
| 3 | import market.guess.OutputProvider; | ||
| 4 | import market.guess.OutputProviderFactory; | ||
| 5 | import org.picocontainer.Startable; | ||
| 6 | |||
| 7 | public class Menu implements Startable { | ||
| 8 | private final OutputProvider outputProvider; | ||
| 9 | |||
| 10 | public Menu(OutputProviderFactory factory) { | ||
| 11 | this.outputProvider = factory.create(); | ||
| 12 | } | ||
| 13 | |||
| 14 | @Override | ||
| 15 | public void start() { | ||
| 16 | printMenu(outputProvider); | ||
| 17 | } | ||
| 18 | |||
| 19 | @Override | ||
| 20 | public void stop() { | ||
| 21 | // TODO Auto-generated method stub | ||
| 22 | throw new UnsupportedOperationException("Unimplemented method 'stop'"); | ||
| 23 | } | ||
| 24 | |||
| 25 | private static void printMenu(OutputProvider provider) { | ||
| 26 | provider.println("[1] Load Marketplace"); | ||
| 27 | provider.println("[2] Save Marketplace"); | ||
| 28 | provider.println("[3] Show All Events"); | ||
| 29 | provider.println("[4] Event Info"); | ||
| 30 | provider.println("[5] Participate In Event"); | ||
| 31 | provider.println("[6] Close Event"); | ||
| 32 | provider.println("[7] Exit"); | ||
| 33 | } | ||
| 34 | } | ||