using Shared; using System; using System.Collections.Generic; using System.Text; using HDL_ON.UI.CSS; using HDL_ON.Entity; using HDL_ON.DriverLayer; using HDL_ON.UI.Music; using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; using HDL_ON.UI.UI2.Intelligence.Automation; using System.Linq; namespace HDL_ON.UI.UI2.FuntionControlView.Aks { public class AksPage : FrameLayout { #region ■ 变量声明___________________________ /// /// 设备 /// private Function device; /// /// 上一级界面的设备名字控件 /// private Button btnDeviceName; /// /// 上一级界面的房间名字控件 /// private Button btnRoomName; /// /// 头部布局 /// private TopView topView; /// /// 当前设备名称 /// private Button btnCurrDeviceName; /// /// 区域 /// private Button btnCurrDeviceRoom; /// /// 表示来自那个界面 /// private CommonMethod.Comerom comerom; /// /// 删除设备后需要更新界面的回调 /// public Action action; /// /// 记录当前设备 /// public IntType currnetIntType= IntType.none; public VerticalScrolViewLayout vv; #endregion public AksPage() { } /// /// 构造函数 /// /// 设备 /// 上一级界面的设备名字控件(注:不能传null,没有可以传new Button()) /// 上一级界面的房间名字控件(注:不能传null,没有可以传new Button()) public AksPage(Function function, Button btnDeviceName, Button btnRoomName, CommonMethod.Comerom comerom, Action action) { this.device = function; this.btnDeviceName = btnDeviceName; this.btnRoomName = btnRoomName; this.comerom = comerom; this.action = action; } public void Show() { //初始化UI this.InitTop(); this.InitMiddle(); //初始化事件 this.EventListener(); //读取数据 this.ReadData(); } /// /// 初始化头部界面 /// private void InitTop() { this.BackgroundColor = MusicColor.ViewColor; this.topView = new TopView(); this.topView.setBtn.Visible = true; this.topView.topNameBtn.Text = this.device.name; this.AddChidren(topView.TopFLayoutView()); } /// /// 初始化中部界面 /// private void InitMiddle() { vv = new VerticalScrolViewLayout() { Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), }; this.AddChidren(vv); //进来默认播放器界面 this.SwitchUI(IntType.Player); } /// /// 注册事件 /// private void EventListener() { //返回 this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; //设置 this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) => { CommonMethod.Current.MainThread(() => { //调用秀绕的界面 var infoView = new UI.FunctionBaseInfoSetPage(this.device, () => { if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null) { return; } ////刷新显示 this.btnDeviceName.Text = this.device.name; this.btnRoomName.Text = this.device.GetRoomListName(); //this.btnCurrDeviceName.Text = this.device.name; //this.btnCurrDeviceRoom.Text = this.device.GetRoomListName(); //this.CalculatedPosition();//重新计算宽度 }); infoView.actionDel += () => { //解绑设备后 this.RemoveFromParent(); this.action?.Invoke(); }; MainPage.BasePageView.AddChidren(infoView); infoView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); }; } /// /// 初始数据 /// private void ReadData() { CommonMethod.Current.Loading.Start(); CommonMethod.Current.SunThread(() => { try { } catch { } finally { Application.RunOnMainThread(() => { CommonMethod.Current.Loading.Hide(); }); } }); } /// /// 切换界面(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) /// private void SwitchUI(IntType type) { if (this.currnetIntType == type) { return; } if (IntType.none == type) { return; } if (vv != null) { vv.RemoveAll(); } this.currnetIntType = type; switch (type) { case IntType.Player: { AksMusicPage aksMusicPage = new AksMusicPage(); this.vv.AddChidren(aksMusicPage); aksMusicPage.Show(); aksMusicPage.action += (type) => { SelectedType(); }; } break; case IntType.HiFi: { GFPage gFPage = new GFPage(); this.vv.AddChidren(gFPage); gFPage.Show(); gFPage.action += (type) => { SelectedType(); }; } break; case IntType.TV: { TvPage tvPage = new TvPage(); this.vv.AddChidren(tvPage); tvPage.Show(); tvPage.action += (type) => { SelectedType(); }; } break; case IntType.STB: { } break; case IntType.Projector: { TYYPage tYYPage = new TYYPage(); this.vv.AddChidren(tYYPage); tYYPage.Show(); tYYPage.action += (type) => { SelectedType(); }; } break; case IntType.Control: { } break; } } /// /// 选中类型弹框(1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) /// private void SelectedType() { var deviceTypeList = GetTypeDictionary().Values.ToList(); ///之前的状态文本 string ccurrnetDeviceStr= this.GetValueString(this.currnetIntType); PublicInterface conditionView = new PublicInterface(); conditionView.SingleSelectionShow(this, deviceTypeList, "设备选择", ccurrnetDeviceStr , (valueStr) => { //界面显示选中值 var intType = this.GetKeyIntType(valueStr); this.SwitchUI(intType); }); } public enum IntType { /// /// 没有 /// none = 0, /// /// 播放器 /// Player = 1, /// /// 功放 /// HiFi = 2, /// /// 电视 /// TV = 3, /// /// 机顶盒 /// STB = 4, /// /// 投影仪 /// Projector = 5, /// /// 万能遥控器 /// Control = 6, } /// /// 初始化字典 /// /// private Dictionary GetTypeDictionary() { var dic = new Dictionary(); dic.Add(IntType.Player, Language.StringByID(StringId.bofangqi)); dic.Add(IntType.HiFi, Language.StringByID(StringId.gongfan)); dic.Add(IntType.TV, Language.StringByID(StringId.dianshi)); dic.Add(IntType.STB, Language.StringByID(StringId.jidinghe)); dic.Add(IntType.Projector, Language.StringByID(StringId.touyingyi)); dic.Add(IntType.Control, Language.StringByID(StringId.xuniyaokongqi)); return dic; } /// /// 获取设备 /// /// (1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) /// private IntType GetKeyIntType(string value) { var dic = this.GetTypeDictionary(); foreach (var d in dic) { if (d.Value == value) { return d.Key; } } return IntType.none; } /// /// 获取设备名称 /// /// (1 = 播放器,2 = 功放,3 = 电视,4 = 机顶盒,5 = 投影仪,6 = 万能遥控器) /// private string GetValueString(IntType key) { var dic = this.GetTypeDictionary(); foreach (var d in dic) { if (d.Key == key) { return d.Value; } } return ""; } } }