Pr_robot_factory/ui/UI.java

109 lines
3.5 KiB
Java
Raw Normal View History

2022-12-08 14:58:44 +01:00
package ui;
2023-01-09 23:32:30 +01:00
2023-01-06 22:55:33 +01:00
import domain.Robot;
import facade.FactorySystem;
import infrastructure.Persistenz;
import java.util.Scanner;
2022-12-08 14:58:44 +01:00
public class UI {
2022-12-14 09:54:18 +01:00
private FactorySystem fs;
private String name;
Scanner sc = new Scanner(System.in);
public UI (FactorySystem fs){
this.fs = fs;
hauptmenü();
}
public UI (String name){
this.name = name;
if(Persistenz.existsSavedData(name)){
try{
this.fs = (FactorySystem) Persistenz.loadFactoryData(name);
}catch(Exception ignored){
}
}else{
this.fs = new FactorySystem(name);
}
}
//starting screen
private void hauptmenü() {
mainloop:
while(true){
System.out.println();
2023-01-06 22:55:33 +01:00
System.out.println("____________________________");
System.out.println("Sie haben folgende optionen:");
2023-01-06 22:55:33 +01:00
System.out.println("-1- --- show all robots ----");
System.out.println("-2- --- build new robot ----");
System.out.println("-3- ------- use robot ------");
System.out.println("-4- --------- Exit ---------");
System.out.print(" > ");
//User options
try{
int input = Integer.parseInt(sc.nextLine());
switch(input){
case 1:
listAllRobots();break;
case 2: buildNewRobot();break;
2023-01-06 22:55:33 +01:00
case 3: useRobot();break;
case 4: break mainloop;
default:
System.out.println("this is an invalid option"); break;
}
}catch(NumberFormatException e){
System.out.println("invalid input");
}
}
System.out.println("Good Bye");
}
//display all existing robots
private void listAllRobots(){
String[] listOfAll = fs.getAllRobots();
if(listOfAll.length > 0){
System.out.println("These robtos exist right now:");
for (String s: listOfAll) {
System.out.println(s);
}
}else{
System.out.println("There are no robots yet.");
}
}
//create a new robot
private void buildNewRobot(){
System.out.println("What shall the name of the robot be?");
System.out.print(" > ");
String name = sc.nextLine();
System.out.println("Which type of robot do u want?");
System.out.println(" [0] for R2D2 and [1] for C3PO");
System.out.print(" > ");
//user enters which type of robot he wants
int type = Integer.parseInt(sc.nextLine());
if(fs.buildNewRobot(name, type)){
switch (type) {
case 0 -> System.out.println("Created new Robot of type R2D2 with the name " + name);
case 1 -> System.out.println("Created new Robot of type C3PO with the name " + name);
}
}else{
System.out.println("Anlegen des Roboters fehlgeschlagen");
}
}
//let the robots sort
2023-01-06 22:55:33 +01:00
private void useRobot(){
System.out.println("Which robot do you want to use?");
listAllRobots();
System.out.print(" ID > ");
int input = Integer.parseInt(sc.nextLine());
// Change the searchForRobot Methode (safety)
2023-01-06 22:55:33 +01:00
Robot r = fs.searchForRobot(input);
System.out.println("You choose " + r.getName() + " of type " + r.getType());
System.out.println("Yout have following options");
mainloop:
while(true){
}
}
2022-12-08 14:58:44 +01:00
}