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); } }