From f256a6eaccf7d2a51e120baab40eb740c637caea Mon Sep 17 00:00:00 2001 From: Daniel Fromm <3015351@stud.hs-mannheim.de> Date: Tue, 13 May 2025 10:55:55 +0200 Subject: [PATCH] implement sortList as extra selection in menu --- src/main/java/domain/TextProcessing.java | 18 ++++++++++++++++-- src/main/java/facade/WordCloudManager.java | 6 ++++++ src/main/java/tui/TUI.java | 12 ++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/domain/TextProcessing.java b/src/main/java/domain/TextProcessing.java index cd1499f..0daf999 100644 --- a/src/main/java/domain/TextProcessing.java +++ b/src/main/java/domain/TextProcessing.java @@ -23,6 +23,7 @@ public class TextProcessing { private boolean stemming = false; private int maxWords = 0; private Set stopwordList = new HashSet<>(); + private boolean sortList = false; //Extract text from file with supported format public String formatToText(File file, String format) { @@ -133,9 +134,14 @@ public class TextProcessing { } } tokenStream.end(); - if (maxWords > 0) { + if (maxWords > 0 || sortList) { Map sortedWords; - sortedWords = maxShowWords(sortList(words), maxWords); + if(maxWords > 0) { + sortedWords = maxShowWords(sortList(words), maxWords); + } + else { + sortedWords = sortList(words); + } return sortedWords; } } @@ -152,4 +158,12 @@ public class TextProcessing { public void setMaxWords(int maxWords) { this.maxWords = maxWords; } + + public void setSortList(boolean sortList) { + this.sortList = sortList; + } + + public int getMaxWords() { + return maxWords; + } } diff --git a/src/main/java/facade/WordCloudManager.java b/src/main/java/facade/WordCloudManager.java index a234b1f..2f0e6bd 100644 --- a/src/main/java/facade/WordCloudManager.java +++ b/src/main/java/facade/WordCloudManager.java @@ -65,6 +65,12 @@ public class WordCloudManager { } } + public void setSorting(boolean sort) { + if(tp.getMaxWords() == 0) { + tp.setSortList(sort); + } + } + public boolean createWordCloud() { if(!(fl.getFilePath() == null)) { if (wcm.insertWordsIntoTemplate(tp.tokenizingFile(tp.formatToText(fl.getFilePath(), fl.getFileFormat())))) { diff --git a/src/main/java/tui/TUI.java b/src/main/java/tui/TUI.java index 28f1877..cb10487 100644 --- a/src/main/java/tui/TUI.java +++ b/src/main/java/tui/TUI.java @@ -64,7 +64,7 @@ public class TUI { public void fileMenu() { while(fMenu) { System.out.println("(0) Load Stopwords\n(1) Add to Stopwords\n(2) Set Max Words in HTML\n" + - "(3) Activate German stemming\n(4) Create WordCloud and Exit"); + "(3) Activate German stemming\n(4) Sort List?\n(5) Create WordCloud and Exit"); option = Integer.parseInt(scan.nextLine()); switch(option) { case (0): @@ -90,7 +90,7 @@ public class TUI { break; case(2): // Set number of max words - System.out.println("How much max words do you want? "); + System.out.println("How much max words do you want? \nList will be sorted after highest frequenzy."); int number = Integer.parseInt(scan.nextLine()); wcm.setMaxWords(number); break; @@ -106,6 +106,14 @@ public class TUI { } break; case(4): + //Sort list + System.out.println("Sort list for highest frequenzy? 'yes' or 'no'"); + String sorting = scan.nextLine(); + if(sorting.equals("yes")) { + wcm.setSorting(true); + } + break; + case(5): //Create WordCloud and exit program if(wcm.createWordCloud()) { System.out.println("HTML File created!\n");