diff --git a/docs/PM2_ClassDiagram.drawio b/docs/PM2_ClassDiagram.drawio
index f8994f4..3c57fb8 100644
--- a/docs/PM2_ClassDiagram.drawio
+++ b/docs/PM2_ClassDiagram.drawio
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/Text.java b/src/Text.java
index a4e5f59..0f9c165 100644
--- a/src/Text.java
+++ b/src/Text.java
@@ -25,9 +25,6 @@ public class Text {
* @return returns true if the given paragraph exists and is added successfully
*/
public boolean add(int paragraphNumber, String text) {
- if(text.length() < 1) {
- return false;
- }
if (paragraphExists(paragraphNumber)) {
this.text.add((paragraphNumber - 1), text);
return true;
@@ -42,9 +39,6 @@ public class Text {
* @return returns true if the paragraph is added successfully
*/
public boolean add(String text) {
- if(text.length() < 1) {
- return false;
- }
this.text.add(text.replaceAll("[^A-Za-z0-9 .,:?!\"'-]",""));
return true;
}
@@ -102,8 +96,11 @@ public class Text {
* @return returns true if the paragraph is changed successfully
*/
public boolean replace(String oldChar, String newChar) {
- text.set((text.size() - 1), text.get(text.size() - 1).replace(oldChar, newChar));
- return true;
+ if(paragraphExists((text.size()))) {
+ text.set((text.size() - 1), text.get(text.size() - 1).replace(oldChar, newChar));
+ return true;
+ }
+ return false;
}
/**
@@ -127,8 +124,11 @@ public class Text {
* @return True: if paragraph has been deleted.
*/
public boolean del() {
- text.remove(text.size() - 1);
- return true;
+ if(paragraphExists(text.size())){
+ text.remove(text.size() - 1);
+ return true;
+ }
+ return false;
}
/**
diff --git a/src/TextInput.java b/src/TextInput.java
index d4abab5..f7f68d9 100644
--- a/src/TextInput.java
+++ b/src/TextInput.java
@@ -5,7 +5,7 @@ public class TextInput {
private static final Scanner sc = new Scanner(System.in);
public static String[] checkForInput() {
- return sc.nextLine().split(" ");
+ return sc.nextLine().toUpperCase().split(" ");
}
public static String getTextInput() {
diff --git a/src/TextLogik.java b/src/TextLogik.java
index a1f84fa..9bd8f88 100644
--- a/src/TextLogik.java
+++ b/src/TextLogik.java
@@ -12,21 +12,25 @@ public class TextLogik {
textOutput = new TextOutput();
String[] command;
- textOutput.userInfoOutput("######################");
+ textOutput.userInfoOutput("#######################");
textOutput.userInfoOutput("#WELCOME TO THE EDITOR#");
- textOutput.userInfoOutput("######################");
+ textOutput.userInfoOutput("#######################");
do {
textOutput.userInfoOutput("Please enter a Command: ");
command = TextInput.checkForInput();
switch (command[0]) {
case "ADD":
- textOutput.userInfoOutput("Please enter your text: ");
+ String inputText = "";
+ while(inputText.length() == 0) {
+ textOutput.userInfoOutput("Please enter your text: ");
+ inputText = TextInput.getTextInput();
+ }
if (command.length == 1) {
- checkIfSuccess(text.add(TextInput.getTextInput()));
+ checkIfSuccess(text.add(inputText));
} else if (isNumeric(command[1])) {
int line = Integer.parseInt(command[1]);
- checkIfSuccess(text.add(line, TextInput.getTextInput()));
+ checkIfSuccess(text.add(line, inputText));
} else {
textOutput.errorInvalidCommand();
}
@@ -71,13 +75,19 @@ public class TextLogik {
textOutput.print(text.getText());
break;
case "REPLACE":
- textOutput.userInfoOutput("Please enter your text to replace: ");
- if (command.length == 1){
- checkIfSuccess(text.replace(TextInput.getTextInput(), TextInput.getTextInput()));
- }else if(isNumeric(command[1])) {
+ String oldChar = "";
+ while (oldChar.length() == 0) {
+ textOutput.userInfoOutput("Please enter your text to replace: ");
+ oldChar = TextInput.getTextInput();
+ }
+ textOutput.userInfoOutput("Please enter the new text: ");
+ String newChar = TextInput.getTextInput();
+ if (command.length == 1) {
+ checkIfSuccess(text.replace(oldChar, newChar));
+ } else if (isNumeric(command[1])) {
int line = Integer.parseInt(command[1]);
- checkIfSuccess(text.replace(line, TextInput.getTextInput(), TextInput.getTextInput()));
- }else {
+ checkIfSuccess(text.replace(line, oldChar, newChar));
+ } else {
textOutput.errorInvalidCommand();
}
@@ -101,9 +111,9 @@ public class TextLogik {
}
private void checkIfSuccess(boolean method) {
- if(method) {
+ if (method) {
textOutput.userInfoOutput("Command was successfull");
- }else {
+ } else {
textOutput.errorInvalidParagraph();
}
}
diff --git a/src/TextOutput.java b/src/TextOutput.java
index 468bc31..653e050 100644
--- a/src/TextOutput.java
+++ b/src/TextOutput.java
@@ -14,7 +14,10 @@ public class TextOutput {
* @param text the ArrayList which is then formatted into the desired output.
*/
public void print(ArrayList text) {
- if (formatRaw) {
+ if(text.size() == 0) {
+ errorMissingText();
+ }
+ else if (formatRaw) {
printFormated(text);
} else {
toFormat(text);
@@ -40,8 +43,8 @@ public class TextOutput {
* @param text the ArrayList which is used for the output.
*/
private void toFormat(ArrayList text) {
- int currentLength = 0;
for (String paragraph : text) {
+ int currentLength = 0;
String[] words = paragraph.split(" ");
int lastWordNumber = words.length;
int currentWordNumber = 0;
@@ -49,24 +52,23 @@ public class TextOutput {
currentWordNumber++;
if (word.length()<= columnWidth - currentLength) {
System.out.print(word);
- if (!(lastWordNumber == currentWordNumber)) {
- System.out.print(" ");
- currentLength = currentLength + word.length() + 1;
- }
- else {
+ }
+ else {
+ if(currentWordNumber != 1) {
System.out.println();
- }
+ currentLength = 0;
+ }
+ System.out.print(word);
+
+ }
+ if(!(currentWordNumber == lastWordNumber)) {
+ System.out.print(" ");
+ currentLength = currentLength + word.length() + 1;
}
else {
System.out.println();
- System.out.print(word);
- if(!(currentWordNumber == lastWordNumber)) {
- System.out.print(" ");
- currentLength = word.length() + 1;
- }
}
}
- System.out.println();
}
}
@@ -113,8 +115,13 @@ public class TextOutput {
* @param index ArrayList with words and in which part they have
*/
public void indexOutput(ArrayList index) {
- for (String word : index) {
- System.out.println(word);
+ if(index.size() == 0) {
+ userInfoOutput("index empty");
+ }
+ else {
+ for (String word : index) {
+ System.out.println(word);
+ }
}
}
@@ -131,4 +138,11 @@ public class TextOutput {
public void errorInvalidCommand() {
System.err.println("Invalid Command");
}
+
+ /**
+ * Method to give out the Error "Missing Text".
+ */
+ public void errorMissingText() {
+ System.err.println("Missing Text");
+ }
}
diff --git a/test/TextOutputTest.java b/test/TextOutputTest.java
index 57bb624..17d72b9 100644
--- a/test/TextOutputTest.java
+++ b/test/TextOutputTest.java
@@ -17,7 +17,7 @@ class TextOutputTest {
text.add("Virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, septentr ionesimmensoslongusw ordos.");
text.add("Virtutedasjdhashdkjhakjdhakdshjkashd praecedunt, quod fere cotidianis proeliis cum");
//text.add("ordos.");
- //text.add("1234");
+ text.add("1234");
text.add("12417575147517845 445264565");
text.add(" ");
//text.add("1eeeeeee8597389751");
diff --git a/test/TextTest.java b/test/TextTest.java
index 9818d55..376dc42 100644
--- a/test/TextTest.java
+++ b/test/TextTest.java
@@ -58,8 +58,11 @@ public class TextTest {
Assertions.assertFalse(txt.replace(3, "alt", "neu"));
Assertions.assertTrue(txt.replace(1, "erste", "zweite"));
Assertions.assertTrue(txt.replace("zweite", "erste"));
+ Assertions.assertTrue(txt.add("Text Text hallo Text"));
+ Assertions.assertTrue(txt.replace("Text", "Test"));
Assertions.assertEquals("Das ist der zweite Beispiel Text.", txt.getText().get(0));
Assertions.assertEquals("Das ist der erste Beispiel Text.", txt.getText().get(1));
+ Assertions.assertEquals("Test Test hallo Test", txt.getText().get(2));
}
/**
@@ -92,4 +95,10 @@ public class TextTest {
stringListe = txt.index();
Assertions.assertEquals(0,stringListe.size());
}
+
+ @Test
+ void testing() {
+ txt.add("");
+ txt.index();
+ }
}