kopia lustrzana https://github.com/dl2alf/AirScout
230 wiersze
9.6 KiB
C#
230 wiersze
9.6 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Data;
|
|||
|
using System.Drawing;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Windows.Forms;
|
|||
|
using System.Globalization;
|
|||
|
using ScoutBase.Core;
|
|||
|
using ScoutBase.Elevation;
|
|||
|
|
|||
|
namespace RainScout
|
|||
|
{
|
|||
|
public partial class OptionsDlg : Form
|
|||
|
{
|
|||
|
MainDlg ParentDlg;
|
|||
|
|
|||
|
bool ChangeLatFromLoc;
|
|||
|
bool ChangeLonFromLoc;
|
|||
|
bool ChangeLocFromLatLon;
|
|||
|
|
|||
|
public OptionsDlg(MainDlg parentdlg)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
ParentDlg = parentdlg;
|
|||
|
}
|
|||
|
|
|||
|
private void tp_Stations_Enter(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// try to fill infos from properties
|
|||
|
tb_Options_Stations_Call.Text = Properties.Settings.Default.MyCall;
|
|||
|
tb_Options_Stations_Lat.Text = Properties.Settings.Default.MyLat.ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Lon.Text = Properties.Settings.Default.MyLon.ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Loc.Text = Properties.Settings.Default.MyLoc;
|
|||
|
tb_Options_Stations_Elevation.Text = Properties.Settings.Default.MyElevation.ToString("F0");
|
|||
|
tb_Options_Stations_Height.Text = Properties.Settings.Default.MyHeight.ToString("F0");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Stations_Call_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
base.OnTextChanged(e);
|
|||
|
/*
|
|||
|
CallsignEntry entry = ParentDlg.Locations.FindEntry(tb_Options_Stations_Call.Text);
|
|||
|
if (entry != null)
|
|||
|
{
|
|||
|
Properties.Settings.Default.MyLat = entry.Lat;
|
|||
|
Properties.Settings.Default.MyLon = entry.Lon;
|
|||
|
Properties.Settings.Default.MyLoc = entry.Loc;
|
|||
|
tb_Options_Stations_Lat.Text = entry.Lat.ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Lon.Text = entry.Lon.ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Loc.Text = entry.Loc;
|
|||
|
tb_Options_Stations_Elevation.Text = entry.Elevation.ToString();
|
|||
|
tb_Options_Stations_Height.Text = entry.Height.ToString();
|
|||
|
if (entry.IsPrecise)
|
|||
|
tb_Options_Stations_Loc.BackColor = Color.LightGreen;
|
|||
|
else
|
|||
|
tb_Options_Stations_Loc.BackColor = Color.White;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Properties.Settings.Default.MyLat = double.NaN;
|
|||
|
Properties.Settings.Default.MyLon = double.NaN;
|
|||
|
Properties.Settings.Default.MyLoc = "";
|
|||
|
Properties.Settings.Default.MyElevation = 0;
|
|||
|
Properties.Settings.Default.MyHeight = 0;
|
|||
|
tb_Options_Stations_Loc.BackColor = Color.White;
|
|||
|
tb_Options_Stations_Lat.Text = "";
|
|||
|
tb_Options_Stations_Lon.Text = "";
|
|||
|
tb_Options_Stations_Loc.Text = "";
|
|||
|
tb_Options_Stations_Elevation.Text = "";
|
|||
|
tb_Options_Stations_Height.Text = "";
|
|||
|
|
|||
|
}
|
|||
|
*/
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Stations_Lat_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (String.IsNullOrEmpty(tb_Options_Stations_Lat.Text))
|
|||
|
return;
|
|||
|
try
|
|||
|
{
|
|||
|
double lat = System.Convert.ToDouble(tb_Options_Stations_Lat.Text, CultureInfo.InvariantCulture);
|
|||
|
double lon = System.Convert.ToDouble(tb_Options_Stations_Lon.Text, CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Elevation.Text = ElevationData.Database[lat, lon, Properties.Settings.Default.CurrentElevationModel].ToString("F0");
|
|||
|
if (ChangeLatFromLoc)
|
|||
|
{
|
|||
|
ChangeLatFromLoc = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ChangeLocFromLatLon = true;
|
|||
|
tb_Options_Stations_Loc.Text = MaidenheadLocator.LocFromLatLon(lat, lon,false, 3);
|
|||
|
}
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Stations_Lon_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (String.IsNullOrEmpty(tb_Options_Stations_Lon.Text))
|
|||
|
return;
|
|||
|
try
|
|||
|
{
|
|||
|
double lat = System.Convert.ToDouble(tb_Options_Stations_Lat.Text, CultureInfo.InvariantCulture);
|
|||
|
double lon = System.Convert.ToDouble(tb_Options_Stations_Lon.Text, CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Stations_Elevation.Text = ElevationData.Database[lat, lon, Properties.Settings.Default.CurrentElevationModel].ToString("F0");
|
|||
|
if (ChangeLonFromLoc)
|
|||
|
{
|
|||
|
ChangeLonFromLoc = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ChangeLocFromLatLon = true;
|
|||
|
tb_Options_Stations_Loc.Text = MaidenheadLocator.LocFromLatLon(lat, lon, false, 3);
|
|||
|
}
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Stations_Loc_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (String.IsNullOrEmpty(tb_Options_Stations_Loc.Text))
|
|||
|
return;
|
|||
|
if (!MaidenheadLocator.Check(tb_Options_Stations_Loc.Text))
|
|||
|
return;
|
|||
|
if (ChangeLocFromLatLon)
|
|||
|
{
|
|||
|
ChangeLocFromLatLon = false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ChangeLatFromLoc = true;
|
|||
|
tb_Options_Stations_Lat.Text = MaidenheadLocator.LatFromLoc(tb_Options_Stations_Loc.Text).ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
ChangeLonFromLoc = true;
|
|||
|
tb_Options_Stations_Lon.Text = MaidenheadLocator.LonFromLoc(tb_Options_Stations_Loc.Text).ToString("F8", CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Stations_Height_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void btn_Options_Stations_Update_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// check all entries and update callsign database
|
|||
|
/*
|
|||
|
try
|
|||
|
{
|
|||
|
CallsignEntry entry = ParentDlg.Locations.FindEntry(tb_Options_Stations_Call.Text);
|
|||
|
if (entry != null)
|
|||
|
{
|
|||
|
entry.Lat = System.Convert.ToDouble(tb_Options_Stations_Lat.Text, CultureInfo.InvariantCulture);
|
|||
|
entry.Lon = System.Convert.ToDouble(tb_Options_Stations_Lon.Text, CultureInfo.InvariantCulture);
|
|||
|
entry.Loc = tb_Options_Stations_Loc.Text;
|
|||
|
entry.Elevation = ParentDlg.ElevationData[entry.Lat, entry.Lon];
|
|||
|
entry.Height = System.Convert.ToDouble(tb_Options_Stations_Height.Text, CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
entry = new CallsignEntry();
|
|||
|
entry.Call = tb_Options_Stations_Call.Text;
|
|||
|
entry.Lat = System.Convert.ToDouble(tb_Options_Stations_Lat.Text, CultureInfo.InvariantCulture);
|
|||
|
entry.Lon = System.Convert.ToDouble(tb_Options_Stations_Lon.Text, CultureInfo.InvariantCulture);
|
|||
|
entry.Loc = tb_Options_Stations_Loc.Text;
|
|||
|
entry.Elevation = ParentDlg.ElevationData[entry.Lat, entry.Lon];
|
|||
|
entry.Height = System.Convert.ToDouble(tb_Options_Stations_Height.Text, CultureInfo.InvariantCulture);
|
|||
|
ParentDlg.Locations.AddEntry(entry);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
MessageBox.Show("An error occured while updating call sign database: " + ex.Message, "Error");
|
|||
|
}
|
|||
|
*/
|
|||
|
}
|
|||
|
|
|||
|
private void tc_Scatter_Enter(object sender, EventArgs e)
|
|||
|
{
|
|||
|
tb_Options_Scatter_MinHeight.Text = Properties.Settings.Default.Scatter_MinHeight.ToString("F0", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Scatter_MaxHeight.Text = Properties.Settings.Default.Scatter_MaxHeight.ToString("F0", CultureInfo.InvariantCulture);
|
|||
|
tb_Options_Scatter_MaxAngle.Text = Properties.Settings.Default.Scatter_MaxAngle.ToString("F0", CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Scatter_MinHeight_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Properties.Settings.Default.Scatter_MinHeight = System.Convert.ToDouble(tb_Options_Scatter_MinHeight.Text, CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
MessageBox.Show("Invalid value: " + tb_Options_Scatter_MinHeight.Text, "Error");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Scatter_MaxHeight_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Properties.Settings.Default.Scatter_MaxHeight = System.Convert.ToDouble(tb_Options_Scatter_MaxHeight.Text, CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
MessageBox.Show("Invalid value: " + tb_Options_Scatter_MaxHeight.Text, "Error");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void tb_Options_Scatter_MaxAngle_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Properties.Settings.Default.Scatter_MaxAngle = System.Convert.ToDouble(tb_Options_Scatter_MaxAngle.Text, CultureInfo.InvariantCulture);
|
|||
|
}
|
|||
|
catch
|
|||
|
{
|
|||
|
MessageBox.Show("Invalid value: " + tb_Options_Scatter_MaxAngle.Text, "Error");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|