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(); + } }