protected override bool OnSave(object sender) { var groupSettings = new TemperatureGroupSettings(); groupSettings.name = (string)settings["Name"].setting; if (groupSettings.name == "Enter name") { MessageBox.Show("Invalid probe name"); return(false); } groupSettings.highTemperatureAlarmSetpoint = Convert.ToSingle(settings["High Alarm"].setting); groupSettings.lowTemperatureAlarmSetpoint = Convert.ToSingle(settings["Low Alarm"].setting); groupSettings.temperatureSetpoint = Convert.ToSingle(settings["Setpoint"].setting); groupSettings.temperatureDeadband = Convert.ToSingle(settings["Deadband"].setting); Temperature.UpdateTemperatureGroup(groupName, groupSettings); groupName = groupSettings.name; return(true); }
public TemperatureGroupSettingsDialog(TemperatureGroupSettings settings, Window parent) : base(settings.name + " Temperature", settings.name.IsNotEmpty(), parent) { groupName = settings.name; var t = new SettingsTextBox("Name"); if (groupName.IsNotEmpty()) { t.textBox.text = groupName; t.textBox.enableTouch = false; t.textBox.TextChangedEvent += (sender, args) => { MessageBox.Show("Can not change temperature group name during runtime"); args.keepText = false; }; } else { t.textBox.text = "Enter name"; t.textBox.TextChangedEvent += (sender, args) => { if (args.text.IsNotEmpty()) { args.keepText = false; } else if (Temperature.TemperatureGroupNameExists(args.text)) { MessageBox.Show("Temperature group name already exists"); args.keepText = false; } }; } AddSetting(t); t = new SettingsTextBox("Setpoint"); if (groupName.IsNotEmpty()) { t.textBox.text = Temperature.GetTemperatureGroupTemperatureSetpoint(groupName).ToString(); } else { t.textBox.text = "0.0"; } t.textBox.TextChangedEvent += (sender, args) => { try { Convert.ToSingle(args.text); } catch { MessageBox.Show("Improper floating point number format"); args.keepText = false; } }; AddSetting(t); t = new SettingsTextBox("Deadband"); if (groupName.IsNotEmpty()) { t.textBox.text = Temperature.GetTemperatureGroupTemperatureDeadband(groupName).ToString(); } else { t.textBox.text = "0.5"; } t.textBox.TextChangedEvent += (sender, args) => { try { Convert.ToSingle(args.text); } catch { MessageBox.Show("Improper floating point number format"); args.keepText = false; } }; AddSetting(t); t = new SettingsTextBox("High Alarm"); if (groupName.IsNotEmpty()) { t.textBox.text = Temperature.GetTemperatureGroupHighTemperatureAlarmSetpoint(groupName).ToString(); } else { t.textBox.text = "100.0"; } t.textBox.TextChangedEvent += (sender, args) => { try { Convert.ToSingle(args.text); } catch { MessageBox.Show("Improper floating point number format"); args.keepText = false; } }; AddSetting(t); t = new SettingsTextBox("Low Alarm"); if (groupName.IsNotEmpty()) { t.textBox.text = Temperature.GetTemperatureGroupLowTemperatureAlarmSetpoint(groupName).ToString(); } else { t.textBox.text = "0.0"; } t.textBox.TextChangedEvent += (sender, args) => { try { Convert.ToSingle(args.text); } catch { MessageBox.Show("Improper floating point number format"); args.keepText = false; } }; AddSetting(t); DrawSettings(); }
protected void CallTemperatureGroupSettingsDialog(bool forceNew = false) { TemperatureGroupSettings settings; if (groupName.IsNotEmpty() && !forceNew) { settings = Temperature.GetTemperatureGroupSettings(groupName); } else { settings = new TemperatureGroupSettings(); } var parent = Toplevel as Window; var s = new TemperatureGroupSettingsDialog(settings, parent); s.Run(); var newGroupName = s.groupName; var outcome = s.outcome; if ((outcome == TouchSettingsOutcome.Modified) && (newGroupName != groupName)) { var index = groupCombo.comboList.IndexOf(groupName); groupCombo.comboList[index] = newGroupName; groupName = newGroupName; } else if (outcome == TouchSettingsOutcome.Added) { groupCombo.comboList.Insert(groupCombo.comboList.Count - 1, newGroupName); groupCombo.activeText = newGroupName; groupName = newGroupName; probeWidget.sensorCombo.comboList.Clear(); probeWidget.sensorCombo.comboList.Add("New level sensor..."); probeWidget.sensorCombo.activeIndex = 0; probeWidget.sensorCombo.QueueDraw(); probeWidget.sensorName = string.Empty; heaterCombo.comboList.Clear(); heaterCombo.comboList.Add("New heater..."); heaterCombo.activeIndex = 0; heaterCombo.QueueDraw(); heaterName = string.Empty; } else if (outcome == TouchSettingsOutcome.Deleted) { groupCombo.comboList.Remove(groupName); groupName = Temperature.defaultTemperatureGroup; if (groupName.IsNotEmpty()) { groupCombo.activeText = groupName; } else { groupCombo.activeIndex = 0; } probeWidget.sensorCombo.comboList.Clear(); if (groupName.IsNotEmpty()) { var groupsTemperatureProbes = Temperature.GetAllTemperatureProbesForTemperatureGroup(groupName); if (groupsTemperatureProbes.Length > 0) { probeWidget.sensorCombo.comboList.AddRange(groupsTemperatureProbes); probeWidget.sensorName = groupsTemperatureProbes[0]; } else { probeWidget.sensorName = string.Empty; } } probeWidget.sensorCombo.comboList.Add("New level sensor..."); probeWidget.sensorCombo.activeIndex = 0; probeWidget.sensorCombo.QueueDraw(); heaterCombo.comboList.Clear(); if (groupName.IsNotEmpty()) { var heaterNames = Devices.Heater.GetAllHeatersForTemperatureGroup(groupName); if (heaterNames.Length > 0) { heaterCombo.comboList.AddRange(heaterNames); heaterName = heaterNames[0]; } else { heaterName = string.Empty; } } heaterCombo.comboList.Add("New heater..."); heaterCombo.activeIndex = 0; heaterCombo.QueueDraw(); } groupCombo.QueueDraw(); GetGroupData(); probeWidget.GetSensorData(); GetHeaterData(); }