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