package org.openaltimeter.desktopapp;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.prefs.Preferences;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class DLGAnalysisDialog extends JDialog {
private static final String PREFS_MARK_LAUNCH_HEIGHTS = "PREFS_MARK_LAUNCH_HEIGHTS";
private static final String PREFS_MARK_MAX_HEIGHTS = "PREFS_MARK_MAX_HEIGHTS";
private static final String PREFS_CORRECT_BASELINE = "PREFS_CORRECT_BASELINE";
private static final String PREFS_SHOW_STATISTICS = "PREFS_SHOW_STATISTICS";
private JCheckBox chckbxShowStatistics;
private JCheckBox chckbxCorrectBaselineFor;
private JCheckBox chckbxMarkMaximumHeights;
private JCheckBox chckbxMarkLaunchHeights;
private boolean success = false;
Preferences prefs;
public boolean shouldMarkLaunchHeights() {
return chckbxMarkLaunchHeights.isSelected();
}
public void setMarkLaunchHeights(boolean markLaunchHeights) {
this.chckbxMarkLaunchHeights.setSelected(markLaunchHeights);
}
public boolean shouldMarkMaxHeights() {
return chckbxMarkMaximumHeights.isSelected();
}
public void setMarkMaxHeights(boolean markMaxHeights) {
this.chckbxMarkMaximumHeights.setSelected(markMaxHeights);
}
public boolean shouldCorrectBaseline() {
return chckbxCorrectBaselineFor.isSelected();
}
public void setCorrectBaseline(boolean correctBaseline) {
this.chckbxCorrectBaselineFor.setSelected(correctBaseline);
}
public boolean shouldShowStatistics() {
return chckbxShowStatistics.isSelected();
}
public void setShowStatistics(boolean showStatistics) {
this.chckbxShowStatistics.setSelected(showStatistics);
}
public DLGAnalysisDialog(final Controller controller) {
setResizable(false);
setIconImage(Toolkit.getDefaultToolkit().getImage(DLGAnalysisDialog.class.getResource("/logo_short_64.png")));
setModal(true);
setModalityType(ModalityType.APPLICATION_MODAL);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setTitle("DLG flight analysis");
setBounds(100, 100, 282, 178);
getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 358, 526, 10);
getContentPane().add(panel);
chckbxMarkLaunchHeights = new JCheckBox("Mark launch heights");
chckbxMarkLaunchHeights.setSelected(true);
chckbxMarkLaunchHeights.setBounds(6, 7, 180, 23);
getContentPane().add(chckbxMarkLaunchHeights);
chckbxMarkMaximumHeights = new JCheckBox("Mark maximum heights");
chckbxMarkMaximumHeights.setSelected(true);
chckbxMarkMaximumHeights.setBounds(6, 33, 153, 23);
getContentPane().add(chckbxMarkMaximumHeights);
chckbxCorrectBaselineFor = new JCheckBox("Correct baseline for weather shifts");
chckbxCorrectBaselineFor.setSelected(true);
chckbxCorrectBaselineFor.setBounds(6, 59, 250, 23);
getContentPane().add(chckbxCorrectBaselineFor);
chckbxShowStatistics = new JCheckBox("Show launch statistics window");
chckbxShowStatistics.setSelected(true);
chckbxShowStatistics.setBounds(6, 85, 180, 23);
getContentPane().add(chckbxShowStatistics);
JButton btnRun = new JButton("Run");
btnRun.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
success = true;
prefs.putBoolean(PREFS_MARK_LAUNCH_HEIGHTS, shouldMarkLaunchHeights());
prefs.putBoolean(PREFS_MARK_MAX_HEIGHTS, shouldMarkMaxHeights());
prefs.putBoolean(PREFS_CORRECT_BASELINE, shouldCorrectBaseline());
prefs.putBoolean(PREFS_SHOW_STATISTICS, shouldShowStatistics());
dispose();
}
});
btnRun.setBounds(97, 115, 89, 23);
getContentPane().add(btnRun);
prefs = Preferences.userNodeForPackage(this.getClass());
setMarkLaunchHeights(prefs.getBoolean(PREFS_MARK_LAUNCH_HEIGHTS, true));
setMarkMaxHeights(prefs.getBoolean(PREFS_MARK_MAX_HEIGHTS, true));
setCorrectBaseline(prefs.getBoolean(PREFS_CORRECT_BASELINE, true));
setShowStatistics(prefs.getBoolean(PREFS_SHOW_STATISTICS, true));
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setModalityType(ModalityType.APPLICATION_MODAL);
}
public boolean isSuccessful() {
return success;
}
}