summaryrefslogtreecommitdiffstats
path: root/ui-console
diff options
context:
space:
mode:
Diffstat (limited to 'ui-console')
-rw-r--r--ui-console/.classpath2
-rw-r--r--ui-console/.project3
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/App.java26
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleInputProvider.java22
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java12
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java16
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java12
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/Menu.java34
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 @@
1package market.guess.ui.console; 1package market.guess.ui.console;
2 2
3import org.picocontainer.DefaultPicoContainer;
4import org.picocontainer.behaviors.Caching;
5
3public class App { 6public 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 @@
1package market.guess.ui.console;
2
3import java.util.Scanner;
4import market.guess.InputProvider;
5
6public 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 @@
1package market.guess.ui.console;
2
3import market.guess.InputProvider;
4import market.guess.InputProviderFactory;
5
6public 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 @@
1package market.guess.ui.console;
2
3import market.guess.OutputProvider;
4
5public 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 @@
1package market.guess.ui.console;
2
3import market.guess.OutputProvider;
4import market.guess.OutputProviderFactory;
5
6public 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 @@
1package market.guess.ui.console;
2
3import market.guess.OutputProvider;
4import market.guess.OutputProviderFactory;
5import org.picocontainer.Startable;
6
7public 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}