diff --git a/src/TextInput.java b/src/TextInput.java index 61192dd..d4abab5 100644 --- a/src/TextInput.java +++ b/src/TextInput.java @@ -2,9 +2,13 @@ import java.util.Scanner; public class TextInput { - private static final Scanner sc = new Scanner(""); + private static final Scanner sc = new Scanner(System.in); public static String[] checkForInput() { - return sc.nextLine().split(""); + return sc.nextLine().split(" "); + } + + public static String getTextInput() { + return sc.nextLine(); } } diff --git a/src/TextLogik.java b/src/TextLogik.java index 58b1ef7..aea3198 100644 --- a/src/TextLogik.java +++ b/src/TextLogik.java @@ -2,9 +2,11 @@ import java.util.ArrayList; public class TextLogik { private final Text text; + private final TextOutput textOutput; public TextLogik() { text = new Text(); + textOutput = new TextOutput(); String[] command; do { @@ -12,22 +14,43 @@ public class TextLogik { switch (command[0]) { case "ADD": + + if (command.length == 1) { + text.add(TextInput.getTextInput()); + } else if (isNumeric(command[1])) { + int line = Integer.parseInt(command[1]); + + text.add(line, TextInput.getTextInput()); + } else { + textOutput.errorInvalidCommand(); + } + break; case "DEL": + // TODO Hier Delete Funktion hinzufügen. break; case "Dummy": text.dummy(); break; case "EXIT": break; - case "FORMAT RAW": - break; - case "FORMAT FIX": + case "FORMAT": + if (command.length > 1 && "RAW".equals(command[1])) { + textOutput.formatRaw(); + } else if (command.length > 2 && "FIX".equals(command[1]) && isNumeric(command[2])) { + textOutput.formatFix(Integer.parseInt(command[2])); + } else { + textOutput.errorInvalidCommand(); + } + break; case "INDEX": ArrayList Index = text.index(); break; case "PRINT": + + textOutput.print(text.getText()); + break; case "REPLACE": break; @@ -36,7 +59,11 @@ public class TextLogik { break; } - } while ("EXIT".equals(command[0])); + } while (!"EXIT".equals(command[0])); + } + + private boolean isNumeric(String str) { + return str.matches("\\d+"); } } diff --git a/src/TextOutput.java b/src/TextOutput.java index f9ccee9..6e957eb 100644 --- a/src/TextOutput.java +++ b/src/TextOutput.java @@ -7,8 +7,7 @@ public class TextOutput { public void print(ArrayList text) { if (formatRaw) { printFormated(text); - } - else { + } else { printUnformated(text); } } @@ -19,6 +18,7 @@ public class TextOutput { } } + private void printUnformated(ArrayList text) { for (String paragraph : text) { String[] words = paragraph.split(" "); @@ -39,14 +39,13 @@ public class TextOutput { currentLength++; } } - if(!(letterLenght == 0)){ + if (!(letterLenght == 0)) { System.out.println(); } } while (letterLenght >= columnWidth); - } - else { + } else { if (word.length() >= columnWidth - currentLength) { currentLength = 0; System.out.println(); @@ -64,9 +63,10 @@ public class TextOutput { } public void formatFix(int length) { - formatRaw = false; - columnWidth = length; + formatRaw = false; + columnWidth = length; } + public void errorInvalidString() { System.err.println("Invalid String"); } diff --git a/test/SystemInputTest.java b/test/SystemInputTest.java deleted file mode 100644 index 9f9b8af..0000000 --- a/test/SystemInputTest.java +++ /dev/null @@ -1,2 +0,0 @@ -public class SystemInputTest { -} diff --git a/test/TextEditorTest.java b/test/TextEditorTest.java deleted file mode 100644 index 9e3bd87..0000000 --- a/test/TextEditorTest.java +++ /dev/null @@ -1,2 +0,0 @@ -public class TextEditorTest { -} diff --git a/test/TextInputTest.java b/test/TextInputTest.java new file mode 100644 index 0000000..10c5df2 --- /dev/null +++ b/test/TextInputTest.java @@ -0,0 +1,10 @@ +import org.junit.jupiter.api.Test; + +class TextInputTest { + + @Test + public void inputTest() { + + } + +} \ No newline at end of file diff --git a/test/TextOutputTest.java b/test/TextOutputTest.java index 341cd8f..0e007ce 100644 --- a/test/TextOutputTest.java +++ b/test/TextOutputTest.java @@ -1,18 +1,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import javax.swing.*; - import java.util.ArrayList; -import static org.junit.jupiter.api.Assertions.*; - class TextOutputTest { TextOutput textOutput; ArrayList text; @BeforeEach - public void setup(){ + public void setup() { textOutput = new TextOutput(); textOutput.formatFix(9); textOutput.formatRaw(); @@ -25,10 +21,7 @@ class TextOutputTest { } @Test - public void print(){ - textOutput.print(text); - + public void print() { + textOutput.print(text); } - - } \ No newline at end of file