From e13adbb9a9146dd5ece890449e3cad958a502f86 Mon Sep 17 00:00:00 2001 From: Yuuta Liang Date: Tue, 28 Nov 2023 11:57:29 -0800 Subject: Phase 4: Task 2 Signed-off-by: Yuuta Liang --- src/main/ui/Main.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/main/ui') diff --git a/src/main/ui/Main.java b/src/main/ui/Main.java index ab275c1..4dbcea1 100644 --- a/src/main/ui/Main.java +++ b/src/main/ui/Main.java @@ -1,18 +1,41 @@ package ui; import com.formdev.flatlaf.FlatIntelliJLaf; +import model.EventLog; import javax.swing.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.Spliterator; +import java.util.Spliterators; +import java.util.stream.StreamSupport; public class Main { public static void main(String[] args) throws Throwable { if (args.length >= 1 && args[0].equals("-c")) { new JCA().run(); + printLogs(); } else { FlatIntelliJLaf.setup(); final JFrame frame = new MainUI(); frame.pack(); + frame.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + printLogs(); + } + }); frame.setVisible(true); } } + + /** + * EFFECTS: Print logs to stdout, separated by LF, in the format of "date - descr". + */ + private static void printLogs() { + StreamSupport.stream(Spliterators.spliteratorUnknownSize(EventLog.getInstance().iterator(), + Spliterator.ORDERED), false) + .map(e -> String.format("%s - %s", e.getDate(), e.getDescription())) + .forEach(System.out::println); + } } -- cgit v1.2.3