tbf/GenericTest/SettingsDlg.cs
2022-01-07 16:04:16 +01:00

143 lines
5.4 KiB
C#

///
/// Copyright (c) 2019-2021 Sensus Slovensko a.s.
///
using System;
using System.Windows.Forms;
using System.Drawing;
using SharedDatabase;
namespace GenericTest
{
public partial class SettingsDlg : Form
{
public SettingsDlg()
{
InitializeComponent();
for (Mode m = 0; m < Mode.Count; m++) oracleModeComboBox.Items.Add(m.ToString());
ManageCheckGroupBox(checkSNsValidityCheckBox, validPcbPrefixesGroupBox);
ManageCheckGroupBox(saveTestResultToOracleCheckBox, saveRFTestResultGroupBox);
ManageCheckGroupBox(printLabelsCheckBox, printLabelsGroupBox);
ManageCheckGroupBox(readSensorCheckBox, readSensorGroupBox);
}
private void SettingsDlg_Load(object sender, EventArgs e)
{
LocalSettings ls = Program.LocalSettings;
workplaceTextBox.Text = ls.Workplace;
loginRequiredCheckBox.Checked = ls.IsUserLoginRequired;
connectionStringTextBox.Text = ls.ConnectionString;
usersDBConnStringTextBox.Text = ls.UsersDBConnString;
testResultsFolderTextBox.Text = ls.TestResultsFolder;
archiveFolderTextBox.Text = ls.ArchiveFolder;
checkSNsValidityCheckBox.Checked = ls.DoCheckSNsValidity;
validSNPrefixesTextBox.Text = ls.ValidSNPrefixes;
checkPreviousTracingRecordsCheckBox.Checked = ls.DoCheckPreviousTracingRecords;
saveTestResultToOracleCheckBox.Checked = ls.DoSaveTestResultToOracle;
if (ls.OracleMode >= 0 && ls.OracleMode < Mode.Count) oracleModeComboBox.Text = ls.OracleMode.ToString();
printLabelsCheckBox.Checked = ls.DoPrintLabels;
printGoodLabelsOnlyCheckBox.Checked = ls.DoPrintGoodLabelsOnly;
maximizeWindowOnErrorCheckBox.Checked = ls.MaximizeWindowOnError;
readSensorCheckBox.Checked = ls.DoReadSensor;
sensorNameTextBox.Text = ls.SensorName;
comPortNrTextBox.Text = ls.SensorComPortNr.ToString();
addressTextBox.Text = ls.SensorAddress.ToString();
filterTimeMinTextBox.Text = ls.SensorFilterTimeMinutes.ToString();
}
private void okButton_Click(object sender, EventArgs e)
{
LocalSettings ls = Program.LocalSettings;
ls.Workplace = workplaceTextBox.Text;
ls.IsUserLoginRequired = loginRequiredCheckBox.Checked;
ls.ConnectionString = connectionStringTextBox.Text;
ls.UsersDBConnString = usersDBConnStringTextBox.Text;
ls.TestResultsFolder = testResultsFolderTextBox.Text;
ls.ArchiveFolder = archiveFolderTextBox.Text;
ls.DoCheckSNsValidity = checkSNsValidityCheckBox.Checked;
ls.ValidSNPrefixes = validSNPrefixesTextBox.Text;
ls.DoCheckPreviousTracingRecords = checkPreviousTracingRecordsCheckBox.Checked;
ls.DoSaveTestResultToOracle = saveTestResultToOracleCheckBox.Checked;
for (Mode m = 0; m < Mode.Count; m++)
{
if (oracleModeComboBox.Text == m.ToString()) { ls.OracleMode = m; break; }
}
ls.DoPrintLabels = printLabelsCheckBox.Checked;
ls.DoPrintGoodLabelsOnly = printGoodLabelsOnlyCheckBox.Checked;
ls.MaximizeWindowOnError = maximizeWindowOnErrorCheckBox.Checked;
ls.DoReadSensor = readSensorCheckBox.Checked;
if (ls.DoReadSensor)
{
ls.SensorName = sensorNameTextBox.Text;
int ival;
if (int.TryParse(comPortNrTextBox.Text, out ival)) ls.SensorComPortNr = ival;
if (int.TryParse(addressTextBox.Text, out ival)) ls.SensorAddress = ival;
if (int.TryParse(filterTimeMinTextBox.Text, out ival)) ls.SensorFilterTimeMinutes = ival;
}
ls.Save();
DialogResult = DialogResult.OK;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void ManageCheckGroupBox(CheckBox chk, GroupBox grp)
{
/// Make sure the CheckBox isn't in the GroupBox. This will only happen the first time.
if (chk.Parent == grp)
{
grp.Parent.Controls.Add(chk); /// Reparent the CheckBox so it's not in the GroupBox.
chk.Location = new Point(chk.Left + grp.Left, chk.Top + grp.Top); /// Adjust the CheckBox's location.
chk.BringToFront(); /// Move the CheckBox to the top of the stacking order.
}
/// Enable or disable the GroupBox.
grp.Enabled = chk.Checked;
}
private void checkSNsValidityCheckBox_CheckedChanged(object sender, EventArgs e)
{
ManageCheckGroupBox(checkSNsValidityCheckBox, validPcbPrefixesGroupBox);
}
private void saveTestResultToOracleCheckBox_CheckedChanged(object sender, EventArgs e)
{
ManageCheckGroupBox(saveTestResultToOracleCheckBox, saveRFTestResultGroupBox);
}
private void printLabelsCheckBox_CheckedChanged(object sender, EventArgs e)
{
ManageCheckGroupBox(printLabelsCheckBox, printLabelsGroupBox);
}
private void readSensorCheckBox_CheckedChanged(object sender, EventArgs e)
{
ManageCheckGroupBox(readSensorCheckBox, readSensorGroupBox);
}
}
}