Exemple #1
0
        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);
        }
Exemple #2
0
        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
                }
            });
        }
Exemple #3
0
        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
                }
            });
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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;
        }