using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using ZigBee.Device; namespace Shared.Phone.UserCenter.SharedContent { /// /// 查看已配置共享内容的主界面 /// public class SearchConfigureSharedMainForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 设备列表控件 /// private VerticalScrolViewLayout listDeviceView = null; /// /// 场景列表控件 /// private VerticalScrolViewLayout listSceneView = null; /// /// 成员信息 /// private MemberInfoRes memberResult = null; /// /// 成员的分享数据 /// private MemberShardInfoData memberShardInfo = null; /// /// 房间对象 /// private Common.Room room = null; /// /// Tab的选择。1:功能Tab 2:场景Tab /// private int TabSelectIndex = 1; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 房间信息 /// 成员信息 /// 成员的分享数据 public void ShowForm(Common.Room i_room, MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo) { this.memberResult = i_memberResult; this.room = i_room; this.memberShardInfo = i_memberShardInfo; //设置头部信息 base.SetTitleText(i_room.Name); //初始化中部信息 //this.InitMiddleFrame(); } ///// ///// 初始化中部信息 ///// //private void InitMiddleFrame() //{ // //清空bodyFrame // this.ClearBodyFrame(); // //初始化Tab控件 // var frame = this.InitTabControl(); // this.listDeviceView = new VerticalScrolViewLayout(); // listDeviceView.Y = frame.Bottom; // listDeviceView.Height = bodyFrameLayout.Height - frame.Bottom; // listDeviceView.Visible = this.TabSelectIndex == 1; // bodyFrameLayout.AddChidren(listDeviceView); // this.listSceneView = new VerticalScrolViewLayout(); // listSceneView.Y = frame.Bottom; // listSceneView.Height = bodyFrameLayout.Height - frame.Bottom; // listSceneView.Visible = this.TabSelectIndex == 2; // bodyFrameLayout.AddChidren(listSceneView); // HdlThreadLogic.Current.Run(() => // { // //初始化功能Tab列表 // this.InitFunctionTabList(); // //初始化场景Tab列表 // this.InitSceneTabList(); // }); //} #endregion //#region ■ 初始化Tab控件______________________ ///// ///// 初始化Tab控件 ///// ///// //private FrameLayout InitTabControl() //{ // //Tab切换控件 // var frameSwich = new FrameLayout(); // frameSwich.Height = Application.GetRealHeight(150); // frameSwich.BackgroundColor = UserCenterColor.Current.TopFrameLayout; // bodyFrameLayout.AddChidren(frameSwich); // //功能 // var btnFunction = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100)); // btnFunction.Gravity = Gravity.CenterVertical; // btnFunction.TextID = R.MyInternationalizationString.uFunction; // btnFunction.TextAlignment = TextAlignment.Center; // btnFunction.TextColor = UserCenterColor.Current.SelectTextColor; // btnFunction.TextAlignment = TextAlignment.Center; // frameSwich.AddChidren(btnFunction); // //场景 // var btnScene = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100)); // btnScene.Gravity = Gravity.CenterVertical; // btnScene.X = frameSwich.Width / 2; // btnScene.TextID = R.MyInternationalizationString.uScence; // btnScene.TextAlignment = TextAlignment.Center; // frameSwich.AddChidren(btnScene); // //线 // var btnLine = new ProgressLine(); // btnLine.Gravity = Gravity.BottomLeft; // frameSwich.AddChidren(btnLine); // btnLine.SetValue(50, true); // if (this.TabSelectIndex == 2) // { // btnScene.TextColor = UserCenterColor.Current.SelectTextColor; // btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor; // btnLine.SetValue(50, false); // } // //功能Tab // btnFunction.MouseUpEventHandler += (sender, e) => // { // if (this.TabSelectIndex == 1) // { // return; // } // btnScene.TextColor = Common.ZigbeeColor.Current.TextColor; // btnFunction.TextColor = UserCenterColor.Current.SelectTextColor; // btnLine.SetValue(50); // this.TabSelectIndex = 1; // //隐藏场景列表控件,显示设备列表控件 // this.listSceneView.Visible = false; // this.listDeviceView.Visible = true; // }; // //场景Tab // btnScene.MouseUpEventHandler += (sender, e) => // { // if (this.TabSelectIndex == 2) // { // return; // } // btnScene.TextColor = UserCenterColor.Current.SelectTextColor; // btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor; // btnLine.SetValue(50, false); // this.TabSelectIndex = 2; // //隐藏设备列表控件,显示场景列表控件 // this.listDeviceView.Visible = false; // this.listSceneView.Visible = true; // }; // return frameSwich; //} //#endregion //#region ■ 显示功能Tab列表____________________ ///// ///// 初始化功能Tab列表 ///// //private void InitFunctionTabList() //{ // //获取分享的设备 // var listDevice = this.GetShardListDevice(); // foreach (var device in listDevice) // { // Application.RunOnMainThread(() => // { // if (this.Parent != null) // { // //添加设备的明细行 // this.AddDeviceDetailRow(device); // } // }); // } //} ///// ///// 添加设备的明细行 ///// ///// 设备对象 //private void AddDeviceDetailRow(CommonDevice device) //{ // var row = new StatuRowLayout(listDeviceView); // //图片 // var btnIcon = new RowLeftIconView(); // Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device); // row.AddChidren(btnIcon, ChidrenBindMode.NotBind); // //设备类型的翻译名字 // var btnName = new RowCenterView(); // btnName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device); // row.AddChidren(btnName, ChidrenBindMode.NotBind); // //移除 // var btnDelete = new RowDeleteButton(); // btnDelete.TextID = R.MyInternationalizationString.RemoveBotton; // row.AddRightView(btnDelete); // btnDelete.MouseUpEventHandler += (sender, e) => // { // //确定移除选中的设备? // string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveSelectDeviceMsg); // this.ShowConfirmMsg(msg, "DeleteShardDevice", row, device); // }; //} ///// ///// 删除共享设备 ///// ///// ///// //public async void DeleteShardDevice(StatuRowLayout row, CommonDevice device) //{ // var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.room, new List() { device }, new List()); // if (result == true) // { // Application.RunOnMainThread(() => // { // row?.RemoveFromParent(); // if (this.listDeviceView != null && this.listDeviceView.ChildrenCount == 0 && this.listSceneView.ChildrenCount == 0) // { // //什么都没有了,则关闭界面 // this.CloseForm(); // } // }); // } //} //#endregion //#region ■ 显示场景Tab列表____________________ ///// ///// 初始化场景Tab列表 ///// //private void InitSceneTabList() //{ // foreach (var sceneUi in this.room.SceneUIList) // { // if (sceneUi == null || memberShardInfo.dicAllMemberShard[this.room.FileName].Contains(sceneUi.FileName) == false) // { // //异常,或者不存在,则不显示 // continue; // } // Application.RunOnMainThread(() => // { // if (this.Parent != null) // { // //添加场景行 // this.AddSceneDetailRow(sceneUi); // } // }); // } //} ///// ///// 添加场景的明细行 ///// ///// 场景对象 //private void AddSceneDetailRow(Common.SceneUI sceneUI) //{ // var sceneRow = new SceneViewRow(this.listSceneView, sceneUI); // //移除 // var btnDelete = new RowDeleteButton(); // btnDelete.TextID = R.MyInternationalizationString.RemoveBotton; // sceneRow.AddRightView(btnDelete); // btnDelete.MouseUpEventHandler += (sender, e) => // { // //确定移除选中的场景? // string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveSelectSceneMsg); // this.ShowConfirmMsg(msg, "DeleteShardScene", sceneRow, sceneUI); // }; //} ///// ///// 删除共享场景 ///// ///// ///// //public async void DeleteShardScene(SceneViewRow row, Common.SceneUI sceneUI) //{ // var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.room, new List(), new List() { sceneUI }); // if (result == true) // { // Application.RunOnMainThread(() => // { // row?.RemoveFromParent(); // if (this.listDeviceView != null && this.listDeviceView.ChildrenCount == 0 && this.listSceneView.ChildrenCount == 0) // { // //什么都没有了,则关闭界面 // this.CloseForm(); // } // }); // } //} //#endregion //#region ■ 获取可以分享的设备_________________ ///// ///// 获取分享的设备 ///// ///// //private List GetShardListDevice() //{ // //获取这个房间里面的分享设备的路径 // var listDeviceFile = new List(); // foreach (var ui in this.room.DeviceUIList) // { // if (ui.CommonDevice != null && memberShardInfo.dicAllMemberShard[this.room.FileName].Contains(ui.CommonDevice.FilePath) == true) // { // listDeviceFile.Add(ui.CommonDevice.FilePath); // } // } // var listFile = HdlShardLogic.Current.GetLocalAllShardFile(); // var listDevice = new List(); // foreach (string file in listFile) // { // //如果不是设备文件,或者这个房间里面没有这个设备 // if (file.StartsWith(Common.LocalDevice.deviceFirstName) == false || listDeviceFile.Contains(file) == false) // { // continue; // } // var strArry = file.Split('_'); // if (strArry.Length < 3) // { // continue; // } // //从分享文件中序列化回来 // var deviceData = HdlShardLogic.Current.GetShardFileContent(file); // var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData)); // if (device != null) // { // listDevice.Add(device); // } // } // return listDevice; //} //#endregion //#region ■ 一般方法___________________________ //#endregion } }