package amidst.gui;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.LineBorder;

import amidst.logging.LogRecorder;
import net.miginfocom.swing.MigLayout;

public class CrashDialog extends JFrame {
	public CrashDialog(String message) {
		super("AMIDST encountered an unexpected error.");
		Container contentPane = getContentPane();
		contentPane.setLayout(new MigLayout());
		
		add(new JLabel("AMIDST has crashed with the following message:"), "growx, pushx, wrap");
		add(new JLabel(message), "growx, pushx, wrap");
		
		JTextArea logText = new JTextArea(LogRecorder.getContents());

		JScrollPane scrollPane = new JScrollPane(logText);
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		
		logText.setFont(new Font("arial", Font.PLAIN, 10));
		scrollPane.setBorder(new LineBorder(Color.darkGray, 1));
		
		add(scrollPane,"grow, push");
		
		setSize(500, 400);
		setVisible(true);
		
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				dispose();
				System.exit(4);
			}
		});
		
	}
}