From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs | 133 +++++++++++++++++++++++++++++++++----------- 1 files changed, 100 insertions(+), 33 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs index df30573..96be5ac 100755 --- a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs +++ b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs @@ -42,6 +42,10 @@ /// 璁惧鍒楄〃鎺т欢 /// </summary> private VerticalListControl listDeviceView = null; + /// <summary> + /// 褰撳墠閫夋嫨鐨勬ゼ灞� + /// </summary> + private string nowSelectFloorId = string.Empty; #endregion @@ -57,6 +61,8 @@ //璁剧疆澶撮儴淇℃伅 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.AddFunction)); + //鍒濆鍖栧彸涓婅鐨勬帶浠� + this.InitTopRightMenuControl(); //鍒濆鍖栦腑閮ㄤ俊鎭� this.InitMiddleFrame(); } @@ -66,8 +72,58 @@ /// </summary> private void InitMiddleFrame() { + //娓呯┖body + this.ClearBodyFrame(); //鍒濆鍖栨埧闂磋彍鍗曟帶浠� this.InitRoomMenuControl(); + } + + /// <summary> + /// 鍒濆鍖栧彸涓婅鐨勬帶浠� + /// </summary> + private void InitTopRightMenuControl() + { + //鑾峰彇妤煎眰 + var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); + if (dicFloor.Count == 0) + { + return; + } + var btnIconContr = new MostRightIconControl(69, 69); + btnIconContr.UnSelectedImagePath = "Item/Drop_Down.png"; + topFrameLayout.AddChidren(btnIconContr); + btnIconContr.InitControl(); + + var btnFloor = new NormalViewControl(300, 69, true); + btnFloor.Gravity = Gravity.CenterVertical; + btnFloor.X = btnIconContr.X + btnIconContr.btnIcon.X - Application.GetRealWidth(300); + btnFloor.TextAlignment = TextAlignment.CenterRight; + topFrameLayout.AddChidren(btnFloor); + + foreach (var floorId in dicFloor.Keys) + { + //绗竴涓ゼ灞� + this.nowSelectFloorId = floorId; + btnFloor.Text = dicFloor[floorId]; + break; + } + + btnIconContr.ButtonClickEvent += (sender, e) => + { + //妤煎眰鑿滃崟 + var contr = new TopRightFloorMenuControl(dicFloor.Count, 2, this.nowSelectFloorId, Language.StringByID(R.MyInternationalizationString.SelectFloor)); + foreach (var floorId in dicFloor.Keys) + { + contr.AddRowMenu(floorId, () => + { + //璁板綍璧烽�夋嫨鐨処D + this.nowSelectFloorId = floorId; + btnFloor.Text = dicFloor[this.nowSelectFloorId]; + //鍒濆鍖栦腑閮ㄤ俊鎭� + this.InitMiddleFrame(); + }); + } + }; } #endregion @@ -98,7 +154,10 @@ roomSwitchContr.SelectRoomEvent += (selectRoom) => { //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�) - this.deviceFunctionMenuContr?.RemoveAll(); + if (this.deviceFunctionMenuContr != null && this.deviceFunctionMenuContr.Parent != null) + { + this.deviceFunctionMenuContr.RemoveAll(); + } this.listDeviceView?.RemoveAll(); HdlThreadLogic.Current.RunMainInThread(() => @@ -116,7 +175,10 @@ this.btnFinishControl = new BottomClickButton(); btnFinishControl.TextID = R.MyInternationalizationString.uFinish; bodyFrameLayout.AddChidren(btnFinishControl); - btnFinishControl.Visible = false; + if (this.dicNewListTask == null || this.dicNewListTask.Count == 0) + { + btnFinishControl.Visible = false; + } btnFinishControl.ButtonClickEvent += (sender, e) => { //鍥炶皟鍑芥暟 @@ -136,20 +198,24 @@ /// <returns></returns> private List<Room> GetCanShowRoomList() { - //鍏堝皢鍒楄〃Dictionary鍖� - this.dicNewListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>(); - this.dicOldListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>(); - foreach (var data in this.listAdjustTarget) + if (this.dicNewListTask == null) { - if (data.Type == 0) + //鍏堝皢鍒楄〃Dictionary鍖� + this.dicNewListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>(); + this.dicOldListTask = new Dictionary<string, List<Safeguard.TaskListInfo>>(); + foreach (var data in this.listAdjustTarget) { - //鍙璁惧 - string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); - dicOldListTask[mainkey] = data.TaskList; + if (data.Type == 0) + { + //鍙璁惧 + string mainkey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); + dicOldListTask[mainkey] = data.TaskList; + } } } + //褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂� - var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom(); + var lisrRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(this.nowSelectFloorId); var listShowRoom = new List<Room>(); foreach (var room in lisrRoom) { @@ -181,7 +247,7 @@ var dicGroupDevice = this.GetAllGroupDevice(room); //鍙垵濮嬪寲涓�娆� - if (this.deviceFunctionMenuContr == null) + if (this.deviceFunctionMenuContr == null || this.deviceFunctionMenuContr.Parent == null) { //璁惧鑿滃崟鐨勭櫧鑹茶儗鏅� var functionBack1 = new FrameLayout(); @@ -228,10 +294,10 @@ //涓婁竴娆¢�夋嫨鐨勮彍鍗曞拰鏁版嵁 DeviceRowInfo nowSelectDeviceInfo = null; - MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null; - foreach (int Textid in dicGroupDevice.Keys) + MainPage.Controls.DeviceFunctionMenuControl oldSelectContr = null; + foreach (string strText in dicGroupDevice.Keys) { - var rowInfo = dicGroupDevice[Textid]; + var rowInfo = dicGroupDevice[strText]; //璁惧绫诲瀷鐨勫鍣� var devieFrame = new FrameLayout(); @@ -239,9 +305,9 @@ deviceFunctionMenuContr.AddChidren(devieFrame); //鑿滃崟鍥剧墖鎺т欢 - var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl(); + var deviceObjContr = new MainPage.Controls.DeviceFunctionMenuControl(); devieFrame.AddChidren(deviceObjContr); - deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys); + deviceObjContr.InitControl(strText, rowInfo.IconPath, rowInfo.IconPathSelected); deviceObjContr.ButtonClickEvent += (sender, e) => { //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞� @@ -256,7 +322,7 @@ HdlThreadLogic.Current.RunMainInThread(() => { //鍒濆鍖栬澶囧垪琛ㄦ帶浠� - this.InitListDeviceControls(listDeviceView, rowInfo, room); + this.InitListDeviceControls(listDeviceView, rowInfo); }); } }; @@ -273,7 +339,7 @@ if (nowSelectDeviceInfo != null) { //鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢 - this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo, room); + this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo); } } @@ -286,7 +352,7 @@ /// </summary> /// <param name="listView"></param> /// <param name="rowInfo"></param> - private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo, Room i_room) + private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo) { //鍏堟竻绌� listView.RemoveAll(); @@ -348,14 +414,14 @@ Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, device); frameIconBackGroud.AddChidren(btnDeviceIcon); //閲嶆柊缁戝畾浜嬩欢 - rowDevice.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEventOnly); + rowDevice.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEvent); //璁惧鍚嶅瓧 var btnDeviceName = new NormalViewControl(600, 60, true); btnDeviceName.X = Application.GetRealWidth(181); btnDeviceName.Gravity = Gravity.CenterVertical; btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); - rowDevice.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly); + rowDevice.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent); btnDeviceName.Y += rowDevice.chidrenYaxis; //搴曠嚎 var btnBottomLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false); @@ -490,7 +556,7 @@ /// 鑾峰彇鍒嗙粍鍚庣殑璁惧 /// </summary> /// <returns></returns> - private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room) + private Dictionary<string, DeviceRowInfo> GetAllGroupDevice(Common.Room room) { //鍏ㄩ儴鐨勮澶� var listDeviceTemp = HdlRoomLogic.Current.GetRoomListDevice(room); @@ -506,23 +572,23 @@ //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴� listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice); - var dic = new Dictionary<int, DeviceRowInfo>(); + var dic = new Dictionary<string, DeviceRowInfo>(); foreach (var device in listDevice) { var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device); //鎸夋墍灞濱D鍒嗙粍 - if (dic.ContainsKey(typeInfo.BeloneTextId) == false) + if (dic.ContainsKey(typeInfo.BeloneText) == false) { - dic[typeInfo.BeloneTextId] = new DeviceRowInfo(); + dic[typeInfo.BeloneText] = new DeviceRowInfo(); string path1 = string.Empty; string path2 = string.Empty; //鑾峰彇鍥剧墖 - LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2); - dic[typeInfo.BeloneTextId].IconPath = path1; - dic[typeInfo.BeloneTextId].IconPathSelected = path2; - dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId; + LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo, ref path1, ref path2); + dic[typeInfo.BeloneText].IconPath = path1; + dic[typeInfo.BeloneText].IconPathSelected = path2; + dic[typeInfo.BeloneText].TextId = typeInfo.BeloneText; } - dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device)); + dic[typeInfo.BeloneText].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device)); } return dic; } @@ -557,6 +623,7 @@ device.Type == DeviceType.DimmableLight ||//褰╃伅 device.Type == DeviceType.OnOffOutput ||//缁х數鍣� device.Type == DeviceType.Thermostat ||//绌鸿皟 + device.Type == DeviceType.ColorTemperatureLight ||//鑹叉俯鐏� device.Type == DeviceType.WindowCoveringDevice)//绐楀笜 { string mainkey = LocalDevice.Current.GetDeviceMainKeys(device); @@ -575,9 +642,9 @@ private class DeviceRowInfo { /// <summary> - /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿� + /// 鏂囨湰,鐩墠鐢ㄦ潵鍋氫富閿� /// </summary> - public int TextId = 0; + public string TextId = string.Empty; /// <summary> /// 鍥炬爣 /// </summary> -- Gitblit v1.8.0