HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-10-10 2ed75b8b337048e5d75e6d9ec8307633134f02fd
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
using System;
using System.Collections.Generic;
using Shared.Common;
 
namespace Shared.Phone.Device.Category
{
    public class SelectFloor : FrameLayout
    {
 
        public Action<string> FloorAction;
 
 
        /// <summary>
        /// Init
        /// </summary>
        public void Init(int x,int y,CommonForm.Direction direction=CommonForm.Direction.Left)
        {
            var dialog = new FrameLayout()
            {
                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
            };
            AddChidren(dialog);
 
            dialog.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
 
            var bg = new Button
            {
                X = Application.GetRealWidth(x),
                Y = Application.GetRealHeight(y),
                Width = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(783),
                UnSelectedImagePath="Item/SelectFloor_Left.png"
            };
            dialog.AddChidren(bg);
            if(direction==CommonForm.Direction.Right)
            {
                bg.UnSelectedImagePath = "";
            }
 
            var backgroundFL = new FrameLayout
            {
                X = Application.GetRealWidth(x+10),
                Y = Application.GetRealHeight(y+23),
                Width = Application.GetMinRealAverage(449-20),
                Height = Application.GetMinRealAverage(783-23-10),
                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
            };
            dialog.AddChidren(backgroundFL);
 
            var tip = new Button
            {
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(350),
                Height = Application.GetRealHeight(150),
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = R.MyInternationalizationString.SelectFloor
            };
            backgroundFL.AddChidren(tip);
            tip.MouseUpEventHandler += (sender, e) =>
            {
                BackgroundColor = ZigbeeColor.Current.GXCRedColor;
            };
 
            var floorLayout = new VerticalScrolViewLayout
            {
                Y = tip.Bottom,
                Width = Application.GetMinRealAverage(449),
                Height = Application.GetMinRealAverage(600)
            };
            backgroundFL.AddChidren(floorLayout);
 
            if (Config.Instance.Home.FloorDics.Count > 0)
            {
                foreach (var floor in Config.Instance.Home.FloorDics)
                {
                    AddFloor(floorLayout, floor);
                }
            }
        }
 
        /// <summary>
        /// AddFloor
        /// </summary>
        /// <param name="verticalScrolView"></param>
        private void AddFloor(VerticalScrolViewLayout verticalScrolView, KeyValuePair<string, string> floor)
        {
            var frow = new CommonForm.LeftIconButtonRow(449, 150);
            frow.Tag = floor.Key;
            frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floor.Value);
            verticalScrolView.AddChidren(frow);
            if (Config.Instance.Home.CurrentFloorId == floor.Key)
            {
                frow.IsSelected = true;
            }
 
            frow.IconButton.MouseUpEventHandler += SelectFloor_MouseUpEvent;
            frow.TitleButton.MouseUpEventHandler += SelectFloor_MouseUpEvent;
        }
 
        private void SelectFloor_MouseUpEvent(object sender,MouseEventArgs mouseEventArgs)
        {
            ((sender as Button).Parent as CommonForm.LeftIconButtonRow).IsSelected = true;
            Config.Instance.Home.CurrentFloorId = (sender as Button).Tag.ToString();
            FloorAction?.Invoke(Config.Instance.Home.GetCurrentFloorName());
            RemoveFromParent();
        }
    }
 
}