/*
* #######################################################
*
* Copyright (c) 2013, A. Weinberger. All rights reserved.
* --------------------------------------------------------
*/
package ale.view.gui.dialogs;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import ale.controller.Main;
import ale.view.gui.GUIConstants;
import ale.view.gui.util.GUIStrings;
/**
* ------------------------------------------------- <br/>
* Package: ale.view.gui.dialogs <br/>
* Class : FirstStartDialog <br/>
* --------------------------- <br/>
* <br/>
* The <code>FirstStartDialog</code> shows before the first start some basic infos about warranty and co.
* <br/>
* <br/>
* Last edited: 15.05.2013 <br/>
* ------------------------------------------------- <br/>
*/
public class FirstStartDialog extends Dialog implements WindowListener {
private static final long serialVersionUID = 1L;
private final JPanel basePanel = new JPanel();
/**
*
*/
public FirstStartDialog() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
FirstStartDialog.this.setSize(new Dimension(600, 380));
FirstStartDialog.this.setTitle(GUIConstants.PROGRAM_TITLE);
FirstStartDialog.this.setIconImage(GUIConstants.PROGRAM_ICON);
FirstStartDialog.this.setLocationRelativeTo(null);
FirstStartDialog.this.getContentPane().setLayout(new BorderLayout());
FirstStartDialog.this.basePanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5));
FirstStartDialog.this.basePanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
FirstStartDialog.this.basePanel.setLayout(new BorderLayout());
FirstStartDialog.this.getContentPane().add(FirstStartDialog.this.basePanel, BorderLayout.CENTER);
FirstStartDialog.this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
FirstStartDialog.this.setModalityType(ModalityType.APPLICATION_MODAL);
FirstStartDialog.this.addWindowListener(FirstStartDialog.this);
create();
FirstStartDialog.this.setVisible(true);
}
});
}
private void create() {
JPanel textPanel = new JPanel();
textPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
String tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_FIRSTSTARTDIALOG_TITLE);
textPanel.setBorder(BorderFactory.createTitledBorder(tmp));
this.basePanel.add(textPanel, BorderLayout.CENTER);
{
SimpleAttributeSet center = new SimpleAttributeSet();
StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
textPanel.setLayout(new BorderLayout(0, 0));
JTextPane lblMessageLabel = new JTextPane();
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_FIRSTSTARTDIALOG_MSGHEAD);
lblMessageLabel.setText(tmp);
lblMessageLabel.setEditable(false);
lblMessageLabel.setBorder(BorderFactory.createEmptyBorder(20, 0, 0, 0));
lblMessageLabel.setFont(GUIConstants.DEFAULT_HEADING_FONT);
lblMessageLabel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
textPanel.add(lblMessageLabel, BorderLayout.NORTH);
StyledDocument doc = lblMessageLabel.getStyledDocument();
doc.setParagraphAttributes(0, doc.getLength(), center, false);
JPanel subtextPanel = new JPanel();
subtextPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5));
subtextPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
textPanel.add(subtextPanel);
subtextPanel.setLayout(new BorderLayout(0, 0));
{
JTextPane lblHintLabel = new JTextPane();
lblHintLabel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
lblHintLabel.setFont(new Font("Segoe UI", Font.ITALIC, 13));
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_FIRSTSTARTDIALOG_MSG);
lblHintLabel.setText(tmp);
lblHintLabel.setEditable(false);
lblHintLabel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
subtextPanel.add(lblHintLabel);
doc = lblHintLabel.getStyledDocument();
doc.setParagraphAttributes(0, doc.getLength(), center, false);
}
}
JPanel buttonPanel = new JPanel();
buttonPanel.setBackground(GUIConstants.DEFAULT_BACKGROUND);
buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
{
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_FIRSTSTARTDIALOG_OK);
final JButton okButton = new JButton(tmp);
okButton.setBackground(GUIConstants.DEFAULT_BACKGROUND);
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
okButton.setEnabled(false);
Main.resume();
dispose();
}
});
buttonPanel.add(okButton);
}
}
@Override
public void windowActivated(WindowEvent e) {
;
}
@Override
public void windowClosed(WindowEvent e) {
;
}
@Override
public void windowClosing(WindowEvent e) {
Main.shutdown();
}
@Override
public void windowDeactivated(WindowEvent e) {
;
}
@Override
public void windowDeiconified(WindowEvent e) {
;
}
@Override
public void windowIconified(WindowEvent e) {
;
}
@Override
public void windowOpened(WindowEvent e) {
;
}
}