xm
2020-07-10 acb2b278663952ce555b06a2e821f359225f15e0
ZigbeeApp/Shared/Phone/Category/SelectHouseForm.cs
New file
@@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using Shared.Common;
namespace Shared.Phone.Category
{
    public class SelectHouseForm : UserCenter.FrameLayoutBase
    {
        public Action<string> HouseAction;
        Dialog dialogBackground;
        /// <summary>
        /// Init
        /// </summary>
        public void Init()
        {
            dialogBackground = new Dialog
            {
                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
            };
            dialogBackground.Show();
            var dialog = new FrameLayout()
            {
            };
            dialogBackground.AddChidren(dialog);
            dialog.MouseUpEventHandler += (sender, e) =>
            {
                RemoveView();
            };
            var bg = new Button
            {
                X = Application.GetRealWidth(35),
                Y = Application.GetRealHeight(256),
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(773),
                UnSelectedImagePath = "Floor/SelectFloor_Left_4.png"
            };
            dialog.AddChidren(bg);
            var changeHomeFL = new FrameLayout()
            {
                X = Application.GetRealWidth(35),
                Y = Application.GetRealHeight(256+23),
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(773 - 23)
            };
            dialog.AddChidren(changeHomeFL);
            var changeHomeBtn = new Button()
            {
                X = Application.GetRealWidth(80),
                Width = this.GetPictrueRealSize(350),
                Height = this.GetPictrueRealSize(150),
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextID = R.MyInternationalizationString.ChangeHome,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = 14,
                IsBold = true
            };
            changeHomeFL.AddChidren(changeHomeBtn);
            var scrolView = new VerticalScrolViewLayout()
            {
                Y = changeHomeBtn.Bottom,
                Width = this.GetPictrueRealSize(449),
                Height = this.GetPictrueRealSize(600),
                VerticalScrollBarEnabled = false
            };
            changeHomeFL.AddChidren(scrolView);
            var houseCount = Config.Instance.HomeFilePathList.Count;
            if (Config.Instance.HomeFilePathList.Count > 0)
            {
                if (houseCount > 5)
                {
                    bg.UnSelectedImagePath = $"Floor/SelectFloor_Left_5.png";
                    bg.Height = this.GetPictrueRealSize(150 * 6 + 23);
                    changeHomeFL.Height = this.GetPictrueRealSize(150 * 6);
                    scrolView.Height = this.GetPictrueRealSize(150 * 5);
                }
                else
                {
                    bg.UnSelectedImagePath = $"Floor/SelectFloor_Left_{houseCount}.png";
                    bg.Height = this.GetPictrueRealSize(150 * (houseCount + 1) + 23);
                    changeHomeFL.Height = this.GetPictrueRealSize(150 * (houseCount + 1));
                    scrolView.Height = this.GetPictrueRealSize(150 * houseCount);
                }
                foreach (var housePath in Config.Instance.HomeFilePathList)
                {
                    var home = UserCenter.HdlResidenceLogic.Current.GetHouseByFilePath(housePath);
                    if (home == null)
                    {
                        continue;
                    }
                    AddFloor(scrolView, home);
                }
            }
        }
        /// <summary>
        /// AddFloor
        /// </summary>
        /// <param name="verticalScrolView"></param>
        private void AddFloor(VerticalScrolViewLayout verticalScrolView, House house)
        {
            var frow = new Device.CommonForm.LeftIconButtonRow(449, 150);
            frow.Width = this.GetPictrueRealSize(449);
            frow.Height = this.GetPictrueRealSize(150);
            frow.Tag = house.FileName;
            frow.Init("Item/House.png", "Item/HouseSelected.png", house.Name);
            verticalScrolView.AddChidren(frow);
            if (Config.Instance.HomeId == house.Id)
            {
                frow.IsSelected = true;
            }
            frow.ButtonClickEvent += SelectFloor_MouseUpEvent;
        }
        /// <summary>
        /// SelectFloor_MouseUpEvent
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="mouseEventArgs"></param>
        private void SelectFloor_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
        {
            (sender as Device.CommonForm.LeftIconButtonRow).IsSelected = true;
            var home = UserCenter.HdlResidenceLogic.Current.GetHouseByFilePath((sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString());
            RemoveView();
            HouseAction?.Invoke(home.Id);
        }
        /// <summary>
        /// RemoveView
        /// </summary>
        private void RemoveView()
        {
            dialogBackground.Close();
            RemoveFromParent();
        }
    }
}