From 715b55276c14add4f06ba40ec974ca934317fdf4 Mon Sep 17 00:00:00 2001 From: obai Albek <3009594@stud.hs-mannheim.de> Date: Wed, 4 Jun 2025 17:42:39 +0200 Subject: [PATCH] Update --- MailSystem/src/domain/EasyMail.java | 15 +++++++++ MailSystem/src/gui/EasyMailWindow.java | 13 ++++---- MailSystem/src/gui/SentWindow.java | 45 ++++++++++++++++++-------- MailSystem/src/gui/TrashWindow.java | 29 +++++++++++++---- MailSystem/src/main/Main.java | 4 +-- 5 files changed, 76 insertions(+), 30 deletions(-) diff --git a/MailSystem/src/domain/EasyMail.java b/MailSystem/src/domain/EasyMail.java index f935fe8..7076e76 100644 --- a/MailSystem/src/domain/EasyMail.java +++ b/MailSystem/src/domain/EasyMail.java @@ -81,6 +81,21 @@ public class EasyMail { Email email = this.currentUser.getUsermail().getInbox().getEmailBySubject(subject); return email.showEmails(); } + public String searchEmailInSentFolder(String subject) throws EmailNotFoundException { + if (subject.trim().isEmpty()) + throw new IllegalArgumentException("subject field is required!"); + + Email email = this.currentUser.getUsermail().getSentFolder().getEmailBySubject(subject); + return email.showEmails(); + } + public String searchEmailInTrashFolder(String subject) throws EmailNotFoundException { + if (subject.trim().isEmpty()) + throw new IllegalArgumentException("subject field is required!"); + + Email email = this.currentUser.getUsermail().getTrashFolder().getEmailBySubject(subject); + return email.showEmails(); + } + public String[] sendUserDetails() { String[] details = new String[2]; diff --git a/MailSystem/src/gui/EasyMailWindow.java b/MailSystem/src/gui/EasyMailWindow.java index 14a67a5..9553943 100644 --- a/MailSystem/src/gui/EasyMailWindow.java +++ b/MailSystem/src/gui/EasyMailWindow.java @@ -97,6 +97,7 @@ public class EasyMailWindow extends TemplateWindow { getAllInboxEmails(email); } catch (EmailNotFoundException e) { this.showError(e.getMessage()); + getAllInboxEmails(""); } } @@ -115,7 +116,7 @@ public class EasyMailWindow extends TemplateWindow { SentWindow sentWindow = new SentWindow(); closeWindow(); sentWindow.showWindow(); - sentWindow.getAllSentEmails(); + sentWindow.getAllSentEmails(""); showUserDetails(); } @@ -142,22 +143,20 @@ public class EasyMailWindow extends TemplateWindow { public void getAllInboxEmails(String foundedEmail) { if (foundedEmail.trim().isEmpty()) { - inboxTableModel.setRowCount(0); + inboxTableModel.setRowCount(0); ArrayList getEmails = fassade.sendAllEmailsToInboxWindow(); - if (getEmails != null && !getEmails.isEmpty()) + if (getEmails != null && !getEmails.isEmpty()) for (String tempEmail : getEmails) { String[] splitEmail = tempEmail.split(","); Object[] newEmail = { splitEmail[0], splitEmail[1], splitEmail[2] }; inboxTableModel.addRow(newEmail); } - }else { + } else { String[] splitEmail = foundedEmail.split(","); Object[] newEmail = { splitEmail[0], splitEmail[1], splitEmail[2] }; inboxTableModel.addRow(newEmail); } - - - + } } diff --git a/MailSystem/src/gui/SentWindow.java b/MailSystem/src/gui/SentWindow.java index 9a15dbb..3196f41 100644 --- a/MailSystem/src/gui/SentWindow.java +++ b/MailSystem/src/gui/SentWindow.java @@ -2,6 +2,9 @@ package gui; import javax.swing.*; import javax.swing.table.DefaultTableModel; + +import domain.email.EmailNotFoundException; + import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -41,8 +44,14 @@ public class SentWindow extends TemplateWindow { } public void handleSearching() { - String getSubjct = searchField.getText(); - + try { + String getSubjct = searchField.getText(); + String email = fassade.searchEmailInSentFolder(getSubjct); + inboxTableModel.setRowCount(0); + getAllSentEmails(email); + } catch (EmailNotFoundException e) { + this.showError(e.getMessage()); + } } private void initNavigationPanel() { @@ -90,17 +99,25 @@ public class SentWindow extends TemplateWindow { tablePanel.add(scrollPane); } - public void getAllSentEmails() { - ArrayList getEmails = fassade.sendAllEmailsToSentWindow(); - String[] splitEmail; - if (getEmails.size() > 0) - for (String tempEmail : getEmails) { - splitEmail = tempEmail.split(","); - String to = splitEmail[0].toString(); - String subject = splitEmail[1]; - String date = splitEmail[2]; - Object[] newEmail = { to, subject, date }; - inboxTableModel.addRow(newEmail); - } + public void getAllSentEmails(String email) { + if (email.trim().isEmpty()) { + ArrayList getEmails = fassade.sendAllEmailsToSentWindow(); + String[] splitEmail; + if (getEmails.size() > 0) + for (String tempEmail : getEmails) { + splitEmail = tempEmail.split(","); + String to = splitEmail[0].toString(); + String subject = splitEmail[1]; + String date = splitEmail[2]; + Object[] newEmail = { to, subject, date }; + inboxTableModel.addRow(newEmail); + } + + } else { + String[] splitEmail = email.split(","); + Object[] newEmail = { splitEmail[0], splitEmail[1], splitEmail[2] }; + inboxTableModel.addRow(newEmail); + } + } } diff --git a/MailSystem/src/gui/TrashWindow.java b/MailSystem/src/gui/TrashWindow.java index 04e017c..8423207 100644 --- a/MailSystem/src/gui/TrashWindow.java +++ b/MailSystem/src/gui/TrashWindow.java @@ -10,7 +10,8 @@ import java.util.ArrayList; public class TrashWindow extends TemplateWindow { private DefaultTableModel inboxTableModel; - + private JTextField searchField; + public TrashWindow() { super("Trash - EasyMail"); initUI(); @@ -24,11 +25,27 @@ public class TrashWindow extends TemplateWindow { } private void initComposePanel() { - JPanel composePanel = createPanel(367, 11, 750, 86, new Color(230, 230, 230), true); - contentPane.add(composePanel); - composePanel.setLayout(null); + JPanel composePanel = createPanel(367, 11, 750, 86, new Color(230, 230, 230), true); + contentPane.add(composePanel); + composePanel.setLayout(null); + + searchField = new PlaceholderTextField("Search By subject"); + searchField.setBounds(500, 30, 150, 40); + composePanel.add(searchField); + + JButton searchButton = new JButton("Search"); + searchButton.setBounds(660, 30, 80, 40); + composePanel.add(searchButton); + searchButton.addActionListener(e -> handleSearching()); + + } + + public void handleSearching() { + String getSubjct = searchField.getText(); + + } + - } private void initNavigationPanel() { JPanel navigationPanel = createPanel(10, 273, 347, 451, new Color(230, 230, 230), true); @@ -58,7 +75,7 @@ public class TrashWindow extends TemplateWindow { SentWindow sentWindow = new SentWindow(); closeWindow(); sentWindow.showWindow(); - sentWindow.getAllSentEmails(); + sentWindow.getAllSentEmails(""); } }); navigationPanel.add(sentEmails); diff --git a/MailSystem/src/main/Main.java b/MailSystem/src/main/Main.java index c8da74e..9a3bff8 100644 --- a/MailSystem/src/main/Main.java +++ b/MailSystem/src/main/Main.java @@ -5,9 +5,7 @@ import gui.*; public class Main { public static void main(String[] args) { - EasyMailWindow easy = new EasyMailWindow(); - - + new EasyMailWindow(); } }