summaryrefslogtreecommitdiffstats
path: root/ui-console
diff options
context:
space:
mode:
Diffstat (limited to 'ui-console')
-rw-r--r--ui-console/.classpath1
-rw-r--r--ui-console/.project1
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/App.java39
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleInputProviderFactory.java9
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProvider.java5
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/ConsoleOutputProviderFactory.java9
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/InputProviderFactory.java5
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/Menu.java30
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/OutputProvider.java2
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/OutputProviderFactory.java5
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/command/LoadFileMenuCommand.java35
-rw-r--r--ui-console/src/main/java/market/guess/ui/console/command/MenuCommand.java11
12 files changed, 94 insertions, 58 deletions
diff --git a/ui-console/.classpath b/ui-console/.classpath
index cfc0f9a..47b6ad0 100644
--- a/ui-console/.classpath
+++ b/ui-console/.classpath
@@ -7,6 +7,7 @@
7 </attributes> 7 </attributes>
8 </classpathentry> 8 </classpathentry>
9 <classpathentry kind="src" path="/guess-market-api"/> 9 <classpathentry kind="src" path="/guess-market-api"/>
10 <classpathentry kind="src" path="/guess-market-service"/>
10 <classpathentry kind="lib" path="../lib/pico/picocontainer-2.15.2.jar"/> 11 <classpathentry kind="lib" path="../lib/pico/picocontainer-2.15.2.jar"/>
11 <classpathentry kind="lib" path="../lib/junit/junit-platform-console-standalone-6.1.1.jar"/> 12 <classpathentry kind="lib" path="../lib/junit/junit-platform-console-standalone-6.1.1.jar"/>
12 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 13 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
diff --git a/ui-console/.project b/ui-console/.project
index d620a57..ca461d9 100644
--- a/ui-console/.project
+++ b/ui-console/.project
@@ -4,6 +4,7 @@
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 <project>guess-market-api</project> 6 <project>guess-market-api</project>
7 <project>guess-market-service</project>
7 </projects> 8 </projects>
8 <buildSpec> 9 <buildSpec>
9 <buildCommand> 10 <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 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 @@
1package market.guess.ui.console; 1package market.guess.ui.console;
2 2
3import market.guess.api.GuessMarketContext;
4import market.guess.service.LocalGuessMarketContext;
5import market.guess.service.TradingOperation;
6import market.guess.service.TradingOperationImpl;
7import market.guess.service.infrastructure.provider.Loader;
8import market.guess.service.infrastructure.provider.XMLLoader;
9import market.guess.service.repository.EventRepository;
10import market.guess.service.repository.InMemoryEventRepository;
11import market.guess.service.repository.InMemoryUserRepository;
12import market.guess.service.repository.UserRepository;
13import market.guess.ui.console.command.LoadFileMenuCommand;
3import org.picocontainer.DefaultPicoContainer; 14import org.picocontainer.DefaultPicoContainer;
4import org.picocontainer.behaviors.Caching; 15import 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 @@
1package market.guess.ui.console;
2
3public 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 @@
1package market.guess.ui.console;
2
3public 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 @@
1package market.guess.ui.console;
2
3public 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 @@
1package market.guess.ui.console; 1package market.guess.ui.console;
2 2
3import java.util.List;
4import market.guess.ui.console.command.MenuCommand;
3import org.picocontainer.Startable; 5import org.picocontainer.Startable;
4 6
5public class Menu implements Startable { 7public 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;
3public interface OutputProvider { 3public 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 @@
1package market.guess.ui.console;
2
3public 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 @@
1package market.guess.ui.console.command;
2
3import market.guess.api.GuessMarketContext;
4import market.guess.ui.console.OutputProvider;
5
6public 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 @@
1package market.guess.ui.console.command;
2
3public interface MenuCommand {
4 int getIndex();
5
6 String getName();
7
8 boolean allowed();
9
10 void execute();
11}