using System; using Shared; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Newtonsoft.Json; using System.Collections.Generic; namespace HDL_ON.UI { /// /// 场景管理界面 /// public class VoicePanelScenePage : FrameLayout { #region 窗体列表 /// /// 当前窗体 /// FrameLayout bodyView; /// /// 功能列表显示区域 /// VerticalScrolViewLayout sceneListView; /// /// 显示功能的类型切换区域 /// FrameLayout showdFunctionTypeRow; /// /// 未分配功能类型切换显示 /// Button btnAdded; /// /// 已分配功能类型切换 /// Button btnNotAdded; /// /// 全选按钮 /// Button btnChooseAllIcon; /// /// 保存数据按钮 /// Button btnConfrim; #endregion #region 区域变量 SBK_DeviceObj sbk_Devcie; /// /// 需要显示的功能总数,影响到界面显示 /// int showdFunctionCount = 0; List notAddedList = new List(); List addedList = new List(); /// /// 需要增加的场景列表 /// List addList = new List(); /// /// 需要删除的场景列表 /// List delList = new List(); #endregion public VoicePanelScenePage(SBK_DeviceObj sbk_Devcie) { bodyView = this; this.sbk_Devcie = sbk_Devcie; } /// /// 加载界面 /// public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView, sbk_Devcie.name).LoadTopView(); #region 显示的功能类型切换区域 showdFunctionTypeRow = new FrameLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(62), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(showdFunctionTypeRow); btnAdded = new Button() { Width = Application.GetRealWidth(106), Height = Application.GetRealHeight(49), TextAlignment = TextAlignment.Center, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.HeadlineFontSize, TextID = StringId.Added, IsSelected = true, IsBold = true }; showdFunctionTypeRow.AddChidren(btnAdded); btnNotAdded = new Button() { X = btnAdded.Right + Application.GetRealWidth(10), Width = Application.GetRealWidth(106), Height = Application.GetRealHeight(49), TextAlignment = TextAlignment.CenterLeft, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextID = StringId.NotAdded, }; showdFunctionTypeRow.AddChidren(btnNotAdded); #endregion FrameLayout rowChooseAll = new FrameLayout() { Y = showdFunctionTypeRow.Bottom, Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(rowChooseAll); btnChooseAllIcon = new Button() { Gravity = Gravity.CenterVertical, X = Application.GetRealWidth(335), Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = "Public/ChooseIcon.png", SelectedImagePath = "Public/ChooseOnIcon.png", IsSelected = true, }; rowChooseAll.AddChidren(btnChooseAllIcon); var btnChooseAllTitle = new Button() { X = Application.GetRealWidth(16), TextID = StringId.SelectAll, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; rowChooseAll.AddChidren(btnChooseAllTitle); sceneListView = new VerticalScrolViewLayout() { Y = rowChooseAll.Bottom, Height = Application.GetRealHeight(413 - 50), BackgroundColor = CSS_Color.BackgroundColor, }; bodyView.AddChidren(sceneListView); foreach (var function in FunctionList.List.scenes) { //var sbkScene = sbk_Devcie.number.Find((obj) => obj.sid == function.sid); //if (sbkScene != null) //{ // addedList.Add(function); //} //else //{ // notAddedList.Add(function); //} } foreach (var ddd in sbk_Devcie.number) { addedList.Add(new Function() { sid = ddd.sid, name = ddd.name }); } LoadSceneRow(addedList); btnConfrim = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(582), Width = Application.GetRealWidth(220), Height = Application.GetRealWidth(44), Radius = (uint)Application.GetRealWidth(22), BackgroundColor = CSS_Color.MainColor, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, TextID = StringId.Confirm, }; bodyView.AddChidren(btnConfrim); LoadEvent_ChooseAllScene(btnChooseAllTitle); LoadEvent_SaveSceneList(); LoadEvent_ChangeShowList(); } /// /// 显示功能Row /// /// 是否是显示未分配 void LoadSceneRow(List functions) { showdFunctionCount = 0; sceneListView.RemoveAll(); foreach (var function in functions) { sceneListView.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(1), BackgroundColor = CSS_Color.DividingLineColor, }); FrameLayout functionRow = new FrameLayout() { Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, }; sceneListView.AddChidren(functionRow); Button btnChooseIcon = new Button() { Gravity = Gravity.CenterVertical, X = Application.GetRealWidth(335), Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), UnSelectedImagePath = "Public/ChooseIcon.png", SelectedImagePath = "Public/ChooseOnIcon.png", Tag = "ChooseIcon", }; functionRow.AddChidren(btnChooseIcon); if (btnAdded.IsSelected) { btnChooseIcon.IsSelected = null == delList.Find((obj) => obj.sid == function.sid); } else { btnChooseIcon.IsSelected = null != addList.Find((obj) => obj.sid == function.sid); } var btnFunctionName = new Button() { X = Application.GetRealWidth(16), Text = function.name, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; functionRow.AddChidren(btnFunctionName); LoadEvent_ChangeSceneList(functionRow, btnFunctionName,btnChooseIcon, function); showdFunctionCount++; } if (showdFunctionCount < 9) { sceneListView.Height = Application.GetRealHeight(51 * showdFunctionCount); } else { sceneListView.Height = Application.GetRealHeight(518 - 40 - 62); } } /// /// 全选事件 /// /// void LoadEvent_ChooseAllScene(Button btnChooseAll) { btnChooseAll.MouseUpEventHandler = (sender, e) => { btnChooseAllIcon.IsSelected = !btnChooseAllIcon.IsSelected; for (int i = 0; i < sceneListView.ChildrenCount; i++) { if (sceneListView.GetChildren(i).GetType() == typeof(FrameLayout)) { FrameLayout row = (FrameLayout)sceneListView.GetChildren(i); for (int j = 0; j < row.ChildrenCount; j++) { if (row.GetChildren(j).GetType() == typeof(Button)) { Button btn = (Button)row.GetChildren(j); if (btn.Tag!= null && btn.Tag.ToString() == "ChooseIcon") { btn.IsSelected = btnChooseAllIcon.IsSelected; } } } } } if (btnAdded.IsSelected ) { foreach(var function in addedList) { if (delList.Contains(function)) { delList.Remove(function); } else { delList.Add(function); } } } else { foreach (var function in notAddedList) { if (addList.Contains(function)) { addList.Remove(function); } else { addList.Add(function); } } } }; } /// /// 编辑场景列表 /// /// /// /// /// void LoadEvent_ChangeSceneList(FrameLayout functionRow,Button btn,Button btnIcon, Function function) { EventHandler eventHandler = (sender, e) => { btnIcon.IsSelected = !btnIcon.IsSelected; if (btnAdded.IsSelected) { if (btnIcon.IsSelected) { delList.Remove(function); } else { delList.Add(function); } //修改全选按钮状态 btnChooseAllIcon.IsSelected = true; foreach (var temp in addedList) { if (addList.Find((obj) => obj.sid == temp.sid) != null) { btnChooseAllIcon.IsSelected = false; break; } } } else { if (btnIcon.IsSelected) { addedList.Add(function); } else { addList.Remove(function); } btnChooseAllIcon.IsSelected = false; foreach (var temp in notAddedList) { if (addList.Find((obj) => obj.sid == temp.sid) != null) { btnChooseAllIcon.IsSelected = true; break; } } } }; functionRow.MouseUpEventHandler = eventHandler; btn.MouseUpEventHandler = eventHandler; } /// /// 切换显示内容 /// void LoadEvent_ChangeShowList() { btnAdded.MouseUpEventHandler = (sender, e) => { btnNotAdded.IsSelected = false; btnNotAdded.IsBold = false; btnAdded.IsSelected = true; btnAdded.IsBold = true; btnAdded.TextSize = CSS_FontSize.HeadlineFontSize; btnNotAdded.TextSize = CSS_FontSize.TextFontSize; LoadSceneRow(addedList); //修改全选按钮状态 btnChooseAllIcon.IsSelected = true; foreach (var temp in addedList) { if (addList.Find((obj) => obj.sid == temp.sid) != null) { btnChooseAllIcon.IsSelected = false; break; } } }; btnNotAdded.MouseUpEventHandler = (sender, e) => { btnNotAdded.IsSelected = true; btnNotAdded.IsBold = true; btnAdded.IsSelected = false; btnAdded.IsBold = false; btnNotAdded.TextSize = CSS_FontSize.HeadlineFontSize; btnAdded.TextSize = CSS_FontSize.TextFontSize; LoadSceneRow(notAddedList); //修改全选按钮状态 btnChooseAllIcon.IsSelected = false; foreach (var temp in notAddedList) { if(addList.Find((obj)=>obj.sid == temp.sid)!=null) { btnChooseAllIcon.IsSelected = true; break; } } }; } /// /// 保存数据事件 /// void LoadEvent_SaveSceneList() { btnConfrim.MouseUpEventHandler = (sender, e) => { //增加场景 foreach (var tempScene in addList) { } //删除场景 foreach (var tempScene in delList) { } }; } } }