using Shared; 
 | 
using HDL_ON.UI.CSS; 
 | 
using HDL_ON.Stan; 
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Text; 
 | 
using HDL_ON.Entity; 
 | 
  
 | 
namespace HDL_ON.UI 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 门锁历史记录的筛选界面(不需要加入父控件) 
 | 
    /// </summary> 
 | 
    public class DoorLockHistoryTypeScreenPage : BottomDialogCommon 
 | 
    { 
 | 
        #region ■ 变量声明___________________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// <para>[1]、选择的门锁品牌 all:全部</para> 
 | 
        /// <para>[2]、选择的用户 all:全部</para> 
 | 
        /// <para>[3]、选择的开锁方式 all:全部</para> 
 | 
        /// <para>[4]、选择的信息类型 all:全部 1:开锁信息  2:报警类信息</para> 
 | 
        /// </summary> 
 | 
        public Action<List<string>, List<string>, List<string>, List<string>> FinishEvent = null; 
 | 
        /// <summary> 
 | 
        /// 门锁设备,当不为null时,将会出现【锁的型号】的筛选选项 
 | 
        /// </summary> 
 | 
        private List<Function> listDevice = null; 
 | 
        /// <summary> 
 | 
        /// 成员列表 
 | 
        /// </summary> 
 | 
        private List<ResidenceMemberInfo> listMember = null; 
 | 
        /// <summary> 
 | 
        /// 默认选择的门锁品牌 
 | 
        /// </summary> 
 | 
        private List<string> listSelectSpk = null; 
 | 
        /// <summary> 
 | 
        /// 默认选择的用户 
 | 
        /// </summary> 
 | 
        private List<string> listSelectUser = null; 
 | 
        /// <summary> 
 | 
        /// 默认选择的开锁方式 
 | 
        /// </summary> 
 | 
        private List<string> listUnlock = null; 
 | 
        /// <summary> 
 | 
        /// 默认选择的信息类型 
 | 
        /// </summary> 
 | 
        private List<string> listMsgType = null; 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region ■ 初始化_____________________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// 门锁历史记录的筛选界面(不需要加入父控件) 
 | 
        /// </summary> 
 | 
        /// <param name="i_listDevice">门锁设备,当不为null时,将会出现【锁的型号】的筛选选项</param> 
 | 
        /// <param name="i_listMember">成员列表</param> 
 | 
        public DoorLockHistoryTypeScreenPage(List<Function> i_listDevice, List<ResidenceMemberInfo> i_listMember) 
 | 
        { 
 | 
            //之后会自动调整的 
 | 
            base.RowCount = 7; 
 | 
            //筛选 
 | 
            base.StrTitle = Language.StringByID(StringId.Screen); 
 | 
  
 | 
            this.listDevice = i_listDevice; 
 | 
            this.listMember = i_listMember; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化控件 
 | 
        /// </summary> 
 | 
        /// <param name="i_listSelectSpk">默认选择的门锁品牌</param> 
 | 
        /// <param name="i_listSelectUser">默认选择的用户</param> 
 | 
        /// <param name="i_listUnlock">默认选择的开锁方式</param> 
 | 
        /// <param name="i_listMsgType">默认选择的信息类型</param> 
 | 
        public void InitControl(List<string> i_listSelectSpk, List<string> i_listSelectUser, List<string> i_listUnlock, List<string> i_listMsgType) 
 | 
        { 
 | 
            //已经初始化 
 | 
            if (base.btnCancel != null) { return; } 
 | 
  
 | 
            //合并List集合 
 | 
            this.MergeList(ref this.listSelectSpk, i_listSelectSpk); 
 | 
            this.MergeList(ref this.listSelectUser, i_listSelectUser); 
 | 
            this.MergeList(ref this.listUnlock, i_listUnlock); 
 | 
            this.MergeList(ref this.listMsgType, i_listMsgType); 
 | 
  
 | 
            //初始化底层控件 
 | 
            var frameWhiteBack = base.InitBaseControl(Application.CurrentWidth, false); 
 | 
            //取消 
 | 
            base.btnCancel.ButtonClickEvent += (sender, e) => 
 | 
            { 
 | 
                this.Close(); 
 | 
            }; 
 | 
  
 | 
            //确认 
 | 
            base.btnConfirm.ButtonClickEvent += (sender, e) => 
 | 
            { 
 | 
                this.FinishEvent?.Invoke(listSelectSpk, listSelectUser, listUnlock, listMsgType); 
 | 
                this.Close(); 
 | 
            }; 
 | 
            //列表控件 
 | 
            var listView = new VerticalFrameControl(); 
 | 
            listView.Y = btnConfirm.Bottom; 
 | 
            listView.Height = this.RowCount * this.RowHeight; 
 | 
            frameWhiteBack.AddChidren(listView); 
 | 
  
 | 
            //初始化列表控件 
 | 
            this.InitListControl(frameWhiteBack, listView); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化列表控件 
 | 
        /// </summary> 
 | 
        /// <param name="listView"></param> 
 | 
        private void InitListControl(NormalFrameLayout frameWhiteBack, VerticalFrameControl listView) 
 | 
        { 
 | 
            //初始Y轴为18 
 | 
            int yy = Application.GetRealHeight(18); 
 | 
  
 | 
            //初始化锁按钮 
 | 
            yy = this.InitLockButton(listView, yy); 
 | 
            if (this.listDevice != null && this.listDevice.Count > 0) 
 | 
            { 
 | 
                //如果listDevice不为null的话,需要 + 20 
 | 
                yy += Application.GetRealHeight(20); 
 | 
            } 
 | 
  
 | 
            //初始化用户按钮(返回最底部的坐标) 
 | 
            yy = this.InitUserButton(listView, yy); 
 | 
  
 | 
            //初始化开锁方式按钮(返回最底部的坐标) 
 | 
            yy = this.InitUnLockButton(listView, yy + Application.GetRealHeight(20)); 
 | 
  
 | 
            //初始化信息类型按钮(返回最底部的坐标) 
 | 
            yy = this.InitMessageTypeButton(listView, yy + Application.GetRealHeight(20)); 
 | 
  
 | 
            //再加上一个底部间距 
 | 
            var frameSpace = new FrameLayout(); 
 | 
            frameSpace.Height = Application.GetRealHeight(16); 
 | 
            frameSpace.Y = yy; 
 | 
            listView.frameTable.AddChidren(frameSpace); 
 | 
  
 | 
            //调整一下高度 
 | 
            int realHeight = Application.GetRealHeight(500); 
 | 
            listView.AdjustTableHeight(); 
 | 
            if (listView.frameTable.Height < realHeight) 
 | 
            { 
 | 
                //500为最大高度,如果比500小,则用当前的真实高度 
 | 
                realHeight = listView.frameTable.Height; 
 | 
            } 
 | 
            listView.Height = realHeight; 
 | 
            frameWhiteBack.Height = base.btnConfirm.Bottom + listView.Height; 
 | 
            //调整一下坐标 
 | 
            frameWhiteBack.Gravity = Gravity.BottomCenter; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region ■ 全部点击按钮_______________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化锁按钮(返回最底部的坐标) 
 | 
        /// </summary> 
 | 
        /// <param name="listView">列表控件</param> 
 | 
        /// <param name="yy">初始Y轴坐标</param> 
 | 
        /// <returns></returns> 
 | 
        private int InitLockButton(VerticalFrameControl listView, int yy) 
 | 
        { 
 | 
            //获取所有门锁的品牌 
 | 
            var dicLockBrand = this.GetAllLockBrand(); 
 | 
            if (dicLockBrand.Count > 0) 
 | 
            { 
 | 
                //控件集合 
 | 
                var listLockContr = new List<NormalViewControl>(); 
 | 
                //锁 
 | 
                var btnLock = new NormalViewControl(150, 20, true); 
 | 
                btnLock.X = Application.GetRealHeight(24); 
 | 
                btnLock.Y = yy; 
 | 
                btnLock.TextID = StringId.Lock; 
 | 
                listView.frameTable.AddChidren(btnLock); 
 | 
                //全部 
 | 
                var btnContr1 = this.InitSelectButton(Language.StringByID(StringId.All), listLockContr, this.listSelectSpk, this.listSelectSpk.Contains("all")); 
 | 
                btnContr1.MainKey = "all"; 
 | 
                listLockContr.Add(btnContr1); 
 | 
                foreach (var strSpk in dicLockBrand.Keys) 
 | 
                { 
 | 
                    //初始化按钮 
 | 
                    var btnContr2 = this.InitSelectButton(dicLockBrand[strSpk], listLockContr, this.listSelectSpk, this.listSelectSpk.Contains(strSpk)); 
 | 
                    btnContr2.MainKey = strSpk; 
 | 
                    listLockContr.Add(btnContr2); 
 | 
                } 
 | 
                //放置所有的按钮到容器,返回最底部控件的底部坐标 
 | 
                yy = this.SetAllButtonToFrame(listView.frameTable, listLockContr, btnLock.Bottom + Application.GetRealHeight(8)); 
 | 
            } 
 | 
            return yy; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化用户按钮(返回最底部的坐标) 
 | 
        /// </summary> 
 | 
        /// <param name="listView">列表控件</param> 
 | 
        /// <param name="yy">初始Y轴坐标</param> 
 | 
        /// <returns></returns> 
 | 
        private int InitUserButton(VerticalFrameControl listView, int yy) 
 | 
        { 
 | 
            //控件集合 
 | 
            var listContr = new List<NormalViewControl>(); 
 | 
            //用户 
 | 
            var btnLock = new NormalViewControl(150, 20, true); 
 | 
            btnLock.X = Application.GetRealHeight(24); 
 | 
            btnLock.Y = yy; 
 | 
            btnLock.TextID = StringId.User; 
 | 
            listView.frameTable.AddChidren(btnLock); 
 | 
            //全部 
 | 
            var btnContr1 = this.InitSelectButton(Language.StringByID(StringId.All), listContr, this.listSelectUser, this.listSelectUser.Contains("all")); 
 | 
            btnContr1.MainKey = "all"; 
 | 
            listContr.Add(btnContr1); 
 | 
            foreach (var info in this.listMember) 
 | 
            { 
 | 
                //初始化按钮 
 | 
                var btnContr2 = this.InitSelectButton(info.nickName, listContr, this.listSelectUser, this.listSelectUser.Contains(info.childAccountId)); 
 | 
                btnContr2.MainKey = info.childAccountId; 
 | 
                listContr.Add(btnContr2); 
 | 
            } 
 | 
            //放置所有的按钮到容器,返回最底部控件的底部坐标 
 | 
            yy = this.SetAllButtonToFrame(listView.frameTable, listContr, btnLock.Bottom + Application.GetRealHeight(8)); 
 | 
            return yy; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化开锁方式按钮(返回最底部的坐标) 
 | 
        /// </summary> 
 | 
        /// <param name="listView">列表控件</param> 
 | 
        /// <param name="yy">初始Y轴坐标</param> 
 | 
        /// <returns></returns> 
 | 
        private int InitUnLockButton(VerticalFrameControl listView, int yy) 
 | 
        { 
 | 
            //控件集合 
 | 
            var listContr = new List<NormalViewControl>(); 
 | 
            //开锁方式 
 | 
            var btnLock = new NormalViewControl(150, 20, true); 
 | 
            btnLock.X = Application.GetRealHeight(24); 
 | 
            btnLock.Y = yy; 
 | 
            btnLock.TextID = StringId.UnlockingMode; 
 | 
            listView.frameTable.AddChidren(btnLock); 
 | 
            //全部 
 | 
            var btnContr1 = this.InitSelectButton(Language.StringByID(StringId.All), listContr, this.listUnlock, this.listUnlock.Contains("all")); 
 | 
            btnContr1.MainKey = "all"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //指纹 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.Fingerprints), listContr, this.listUnlock, this.listUnlock.Contains("15")); 
 | 
            btnContr1.MainKey = "15"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //密码 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.Password), listContr, this.listUnlock, this.listUnlock.Contains("0")); 
 | 
            btnContr1.MainKey = "0"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //卡 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.Card), listContr, this.listUnlock, this.listUnlock.Contains("3")); 
 | 
            btnContr1.MainKey = "3"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //钥匙 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.Key), listContr, this.listUnlock, this.listUnlock.Contains("key")); 
 | 
            btnContr1.MainKey = "key"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //常开 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.AlwaysOn), listContr, this.listUnlock, this.listUnlock.Contains("9000")); 
 | 
            btnContr1.MainKey = "9000"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //临时密码开锁 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.TemporaryPasswordUnlocking), listContr, this.listUnlock, this.listUnlock.Contains("temp")); 
 | 
            btnContr1.MainKey = "temp"; 
 | 
            listContr.Add(btnContr1); 
 | 
  
 | 
            //放置所有的按钮到容器,返回最底部控件的底部坐标 
 | 
            yy = this.SetAllButtonToFrame(listView.frameTable, listContr, btnLock.Bottom + Application.GetRealHeight(8)); 
 | 
            return yy; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化信息类型按钮(返回最底部的坐标) 
 | 
        /// </summary> 
 | 
        /// <param name="listView">列表控件</param> 
 | 
        /// <param name="yy">初始Y轴坐标</param> 
 | 
        /// <returns></returns> 
 | 
        private int InitMessageTypeButton(VerticalFrameControl listView, int yy) 
 | 
        { 
 | 
            //控件集合 
 | 
            var listContr = new List<NormalViewControl>(); 
 | 
            //信息类型 
 | 
            var btnTitle = new NormalViewControl(150, 20, true); 
 | 
            btnTitle.X = Application.GetRealHeight(24); 
 | 
            btnTitle.Y = yy; 
 | 
            btnTitle.TextID = StringId.UnlockingMode; 
 | 
            listView.frameTable.AddChidren(btnTitle); 
 | 
            //全部 
 | 
            var btnContr1 = this.InitSelectButton(Language.StringByID(StringId.All), listContr, this.listMsgType, this.listMsgType.Contains("all")); 
 | 
            btnContr1.MainKey = "all"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //开锁信息 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.UnlockingMessage), listContr, this.listMsgType, this.listMsgType.Contains("1")); 
 | 
            btnContr1.MainKey = "1"; 
 | 
            listContr.Add(btnContr1); 
 | 
            //报警类信息 
 | 
            btnContr1 = this.InitSelectButton(Language.StringByID(StringId.AlarmMessage), listContr, this.listMsgType, this.listMsgType.Contains("2")); 
 | 
            btnContr1.MainKey = "2"; 
 | 
            listContr.Add(btnContr1); 
 | 
  
 | 
            //放置所有的按钮到容器,返回最底部控件的底部坐标 
 | 
            yy = this.SetAllButtonToFrame(listView.frameTable, listContr, btnTitle.Bottom + Application.GetRealHeight(8)); 
 | 
  
 | 
            return yy; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region ■ 初始化点击按钮_____________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// 初始化点击按钮 
 | 
        /// </summary> 
 | 
        /// <param name="i_text">显示的文本</param> 
 | 
        /// <param name="listContr">生成的按钮集合,在生成UI过程中,请勿使用,因为它还没有完成</param> 
 | 
        /// <param name="listSelect">选择的主键</param> 
 | 
        /// <param name="select">是否初始选择</param> 
 | 
        /// <returns></returns> 
 | 
        private NormalViewControl InitSelectButton(string i_text, List<NormalViewControl> listContr, List<string> listSelectKey, bool select) 
 | 
        { 
 | 
            var btnContr = new NormalViewControl(98, 44, true); 
 | 
            btnContr.Radius = (uint)Application.GetRealWidth(8); 
 | 
            btnContr.TextAlignment = TextAlignment.Center; 
 | 
            btnContr.Text = i_text; 
 | 
            //设置按钮状态 
 | 
            this.SetButtonStatu(btnContr, select); 
 | 
  
 | 
            btnContr.ButtonClickEvent += (sender, e) => 
 | 
            { 
 | 
                var value = btnContr.MainKey; 
 | 
                //取消 
 | 
                if (listSelectKey.Contains(value) == true) 
 | 
                { 
 | 
                    if (value == "all" || listSelectKey.Count == 1) 
 | 
                    { 
 | 
                        //不能取消【全部】,并且至少要选择一个 
 | 
                        return; 
 | 
                    } 
 | 
                    //设置按钮状态 
 | 
                    this.SetButtonStatu(btnContr, false); 
 | 
                    listSelectKey.Remove(value); 
 | 
                } 
 | 
                //选择 
 | 
                else 
 | 
                { 
 | 
                    //设置按钮状态 
 | 
                    this.SetButtonStatu(btnContr, true); 
 | 
                    if (value == "all") 
 | 
                    { 
 | 
                        //【所有】按钮处于选择状态时,【所有】放在第0位索引 
 | 
                        for (int i = 1; i < listContr.Count; i++) 
 | 
                        { 
 | 
                            //设置按钮状态 
 | 
                            this.SetButtonStatu(listContr[i], false); 
 | 
                            //移除选择 
 | 
                            listSelectKey.Remove(listContr[i].MainKey); 
 | 
                        } 
 | 
                    } 
 | 
                    else if (listSelectKey.Contains("all") == true) 
 | 
                    { 
 | 
                        //所有按钮取消,【所有放在第0位索引】 
 | 
                        this.SetButtonStatu(listContr[0], false); 
 | 
                        listSelectKey.Remove("all"); 
 | 
                    } 
 | 
                    listSelectKey.Add(value); 
 | 
                } 
 | 
            }; 
 | 
  
 | 
            return btnContr; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region ■ 放置所有按钮_______________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// 放置所有的按钮到容器,返回最底部控件的底部坐标 
 | 
        /// </summary> 
 | 
        /// <param name="frameBack">容器</param> 
 | 
        /// <param name="listContr">列表控件</param> 
 | 
        /// <param name="i_yy">初始Y轴</param> 
 | 
        private int SetAllButtonToFrame(FrameLayout frameBack, List<NormalViewControl> listContr, int i_yy) 
 | 
        { 
 | 
            //初始X轴 
 | 
            int defultXX = Application.GetRealWidth(24); 
 | 
            int nowXX = defultXX; 
 | 
            //按钮间的间距 
 | 
            int space = Application.GetRealWidth(16); 
 | 
            //按钮最大宽度 
 | 
            int maxWidth = Application.GetRealWidth(98) * 2 + space; 
 | 
            //按钮最小宽度 
 | 
            int minWidth = Application.GetRealWidth(98); 
 | 
  
 | 
            //桌布的宽度 
 | 
            int tableWidth = frameBack.Width - nowXX * 2; 
 | 
  
 | 
            int bottomY = 0; 
 | 
            foreach (var contr in listContr) 
 | 
            { 
 | 
                //计算它的真实宽度,但是不能超过最大宽度 
 | 
                int realWidth = contr.GetRealWidthByText(); 
 | 
                if (realWidth >= maxWidth) 
 | 
                { 
 | 
                    //最大宽度 
 | 
                    realWidth = maxWidth; 
 | 
                } 
 | 
                else if (realWidth <= minWidth) 
 | 
                { 
 | 
                    //最小宽度 
 | 
                    realWidth = minWidth; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    //如果它介于最小和最大之间,则用它的真实值+10,让它左右有点间距,即使超过,应该也没啥事 
 | 
                    realWidth += Application.GetRealWidth(10); 
 | 
                } 
 | 
                contr.Width = realWidth; 
 | 
                frameBack.AddChidren(contr); 
 | 
  
 | 
                //再计算加上它有没有超过右边界(需要减掉初始X轴) 
 | 
                if (nowXX + realWidth - defultXX <= tableWidth) 
 | 
                { 
 | 
                    //没有超过边界,可以直接添加 
 | 
                    contr.X = nowXX; 
 | 
                    contr.Y = i_yy; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    //如果超过了边界,则换行,重置X轴,Y轴向下推移 
 | 
                    contr.X = defultXX; 
 | 
                    contr.Y = i_yy + contr.Height + space; 
 | 
                    i_yy = contr.Y; 
 | 
                } 
 | 
                //X轴往右推移 
 | 
                nowXX = contr.Right + space; 
 | 
                //底部坐标(返回值) 
 | 
                bottomY = contr.Bottom; 
 | 
            } 
 | 
            return bottomY; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region ■ 一般方法___________________________ 
 | 
  
 | 
        /// <summary> 
 | 
        /// 获取所有门锁的品牌 
 | 
        /// </summary> 
 | 
        /// <returns></returns> 
 | 
        private Dictionary<string, string> GetAllLockBrand() 
 | 
        { 
 | 
            if (this.listDevice == null || this.listDevice.Count == 0) 
 | 
            { 
 | 
                return new Dictionary<string, string>(); 
 | 
            } 
 | 
  
 | 
            var dicData = new Dictionary<string, string>(); 
 | 
            foreach (var device in this.listDevice) 
 | 
            { 
 | 
                if (device.spk == "door.sone") 
 | 
                { 
 | 
                    dicData[device.spk] = "S-ONE"; 
 | 
                    continue; 
 | 
                } 
 | 
            } 
 | 
            return dicData; 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 设置按钮状态 
 | 
        /// </summary> 
 | 
        /// <param name="btnContr">控件</param> 
 | 
        /// <param name="select">是否是选择状态</param> 
 | 
        private void SetButtonStatu(NormalViewControl btnContr, bool select) 
 | 
        { 
 | 
            if (select == false) 
 | 
            { 
 | 
                btnContr.TextColor = CSS_Color.FirstLevelTitleColor; 
 | 
                btnContr.BackgroundColor = CSS_Color.MainBackgroundColor; 
 | 
                btnContr.BorderWidth = 1; 
 | 
                btnContr.BorderColor = CSS_Color.PromptingColor1; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                btnContr.TextColor = CSS_Color.MainBackgroundColor; 
 | 
                btnContr.BackgroundColor = CSS_Color.MainColor; 
 | 
                btnContr.BorderWidth = 0; 
 | 
                btnContr.BorderColor = CSS_Color.viewTranslucence; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 合并List集合 
 | 
        /// </summary> 
 | 
        /// <param name="listTarget"></param> 
 | 
        /// <param name="listSource"></param> 
 | 
        private void MergeList(ref List<string> listTarget, List<string> listSource) 
 | 
        { 
 | 
            if (listSource == null) { return; } 
 | 
            if (listTarget == null) 
 | 
            { 
 | 
                listTarget = new List<string>(); 
 | 
            } 
 | 
            listTarget.AddRange(listSource); 
 | 
            if (listTarget.Count == 0) 
 | 
            { 
 | 
                listTarget.Add("all"); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 关闭界面 
 | 
        /// </summary> 
 | 
        public override void Close() 
 | 
        { 
 | 
            base.Close(); 
 | 
            this.FinishEvent = null; 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
    } 
 | 
} 
 |