黄学彪
2019-10-24 31497bb69602433d94c8a28ea01c3ee3c7cc8576
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -1,4 +1,5 @@
using System;
using Shared.Common;
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
@@ -213,7 +214,10 @@
            rowMenu.InitControl();
            rowInfo.MenuRow = rowMenu;
            //向右图标
            var btnRight = rowMenu.frameTable.AddRightArrow();
            var btnRight = rowMenu.frameTable.AddMostRightEmptyIcon(58, 58);
            rowMenu.frameTable.ChangedChidrenBindMode(btnRight, ChidrenBindMode.NotBind);
            btnRight.UseClickStatu = false;
            btnRight.UnSelectedImagePath = "Item/Next.png";
            btnRight.SelectedImagePath = "Item/Down.png";
            //提示新版本
@@ -241,22 +245,21 @@
                };
            }
            //展开,折叠
            btnRight.ButtonClickEvent += (sender, e) =>
            {
                btnRight.IsSelected = !btnRight.IsSelected;
                //展开或者折叠明细列表
                this.ShowDetailList(deviceMac, btnRight.IsSelected);
            };
            rowMenu.frameTable.ButtonClickEvent += (sender, e) =>
            {
                //多回路的情况下,才会展开
                if (Common.LocalDevice.Current.GetDevicesByMac(deviceMac).Count == 1)
                {
                    var form = new DeviceMacInfoEditorForm();
                    form.AddForm(deviceMac);
                    //界面跳转,记录当前的正在操作的设备的Mac地址
                    this.nowActionDeviceMac = deviceMac;
                }
                else
                {
                    btnRight.IsSelected = !btnRight.IsSelected;
                    //展开或者折叠明细列表
                    this.ShowDetailList(deviceMac, btnRight.IsSelected);
                }
                btnNew.Visible = false;
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(deviceMac);
                //界面跳转,记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = deviceMac;
            };
        }
@@ -284,10 +287,12 @@
                //标题自己就是一个子控件
                if (rowInfo.frameTable.ChildrenCount == 1)
                {
                    //获取这一堆设备时属于什么类型的
                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
                    foreach (CommonDevice info in listDevice)
                    {
                        //加载它的列表
                        this.AddDeviceDetailRow(rowInfo.frameTable, info);
                        this.AddDeviceDetailRow(rowInfo.frameTable, info, deviceEnumInfo);
                    }
                }
            }
@@ -300,7 +305,8 @@
        /// </summary>
        /// <param name="frame">容器</param>
        /// <param name="device"></param>
        private void AddDeviceDetailRow(FrameListControl frame, CommonDevice device)
        /// <param name="deviceEnumInfo"></param>
        private void AddDeviceDetailRow(FrameListControl frame, CommonDevice device, DeviceEnumInfo deviceEnumInfo)
        {
            var rowInfo = this.dicRowInfo[device.DeviceAddr];
            if (rowInfo.dicDetailRow == null)
@@ -344,11 +350,82 @@
            rowDevice.frameTable.ButtonClickEvent += (sender, e) =>
            {
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(device.DeviceAddr);
                //界面跳转,记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = device.DeviceAddr;
                //显示设备功能配置界面
                this.ShowDeviceFunctionSettionForm(device, deviceEnumInfo);
            };
        }
        /// <summary>
        /// 显示设备功能配置界面
        /// </summary>
        /// <param name="device"></param>
        /// <param name="deviceEnumInfo"></param>
        private void ShowDeviceFunctionSettionForm(CommonDevice device, DeviceEnumInfo deviceEnumInfo)
        {
            //智能门锁
            if (deviceEnumInfo.BeloneType == DeviceBeloneType.A智能门锁)
            {
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(device.DeviceAddr);
            }
            //面板设备
            else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A按键面板)
            {
                //干接点
                if (device.Type == DeviceType.OnOffSwitch)
                {
                    //河东设备
                    if (deviceEnumInfo.IsHdlDevice == true)
                    {
                        var form = new DevicePanel.PanelButtonSettionForm();
                        form.AddForm(device);
                    }
                    else
                    {
                        var form = new DeviceDryContactSettionForm();
                        form.AddForm(device);
                    }
                }
                //继电器
                else if (device.Type == DeviceType.OnOffOutput)
                {
                    //河东设备
                    if (deviceEnumInfo.IsHdlDevice == true)
                    {
                        var form = new DevicePanel.PanelFunctionSettionForm();
                        form.AddForm(device);
                    }
                    else
                    {
                        var form = new DeviceFunctionSettionForm();
                        form.AddForm(device, true);
                    }
                }
                //温湿度
                else if (device.Type == DeviceType.TemperatureSensor)
                {
                    var form = new DeviceFunctionSettionForm();
                    form.AddForm(device, true);
                }
                else
                {
                    var form = new DeviceFunctionSettionForm();
                    form.AddForm(device, true);
                }
            }
            //如果是干接点
            else if (device.Type == DeviceType.OnOffSwitch)
            {
                var form = new DeviceDryContactSettionForm();
                form.AddForm(device);
            }
            else
            {
                var form = new DeviceFunctionSettionForm();
                form.AddForm(device, true);
            }
        }
        #endregion
@@ -770,30 +847,29 @@
        /// </summary>
        public override int FormActionAgainEvent()
        {
            if (this.nowActionDeviceMac == null)
            if (this.nowActionDeviceMac != null)
            {
                return 1;
            }
            var rowInfo = this.dicRowInfo[nowActionDeviceMac];
            //检测这个设备是否被删除
            if (Common.LocalDevice.Current.GetDevicesByMac(nowActionDeviceMac).Count == 0)
            {
                //移除控件
                rowInfo.dicDetailRow = null;
                rowInfo.frameTable.RemoveFromParent();
                this.dicRowInfo.Remove(nowActionDeviceMac);
                rowInfo = null;
            }
            else
            {
                //刷新设备信息
                rowInfo.MenuRow?.RefreshControlInfo(true);
                if (rowInfo.dicDetailRow != null)
                var rowInfo = this.dicRowInfo[nowActionDeviceMac];
                //检测这个设备是否被删除
                if (Common.LocalDevice.Current.GetDevicesByMac(nowActionDeviceMac).Count == 0)
                {
                    foreach (var contr in rowInfo.dicDetailRow.Values)
                    //移除控件
                    rowInfo.dicDetailRow = null;
                    rowInfo.frameTable.RemoveFromParent();
                    this.dicRowInfo.Remove(nowActionDeviceMac);
                    rowInfo = null;
                }
                else
                {
                    //刷新设备信息
                    rowInfo.MenuRow?.RefreshControlInfo(true);
                    if (rowInfo.dicDetailRow != null)
                    {
                        contr?.RefreshControlInfo();
                        foreach (var contr in rowInfo.dicDetailRow.Values)
                        {
                            contr?.RefreshControlInfo();
                        }
                    }
                }
            }