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