黄学彪
2020-12-16 0d9f64668fd7350d6a21fd157e32009a96d98134
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
using Shared.Phone.UserCenter;
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
 
namespace Shared.Phone.MainPage.Controls
{
    /// <summary>
    /// 未分配界面的设备选择控件
    /// </summary>
    public class DeviceSelectUnallocatedControl : FrameRowControl
    {
        #region ■ 变量声明___________________________
 
        /// <summary>
        /// 设备对象
        /// </summary>
        public CommonDevice device;
        /// <summary>
        /// 状态
        /// </summary>
        private StatuMode Statu = StatuMode.UN_SELECT;
        /// <summary>
        /// 是否处于选择状态
        /// </summary>
        public bool IsSelected
        {
            get { return Statu == StatuMode.SELECT; }
            set
            {
                if (value == false)
                {
                    this.SetUnselectStatu();
                }
                else
                {
                    this.SetSelectStatu();
                }
            }
        }
 
        /// <summary>
        /// 设备图标背景控件
        /// </summary>
        private FrameLayout frameIconBackGroud = null;
        /// <summary>
        /// 设备图标控件
        /// </summary>
        private IconViewControl btnDeviceIcon = null;
        /// <summary>
        /// 设备名字控件
        /// </summary>
        private NormalViewControl btnDeviceName = null;
        /// <summary>
        /// 选择控件
        /// </summary>
        private MostRightIconControl btnSelect = null;
 
        #endregion
 
        #region ■ 初始化_____________________________
 
        /// <summary>
        /// 未分配界面的设备选择控件
        /// </summary>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(【列表控件的rowSpace/2】即可,不懂默认为0即可)</param>
        public DeviceSelectUnallocatedControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
        {
            this.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
        }
 
        /// <summary>
        /// 初始化控件
        /// </summary>
        /// <param name="i_device">设备对象</param>
        public void InitControl(CommonDevice i_device)
        {
            this.device = i_device;
            //设备图标背景控件
            this.frameIconBackGroud = new FrameLayout();
            frameIconBackGroud.Height = this.GetPictrueRealSize(112);
            frameIconBackGroud.Width = this.GetPictrueRealSize(112);
            frameIconBackGroud.Gravity = Gravity.CenterVertical;
            frameIconBackGroud.X = Application.GetRealWidth(46);
            frameIconBackGroud.Radius = (uint)this.GetPictrueRealSize(112 / 2);
            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
            this.AddChidren(frameIconBackGroud, ChidrenBindMode.NotBind);
            if (chidrenYaxis != 0)
            {
                frameIconBackGroud.Y += chidrenYaxis;
            }
 
            //设备图标控件
            this.btnDeviceIcon = new IconViewControl(78);
            btnDeviceIcon.Gravity = Gravity.Center;
            HdlDeviceCommonLogic.Current.SetDeviceIconToControl(btnDeviceIcon, i_device);
            frameIconBackGroud.AddChidren(btnDeviceIcon);
            //重新绑定事件
            this.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEvent);
 
            //设备名字
            this.btnDeviceName = new NormalViewControl(Application.GetRealWidth(600), this.Height, false);
            btnDeviceName.X = Application.GetRealWidth(181);
            btnDeviceName.Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(i_device);
            btnDeviceName.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
            btnDeviceName.Gravity = Gravity.CenterVertical;
            this.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
            if (chidrenYaxis != 0)
            {
                btnDeviceName.Y += chidrenYaxis;
            }
 
            //选择控件
            this.btnSelect = new MostRightIconControl(70, 70);
            btnSelect.X = Application.GetRealWidth(895);
            btnSelect.UseClickStatu = false;
            btnSelect.UnSelectedImagePath = "Room/ItemUnSelected_Black.png";
            btnSelect.SelectedImagePath = "Room/ItemSelected.png";
            this.AddChidren(btnSelect, ChidrenBindMode.NotBind);
            btnSelect.InitControl();
            //复合控件需要特殊处理
            this.ChangedChidrenBindMode(btnSelect, ChidrenBindMode.BindEvent);
            if (chidrenYaxis != 0)
            {
                btnSelect.btnIcon.Y += chidrenYaxis;
            }
 
            //底线
            var btnBottomLine = new NormalViewControl(Application.GetRealWidth(835), HdlControlResourse.BottomLineHeight, false);
            btnBottomLine.X = Application.GetRealWidth(181);
            btnBottomLine.Y = this.Height - HdlControlResourse.BottomLineHeight;
            btnBottomLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
            this.AddChidren(btnBottomLine, ChidrenBindMode.NotBind);
        }
 
        #endregion
 
        #region ■ 选择状态___________________________
 
        /// <summary>
        /// 设定选择状态
        /// </summary>
        private void SetSelectStatu()
        {
            if (Statu == StatuMode.SELECT)
            {
                return;
            }
            btnDeviceIcon.IsSelected = true;
            btnDeviceName.IsSelected = true;
            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCSelectedBackgroundColor;
            btnSelect.IsSelected = true;
            //状态变更
            Statu = StatuMode.SELECT;
        }
 
        /// <summary>
        /// 设置非选择状态
        /// </summary>
        private void SetUnselectStatu()
        {
            if (Statu == StatuMode.UN_SELECT)
            {
                return;
            }
            btnDeviceIcon.IsSelected = false;
            btnDeviceName.IsSelected = false;
            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
            btnSelect.IsSelected = false;
            //状态变更
            Statu = StatuMode.UN_SELECT;
        }
        #endregion
    }
}