Merge remote-tracking branch 'origin/main'

# Conflicts:
#	src/TextOutput.java
This commit is contained in:
Leonardo Brandenberger 2021-11-08 23:01:26 +01:00
commit 6e921233df
11 changed files with 58 additions and 28 deletions

View File

@ -2,9 +2,13 @@ import java.util.Scanner;
public class TextInput { public class TextInput {
private static final Scanner sc = new Scanner(""); private static final Scanner sc = new Scanner(System.in);
public static String[] checkForInput() { public static String[] checkForInput() {
return sc.nextLine().split(" "); return sc.nextLine().split(" ");
} }
public static String getTextInput() {
return sc.nextLine();
}
} }

View File

@ -2,9 +2,11 @@ import java.util.ArrayList;
public class TextLogik { public class TextLogik {
private final Text text; private final Text text;
private final TextOutput textOutput;
public TextLogik() { public TextLogik() {
text = new Text(); text = new Text();
textOutput = new TextOutput();
String[] command; String[] command;
do { do {
@ -12,22 +14,43 @@ public class TextLogik {
switch (command[0]) { switch (command[0]) {
case "ADD": 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; break;
case "DEL": case "DEL":
// TODO Hier Delete Funktion hinzufügen.
break; break;
case "Dummy": case "Dummy":
text.dummy(); text.dummy();
break; break;
case "EXIT": case "EXIT":
break; break;
case "FORMAT RAW": case "FORMAT":
break; if (command.length > 1 && "RAW".equals(command[1])) {
case "FORMAT FIX": textOutput.formatRaw();
} else if (command.length > 2 && "FIX".equals(command[1]) && isNumeric(command[2])) {
textOutput.formatFix(Integer.parseInt(command[2]));
} else {
textOutput.errorInvalidCommand();
}
break; break;
case "INDEX": case "INDEX":
ArrayList<String> Index = text.index(); ArrayList<String> Index = text.index();
break; break;
case "PRINT": case "PRINT":
textOutput.print(text.getText());
break; break;
case "REPLACE": case "REPLACE":
break; break;
@ -36,7 +59,11 @@ public class TextLogik {
break; break;
} }
} while ("EXIT".equals(command[0])); } while (!"EXIT".equals(command[0]));
}
private boolean isNumeric(String str) {
return str.matches("\\d+");
} }
} }

View File

@ -7,8 +7,7 @@ public class TextOutput {
public void print(ArrayList<String> text) { public void print(ArrayList<String> text) {
if (formatRaw) { if (formatRaw) {
printFormated(text); printFormated(text);
} } else {
else {
printUnformated(text); printUnformated(text);
} }
} }
@ -19,6 +18,7 @@ public class TextOutput {
} }
} }
private void printUnformated(ArrayList<String> text) { private void printUnformated(ArrayList<String> text) {
for (String paragraph : text) { for (String paragraph : text) {
String[] words = paragraph.split(" "); String[] words = paragraph.split(" ");
@ -45,9 +45,8 @@ public class TextOutput {
} }
while (letterLenght >= columnWidth); while (letterLenght >= columnWidth);
} } else {
else { if (word.length() >= columnWidth - currentLength) {
if (word.length() >= columnWidth - currentLength && !(currentLength == 0)) {
currentLength = 0; currentLength = 0;
System.out.println(); System.out.println();
} }
@ -67,6 +66,7 @@ public class TextOutput {
formatRaw = false; formatRaw = false;
columnWidth = length; columnWidth = length;
} }
public void errorInvalidString() { public void errorInvalidString() {
System.err.println("Invalid String"); System.err.println("Invalid String");
} }

View File

@ -1,2 +0,0 @@
public class SystemInputTest {
}

View File

@ -1,2 +0,0 @@
public class TextEditorTest {
}

10
test/TextInputTest.java Normal file
View File

@ -0,0 +1,10 @@
import org.junit.jupiter.api.Test;
class TextInputTest {
@Test
public void inputTest() {
}
}

View File

@ -1,12 +1,8 @@
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import javax.swing.*;
import java.util.ArrayList; import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
class TextOutputTest { class TextOutputTest {
TextOutput textOutput; TextOutput textOutput;
ArrayList<String> text; ArrayList<String> text;
@ -28,8 +24,5 @@ class TextOutputTest {
@Test @Test
public void print() { public void print() {
textOutput.print(text); textOutput.print(text);
} }
} }