private DynamicLayout GenRadSettingsPanel() { //radiant system var radFaceType = new EnumDropDown <HoneybeeSchema.RadiantFaceTypes>(); radFaceType.Bind(_ => _.SelectedValue, _vm, _ => _.RadiantFaceType); //radFaceType.Bind(_ => _.Visible, _vm, _ => _.RadiantVisable); var minOptTime = new NumericStepper() { MinValue = 0, MaxValue = 24, MaximumDecimalPlaces = 1, Increment = 1 }; var switchOverTime = new NumericStepper() { MinValue = 0, MaxValue = 24, MaximumDecimalPlaces = 1, Increment = 1 }; minOptTime.Bind(_ => _.Value, _vm, _ => _.MinOptTime); //minOptTime.Bind(_ => _.Visible, _vm, _ => _.RadiantVisable); switchOverTime.Bind(_ => _.Value, _vm, _ => _.SwitchTime); //switchOverTime.Bind(_ => _.Visible, _vm, _ => _.RadiantVisable); var radSettings = new DynamicLayout(); radSettings.DefaultSpacing = new Size(5, 2); radSettings.Bind(_ => _.Visible, _vm, _ => _.RadiantVisable); radSettings.AddRow("Radiant Face Type:"); radSettings.AddRow(radFaceType); radSettings.AddRow("Minimum Operation Time:"); radSettings.AddRow(minOptTime); radSettings.AddRow("Switch Over Time:"); radSettings.AddRow(switchOverTime); return(radSettings); }
Control CreateClientSizeControls() { var setClientSize = new CheckBox { Text = "ClientSize" }; setClientSize.CheckedBinding.Bind(() => setInitialClientSize, v => setInitialClientSize = v ?? false); var left = new NumericStepper(); left.Bind(c => c.Enabled, setClientSize, c => c.Checked); left.ValueBinding.Bind(() => initialClientSize.Width, v => initialClientSize.Width = (int)v); var top = new NumericStepper(); top.Bind(c => c.Enabled, setClientSize, c => c.Checked); top.ValueBinding.Bind(() => initialClientSize.Height, v => initialClientSize.Height = (int)v); return(new StackLayout { Orientation = Orientation.Horizontal, Items = { setClientSize, left, top } }); }
Control CreateInitialLocationControls() { var setLocationCheckBox = new CheckBox { Text = "Initial Location" }; setLocationCheckBox.CheckedBinding.Bind(() => setInitialLocation, v => setInitialLocation = v ?? false); var left = new NumericStepper(); left.Bind(c => c.Enabled, setLocationCheckBox, c => c.Checked); left.ValueBinding.Bind(() => initialLocation.X, v => initialLocation.X = (int)v); var top = new NumericStepper(); top.Bind(c => c.Enabled, setLocationCheckBox, c => c.Checked); top.ValueBinding.Bind(() => initialLocation.Y, v => initialLocation.Y = (int)v); return(new StackLayout { Orientation = Orientation.Horizontal, Items = { setLocationCheckBox, left, top } }); }
Control PenThicknessControl() { var control = new NumericStepper { MinValue = 1, MaxValue = 10 }; control.Bind(c => c.Value, this, r => r.PenThickness); control.ValueChanged += Refresh; var layout = new DynamicLayout { Padding = Padding.Empty }; layout.AddRow(new Label { Text = "Thickness Step:", VerticalAlignment = VerticalAlignment.Center }, control); return(layout); }
Control CreateMinimumSizeControls() { var setMinimumSize = new CheckBox { Text = "MinimumSize" }; setMinimumSize.CheckedBinding.Bind(() => setInitialMinimumSize, v => { setInitialMinimumSize = v ?? false; if (v == true && child != null) { child.MinimumSize = initialMinimumSize; } }); var width = new NumericStepper(); width.Bind(c => c.Enabled, setMinimumSize, c => c.Checked); width.ValueBinding.Bind(() => initialMinimumSize.Width, v => { initialMinimumSize.Width = (int)v; if (child != null) { child.MinimumSize = initialMinimumSize; } }); var height = new NumericStepper(); height.Bind(c => c.Enabled, setMinimumSize, c => c.Checked); height.ValueBinding.Bind(() => initialMinimumSize.Height, v => initialMinimumSize.Height = (int)v); return(new StackLayout { Orientation = Orientation.Horizontal, Items = { setMinimumSize, width, height } }); }
//private ModelEnergyProperties ModelEnergyProperties { get; set; } public Dialog_SHW(HoneybeeSchema.SHWSystem shw = default, bool lockedMode = false, Func <string> roomIDPicker = default) { var sys = shw ?? new SHWSystem($"SHWSystem_{Guid.NewGuid().ToString().Substring(0, 8)}"); var vm = new SHWViewModel(sys, this); vm.SetAmbientCoffConditionRoomPicker(roomIDPicker); //Padding = new Padding(4); Title = $"Service Hot Water - {DialogHelper.PluginName}"; WindowStyle = WindowStyle.Default; Width = 450; this.Icon = DialogHelper.HoneybeeIcon; var layout = new DynamicLayout(); layout.DefaultSpacing = new Size(5, 5); layout.Padding = new Padding(10); //string identifier, //string displayName = null, //object userData = null, //SHWEquipmentType equipmentType = SHWEquipmentType.Gas_WaterHeater, //AnyOf<double, Autocalculate> heaterEfficiency = null, //AnyOf< double, string> ambientCondition = null, //double ambientLossCoefficient = 6.0 var nameText = new TextBox(); var eqpType = new EnumDropDown <SHWEquipmentType>(); var heaterEffAuto = new RadioButton() { Text = "Autocalculate" }; var heaterEffNumber = new RadioButton(); var heaterEff = new NumericStepper(); // ambientCoffCondition var ambientLayout = new DynamicLayout(); ambientLayout.DefaultSpacing = new Size(5, 5); var ambientCoffConditionNumber = new RadioButton(); var ambientCoffConditionRoom = new RadioButton() { Text = "Room ID" }; var ambientCoffCondition = new DoubleText() { Width = 370 }; var ambientCoffConditionRoomLayout = new DynamicLayout(); var ambientCoffConditionRoomID = new TextBox(); var ambientCoffConditionRoomID_btn = new Button(); ambientCoffConditionRoomLayout.AddRow(ambientCoffConditionRoomID); ambientCoffConditionRoomLayout.AddRow(ambientCoffConditionRoomID_btn); var ambientCoffConditionUnit = new Label(); ambientCoffConditionUnit.TextBinding.Bind(vm, _ => _.AmbientCoffConditionNumber.DisplayUnitAbbreviation); ambientLayout.AddSeparateRow("Ambient Condition:"); ambientLayout.AddSeparateRow(ambientCoffConditionNumber, ambientCoffCondition, ambientCoffConditionUnit); ambientLayout.AddSeparateRow(ambientCoffConditionRoom, ambientCoffConditionRoomLayout); ambientLayout.Bind(_ => _.Enabled, vm, _ => _.AmbientCoffConditionEnabled); var ambientLossCoefficient = new NumericStepper() { MaximumDecimalPlaces = 2 }; nameText.Bind(_ => _.Text, vm, _ => _.Name); eqpType.Bind(_ => _.SelectedValue, vm, _ => _.EquipType); heaterEffAuto.Bind(c => c.Checked, vm, _ => _.HeaterEffAuto); heaterEffNumber.Bind(c => c.Checked, vm, _ => _.HeaterEffEnabled); heaterEff.Bind(c => c.Value, vm, _ => _.HeaterEff); heaterEff.Bind(c => c.Enabled, vm, _ => _.HeaterEffEnabled); ambientCoffConditionNumber.Bind(c => c.Checked, vm, _ => _.AmbientCoffConditionNumberEnabled); ambientCoffConditionRoom.Bind(c => c.Checked, vm, _ => _.AmbientCoffConditionRoomIDEnabled); //ambientCoffCondition.Bind(c => c.Value, vm, _ => _.AmbientCoffConditionNumber); ambientCoffCondition.Bind(c => c.Enabled, vm, _ => _.AmbientCoffConditionNumberEnabled); ambientCoffConditionRoomLayout.Bind(c => c.Enabled, vm, _ => _.AmbientCoffConditionRoomIDEnabled); ambientCoffConditionRoomID.Bind(c => c.Text, vm, _ => _.AmbientCoffConditionRoomID); ambientCoffConditionRoomID.Bind(_ => _.Visible, vm, _ => _.VisibleAmbientCoffConditionRoomInput); ambientCoffConditionRoomID_btn.Bind(_ => _.Text, vm, _ => _.AmbientCoffConditionRoomID); ambientCoffConditionRoomID_btn.Bind(_ => _.Visible, vm, _ => _.VisibleAmbientCoffConditionRoomPicker); ambientCoffConditionRoomID_btn.Command = vm.AmbientCoffConditionRoomPickerCommand; ambientCoffCondition.ReservedText = ReservedText.Varies; ambientCoffCondition.SetDefault(22); ambientCoffCondition.TextBinding.Bind(vm, _ => _.AmbientCoffConditionNumber.NumberText); ambientLossCoefficient.Bind(_ => _.Value, vm, _ => _.AmbientLostCoff); layout.AddRow("Name:"); layout.AddRow(nameText); layout.AddRow("Equipment Type:"); layout.AddRow(eqpType); layout.AddRow("Heater Efficiency:"); layout.AddRow(heaterEffAuto); layout.AddSeparateRow(heaterEffNumber, heaterEff); layout.AddRow(ambientLayout); layout.AddRow("Ambient Loss Coefficient [W/K]"); layout.AddRow(ambientLossCoefficient); var locked = new CheckBox() { Text = "Locked", Enabled = false }; locked.Checked = lockedMode; var OKButton = new Button { Text = "OK", Enabled = !lockedMode }; OKButton.Click += (sender, e) => { try { OkCommand.Execute(vm.GreateSys(shw)); } catch (Exception er) { MessageBox.Show(this, er.Message); //throw; } }; var abortButton = new Button { Text = "Cancel" }; abortButton.Click += (sender, e) => Close(); var hbData = new Button { Text = "Data" }; hbData.Click += (sender, e) => Dialog_Message.Show(this, vm.GreateSys(shw).ToJson(true), "Schema Data"); layout.AddSeparateRow(locked, null, OKButton, abortButton, null, hbData); layout.AddRow(null); Content = layout; }