aboutsummaryrefslogtreecommitdiff
path: root/src/main/ui/Main.java
blob: 4dbcea12222e2b12ff1dbd4c0fb7e4a548085585 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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);
    }
}