xm
2019-07-16 b910cb79c9b5bcc204022a3cf9e6950f0a64dfbd
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 做成一个设备选择的行控件
    /// </summary>
    public class DeviceSelectRow : StatuRowLayout
    {
        /// <summary>
        /// 设备
        /// </summary>
        public ZigBee.Device.CommonDevice device = null;
        /// <summary>
        /// 选择的状态是否能够取消
        /// </summary>
        public bool SelectCancel = true;
        /// <summary>
        /// 图标控件
        /// </summary>
        private RowLeftIconView btnIcon = null;
        /// <summary>
        /// 设备控件
        /// </summary>
        private RowTopBlackView btnDevie = null;
        /// <summary>
        /// 房间控件
        /// </summary>
        private RowBottomGrayView btnRoom = null;
        /// <summary>
        /// 选择控件
        /// </summary>
        private MostRightEmptyView btnSelect = null;
        /// <summary>
        /// 状态
        /// </summary>
        private StatuMode Statu = StatuMode.UN_SELECT;
        /// <summary>
        /// 是否处于选择状态
        /// </summary>
        public bool IsSelected
        {
            get { return Statu == StatuMode.SELECT; }
            set
            {
                if (value == false)
                {
                    if (SelectCancel == true)
                    {
                        this.SetUnselectStatu();
                    }
                }
                else
                {
                    this.SetSelectStatu();
                }
            }
        }
 
        /// <summary>
        /// 做成一个设备选择的行控件
        /// </summary>
        /// <param name="listView">列表控件,可以为空</param>
        /// <param name="i_device">设备对象</param>
        public DeviceSelectRow(VerticalScrolViewLayout listView, ZigBee.Device.CommonDevice i_device)
        {
            this.device = i_device;
 
            this.MouseUpEvent += (sender, e) =>
            {
                this.IsSelected = Statu == StatuMode.SELECT ? false : true;
            };
            if (listView != null)
            {
                listView.AddChidren(this);
                //初始化内部控件
                this.InitControl();
            }
        }
 
        /// <summary>
        /// 初始化内部控件
        /// </summary>
        public void InitControl()
        {
            //图标
            btnIcon = new RowLeftIconView();
            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
 
            if (btnIcon.UnSelectedImagePath != null
                && btnIcon.UnSelectedImagePath.Contains(ZigBee.Device.DeviceType.OnOffSwitch.ToString()) == true)
            {
                //将控件适配为【点号】控件
                btnIcon.ChangedControlInPointMode();
                btnIcon.UnSelectedImagePath = "Device/OnOffSwitch.png";
                btnIcon.SelectedImagePath = "Device/OnOffSwitchSelected.png";
            }
            this.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
 
            //设备
            btnDevie = new RowTopBlackView();
            btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
            this.AddChidren(btnDevie, ChidrenBindMode.BindEventOnly);
 
            //房间
            btnRoom = new RowBottomGrayView();
            btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
            this.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
 
            //选择
            btnSelect = new MostRightEmptyView();
            btnSelect.Visible = false;
            btnSelect.UnSelectedImagePath = "Item/TickSelected.png";
            this.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
        }
 
        /// <summary>
        /// 移除房间控件
        /// </summary>
        public void RemoveRoomControl()
        {
            //移除事件
            this.ChangedChidrenBindMode(btnRoom, ChidrenBindMode.NotBind);
            this.btnRoom.RemoveFromParent();
            this.btnDevie.Gravity = Gravity.CenterVertical;
        }
 
        /// <summary>
        /// 设定选择状态
        /// </summary>
        public void SetSelectStatu()
        {
            if (Statu == StatuMode.SELECT)
            {
                return;
            }
            btnIcon.IsSelected = true;
            btnDevie.TextColor = UserCenterColor.Current.SelectTextColor;
            btnRoom.TextColor = UserCenterColor.Current.SelectTextColor;
            btnSelect.Visible = true;
            //状态变更
            Statu = StatuMode.SELECT;
        }
 
        /// <summary>
        /// 设置非选择状态
        /// </summary>
        public void SetUnselectStatu()
        {
            if (Statu == StatuMode.UN_SELECT)
            {
                return;
            }
            btnIcon.IsSelected = false;
            btnDevie.TextColor = UserCenterColor.Current.TextColor;
            btnRoom.TextColor = UserCenterColor.Current.TextGrayColor;
            btnSelect.Visible = false;
            //状态变更
            Statu = StatuMode.UN_SELECT;
        }
    }
}