using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter { /// /// 做成一个显示设备类型+设备MAC备注的RowLayout /// public class DeviceObjectControl : RowLayoutControl { #region ■ 变量声明___________________________ /// /// 设备的Mac地址 /// public string deviceMac = string.Empty; /// /// 只会刷新一次 /// private bool hadRefresh = false; /// /// 在线状态 /// private bool m_isOnline = false; /// /// 传感器推送中 /// private bool sensorPushing = false; /// /// 在线状态 /// public bool isOnline { get { return m_isOnline; } set { m_isOnline = value; //设置在线状态的特效 this.SetOnlineStatu(m_isOnline); } } /// /// 图标控件 /// public IconViewControl btnIcon = null; /// /// 设备备注控件 /// private NormalViewControl btnDeviceName = null; /// /// 设备房间控件 /// private NormalViewControl btnDeviceRoom = null; #endregion #region ■ 初始化_____________________________ /// /// 做成一个显示设备类型+设备MAC备注的RowLayout /// /// 设备的Mac地址 /// 子控件Y轴偏移量(真实值,有些界面需要这种特殊操作) public DeviceObjectControl(string i_deviceMac, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis) { this.deviceMac = i_deviceMac; } /// /// 初始化内部控件 /// public void InitControl() { var listDevice = Common.LocalDevice.Current.GetDevicesByMac(this.deviceMac); //图标 btnIcon = frameTable.AddLeftIcon(81); Common.LocalDevice.Current.SetDeviceBeloneIconToControl(btnIcon, listDevice); //设备 string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listDevice[0]); btnDeviceName = frameTable.AddLeftCaption(deviceName, 800, 60, true); btnDeviceName.TextSize = 15; //这个坐标有点特殊 btnDeviceName.Y = Application.GetRealHeight(12) + this.chidrenYaxis; btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceObjectText(listDevice); frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly); //房间 string roomName = Common.LocalDevice.Current.GeteRealDeviceRoomName(listDevice[0]); btnDeviceRoom = frameTable.AddLeftCaption(roomName, 800, 49, true); //这个坐标有点特殊 btnDeviceRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis; btnDeviceRoom.TextSize = 12; btnDeviceRoom.TextColor = UserCenterColor.Current.TextGrayColor1; frameTable.AddChidren(btnDeviceRoom, ChidrenBindMode.BindEventOnly); //底线 frameTable.AddBottomLine(); //设置在线状态的特效 this.isOnline = listDevice[0].IsOnline == 1; } #endregion #region ■ 一般方法___________________________ /// /// 设置在线状态的特效 /// /// private void SetOnlineStatu(bool isOnline) { if (isOnline == false) { btnDeviceName.TextColor = UserCenterColor.Current.TextGrayColor1; } else { btnDeviceName.TextColor = UserCenterColor.Current.TextColor1; } } /// /// 刷新全部显示信息 /// /// 是否强制执行 public void RefreshControlInfo(bool compel = false) { if (hadRefresh == true && compel == false) { return; } hadRefresh = true; var listDevice = Common.LocalDevice.Current.GetDevicesByMac(this.deviceMac); //图标 Common.LocalDevice.Current.SetDeviceBeloneIconToControl(btnIcon, listDevice); //设备 btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceMacName(listDevice[0]); //设备房间 btnDeviceRoom.Text = Common.LocalDevice.Current.GeteRealDeviceRoomName(listDevice[0]); //设置在线状态的特效 this.isOnline = listDevice[0].IsOnline == 1; } /// /// 显示传感器上报的特效 /// public void StartSensorPushAppeal() { if (this.sensorPushing == true) { //传感器正在特效中 return; } this.sensorPushing = true; //设备 uint oldTextColor1 = btnDeviceName.TextColor; btnDeviceName.TextColor = UserCenterColor.Current.TextOrangeColor; //设备房间 uint oldTextColor2 = btnDeviceRoom.TextColor; btnDeviceRoom.TextColor = UserCenterColor.Current.TextOrangeColor; HdlThreadLogic.Current.RunThread(() => { System.Threading.Thread.Sleep(5000); HdlThreadLogic.Current.RunMain(() => { if (btnDeviceName.Parent != null) { //设备 btnDeviceName.TextColor = oldTextColor1; //设备房间 btnDeviceRoom.TextColor = oldTextColor2; } this.sensorPushing = false; }, ShowErrorMode.NO); }); } #endregion } }