From f8ecd6a6793f3978e488c29d9adaf280f4b54131 Mon Sep 17 00:00:00 2001 From: Daniel Fromm <3015351@stud.hs-mannheim.de> Date: Tue, 13 May 2025 11:38:59 +0200 Subject: [PATCH] refactoring --- src/main/java/domain/WordCloudCreator.java | 23 ++++++++++++++-------- src/main/java/tui/Main.java | 2 +- src/main/java/tui/TUI.java | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/java/domain/WordCloudCreator.java b/src/main/java/domain/WordCloudCreator.java index 931d67a..3b8a33d 100644 --- a/src/main/java/domain/WordCloudCreator.java +++ b/src/main/java/domain/WordCloudCreator.java @@ -8,11 +8,13 @@ public class WordCloudCreator { //Create html file with clickable words public boolean insertWordsIntoTemplate(Map wordMap) { - File templateFile = new File("wordcloud.html"); // Template in project directory + File inputFile = new File("wordcloud.html"); // Template in project directory File outputFile = new File("createdHTML.html"); // Output in project directory + File csvFile = new File("createdWordcloud.csv"); // CSV output in project directory - try (BufferedReader reader = new BufferedReader(new FileReader(templateFile)); - BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) { + try (BufferedReader reader = new BufferedReader(new FileReader(inputFile)); + BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile)); + BufferedWriter csvWriter = new BufferedWriter(new FileWriter(csvFile))) { StringBuilder htmlContent = new StringBuilder(); String line; @@ -20,20 +22,26 @@ public class WordCloudCreator { while ((line = reader.readLine()) != null) { htmlContent.append(line).append("\n"); } -//AI generated lines below + +// With help from AI to generate code to write the html file // Generated clickable word entries with font size based on frequency StringBuilder wordEntries = new StringBuilder(); int id = 1; + csvWriter.write("Word,Frequency\n"); // Write CSV header for (Map.Entry entry : wordMap.entrySet()) { String word = entry.getKey(); int frequency = entry.getValue(); int fontSize = Math.min(10 + frequency * 2, maxFontSize); // Example: Base size 10px, increase by 2px per frequency + wordEntries.append(String.format( "" + "%s" + "\n", id++, fontSize, word, word )); + + // Write word and frequency to CSV + csvWriter.write(String.format("%s,%d\n", word, frequency)); } // Replace placeholder inside the div @@ -47,10 +55,9 @@ public class WordCloudCreator { // Write the updated HTML to the output file writer.write(updatedHtml); return true; - - } catch (IOException e) { - throw new RuntimeException("Error processing HTML template", e); + } + catch (IOException e) { + throw new RuntimeException("Error processing HTML template or CSV file", e); } - } } \ No newline at end of file diff --git a/src/main/java/tui/Main.java b/src/main/java/tui/Main.java index 45ee85c..aad3a10 100644 --- a/src/main/java/tui/Main.java +++ b/src/main/java/tui/Main.java @@ -4,4 +4,4 @@ public class Main { public static void main(String[]args){ new TUI(); } -} +} \ No newline at end of file diff --git a/src/main/java/tui/TUI.java b/src/main/java/tui/TUI.java index cb10487..01db5b9 100644 --- a/src/main/java/tui/TUI.java +++ b/src/main/java/tui/TUI.java @@ -118,7 +118,7 @@ public class TUI { if(wcm.createWordCloud()) { System.out.println("HTML File created!\n"); fMenu = false; - System.out.println("Close Program!\n"); + System.out.println("Close File menu!\n"); } else { System.out.println("HTML FIle not created!\n");