黄学彪
2020-09-22 ade5917841b0fdcb1df7353ef7c56b1a1bdc9282
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs
@@ -24,6 +24,26 @@
            get { return Common.LocalDevice.Current.GetDevice(mainKey); }
        }
        /// <summary>
        /// 在线状态
        /// </summary>
        private bool m_isOnline = true;
        /// <summary>
        /// 在线状态
        /// </summary>
        public bool IsOnline
        {
            get { return m_isOnline; }
            set
            {
                if (m_isOnline != value)
                {
                    m_isOnline = value;
                    //设置在线状态的特效
                    this.SetOnlineStatu(m_isOnline);
                }
            }
        }
        /// <summary>
        /// 图标控件
        /// </summary>
        public IconViewControl btnIcon = null;
@@ -44,10 +64,21 @@
        /// 做成一个显示设备回路+房间的RowLayout
        /// </summary>
        /// <param name="i_device">设备对象</param>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(【列表控件的rowSpace/2】即可,不懂默认为0即可)</param>
        public DeviceRoomControl(CommonDevice i_device, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
        {
            this.mainKey = Common.LocalDevice.Current.GetDeviceMainKeys(i_device);
        }
        /// <summary>
        /// 做成一个显示设备回路+房间的RowLayout
        /// </summary>
        /// <param name="deviceMac">设备Mac地址</param>
        /// <param name="deviceEpoint">设备端口</param>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
        public DeviceRoomControl(string deviceMac, int deviceEpoint, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
        {
            this.mainKey = Common.LocalDevice.Current.GetDeviceMainKeys(deviceMac, deviceEpoint);
        }
        /// <summary>
@@ -55,26 +86,45 @@
        /// </summary>
        public void InitControl()
        {
            var tempDevice = device;
            //图标
            btnIcon = frameTable.AddLeftIcon();
            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, tempDevice);
            //设备
            string eName = Common.LocalDevice.Current.GetDeviceEpointName(device);
            btnDevie = frameTable.AddLeftCaption(eName, 600, 60);
            btnDevie = frameTable.AddLeftCaption("", 600, 60);
            btnDevie.TextSize = 15;
            //这个坐标有点特殊
            btnDevie.Y = Application.GetRealHeight(12) + this.chidrenYaxis;
            frameTable.AddChidren(btnDevie, ChidrenBindMode.BindEventOnly);
            frameTable.AddChidren(btnDevie, ChidrenBindMode.BindEvent);
            if (tempDevice != null)
            {
                btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(tempDevice);
            }
            else
            {
                //无法识别的设备
                btnDevie.Text = Language.StringByID(R.MyInternationalizationString.uUnDistinguishTheDevice);
                btnDevie.TextColor = 0xfff62f48;
            }
            //房间
            string roomName = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
            btnRoom = frameTable.AddLeftCaption(roomName, 600, 50, true);
            btnRoom = frameTable.AddLeftCaption("", 600, 50, true);
            //这个坐标有点特殊
            btnRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
            btnRoom.TextSize = 12;
            btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
            frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
            frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEvent);
            if (tempDevice != null)
            {
                btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(tempDevice);
            }
            else
            {
                //未分配区域
                btnRoom.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
                btnRoom.TextColor = 0xfff62f48;
            }
        }
        #endregion
@@ -87,15 +137,40 @@
        /// <param name="i_device"></param>
        public void RefreshControlInfo()
        {
            btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
            btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
            var tempDevice = device;
            if (tempDevice == null)
            {
                return;
            }
            btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(tempDevice);
            btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(tempDevice);
            string unSelectPath = string.Empty;
            string selectPath = string.Empty;
            Common.LocalDevice.Current.GetDeviceIcon(device, ref unSelectPath, ref selectPath);
            Common.LocalDevice.Current.GetDeviceIcon(tempDevice, ref unSelectPath, ref selectPath);
            btnIcon.UnSelectedImagePath = unSelectPath;
        }
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 设置在线状态的特效
        /// </summary>
        /// <param name="i_isOnline"></param>
        private void SetOnlineStatu(bool i_isOnline)
        {
            if (i_isOnline == false)
            {
                btnDevie.TextColor = UserCenterColor.Current.TextGrayColor1;
            }
            else
            {
                btnDevie.TextColor = UserCenterColor.Current.TextColor1;
            }
        }
        #endregion
    }
}