HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-01-06 72be4f06a683de33ddd563c8447c39f7f17e5b7d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using Shared.Common;
 
namespace Shared.Phone.Device.Category
{
    public class SelectHouse : FrameLayout
    {
        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 = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(475),
                UnSelectedImagePath = "Item/SelectHouse.png"
            };
            dialog.AddChidren(bg);
 
            var changeHomeFL = new FrameLayout()
            {
                X = Application.GetRealWidth(35),
                Y = Application.GetRealHeight(256),
                Height = Application.GetMinRealAverage(449),
                Width = Application.GetMinRealAverage(475),
                Radius = CommonPage.BigFormRadius,
                //BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
            };
            dialog.AddChidren(changeHomeFL);
 
            var changeHomeBtn = new Button()
            {
                X = Application.GetRealWidth(80),
                Y=Application.GetRealHeight(20),
                Width = Application.GetRealWidth(350),
                Height = Application.GetMinRealAverage(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,
                Height = Application.GetMinRealAverage(300),
                VerticalScrollBarEnabled = false
            };
            changeHomeFL.AddChidren(scrolView);
 
            if (Config.Instance.HomeFilePathList.Count > 0)
            {
                foreach (var housePath in Config.Instance.HomeFilePathList)
                {
                    var home = House.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 CommonForm.LeftIconButtonRow(449, 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 CommonForm.LeftIconButtonRow).IsSelected = true;
            var home = House.GetHouseByFilePath((sender as CommonForm.LeftIconButtonRow).Tag.ToString());
            RemoveView();
            HouseAction?.Invoke(home.Id);
        }
 
        /// <summary>
        /// RemoveView
        /// </summary>
        private void RemoveView()
        {
            dialogBackground.Close();
            RemoveFromParent();
        }
    }
}