| | |
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 界面关闭事件
|
| | | /// </summary>
|
| | | public Action FormCloseEvent = null;
|
| | | /// <summary>
|
| | | /// 添加到 的背景图控件
|
| | | /// </summary>
|
| | | private FrameLayoutControl frameAddBackGroud = null;
|
| | | private FrameLayoutStatuControl frameAddBackGroud = null;
|
| | | /// <summary>
|
| | | /// 功能的桌布控件
|
| | | /// </summary>
|
| | | private FrameLayout DeviceBodyTableControl = null;
|
| | | private NormalFrameLayout DeviceBodyTableControl = null;
|
| | | /// <summary>
|
| | | /// 场景的列表控件
|
| | | /// </summary>
|
| | |
| | | /// <summary>
|
| | | /// 场景的桌布控件
|
| | | /// </summary>
|
| | | private FrameLayout SceneBodyTableControl = null;
|
| | | private NormalFrameLayout SceneBodyTableControl = null;
|
| | | /// <summary>
|
| | | /// 全选控件
|
| | | /// </summary>
|
| | |
| | | /// <summary>
|
| | | /// 全部分组的设备信息
|
| | | /// </summary>
|
| | | private Dictionary<int, DeviceRowInfo> dicGroupDevice = null;
|
| | | private Dictionary<string, DeviceRowInfo> dicGroupDevice = null;
|
| | | /// <summary>
|
| | | /// 是否已经改变了数据
|
| | | /// </summary>
|
| | |
| | | bodyFrameLayout.AddChidren(tabControl);
|
| | |
|
| | | //初始化场景桌布
|
| | | this.SceneBodyTableControl = new FrameLayout(); |
| | | this.SceneBodyTableControl = new NormalFrameLayout(); |
| | | SceneBodyTableControl.Y = tabControl.Bottom; |
| | | SceneBodyTableControl.Height = bodyFrameLayout.Height - tabControl.Bottom; |
| | | bodyFrameLayout.AddChidren(SceneBodyTableControl);
|
| | | //初始化设备桌布
|
| | | this.DeviceBodyTableControl = new FrameLayout(); |
| | | this.DeviceBodyTableControl = new NormalFrameLayout(); |
| | | DeviceBodyTableControl.Y = tabControl.Bottom; |
| | | DeviceBodyTableControl.Height = bodyFrameLayout.Height - tabControl.Bottom; |
| | | bodyFrameLayout.AddChidren(DeviceBodyTableControl); |
| | |
| | | SceneBodyTableControl.AddChidren(listSceneView);
|
| | |
|
| | | var listScene = HdlSceneLogic.Current.GetUnalloctedScenes();
|
| | | if (listScene == null || listScene.Count == 0) { return; }
|
| | | if (listScene.Count == 0) { return; }
|
| | |
|
| | | foreach (var data in listScene)
|
| | | {
|
| | | //场景图片
|
| | | var frameContr = new ScenePictrueControl();
|
| | | listSceneView.AddChidrenFrame(frameContr);
|
| | | listSceneView.AddChidren(frameContr);
|
| | | frameContr.InitControl(data);
|
| | |
|
| | | //添加选择控件
|
| | |
| | | frameContr.CollectEvent += (collect) =>
|
| | | {
|
| | | //如果当前是收藏房间,则需要刷新主页
|
| | | if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
|
| | | if (HdlRoomLogic.Current.NowMainPageRoom.IsLove == true)
|
| | | {
|
| | | this.dataHadChanged = true;
|
| | | }
|
| | |
| | | //促使它超过时,能够往上滑
|
| | | var frameTemp = new FrameLayout();
|
| | | frameTemp.Height = Application.GetRealHeight(202 + 23);
|
| | | listSceneView.AddChidrenFrame(frameTemp);
|
| | | listSceneView.AddChidren(frameTemp);
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | DeviceBodyTableControl.AddChidren(HorizontalView);
|
| | |
|
| | | //上一次选择的菜单
|
| | | Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
|
| | | foreach (int Textid in this.dicGroupDevice.Keys)
|
| | | Controls.DeviceFunctionMenuControl oldSelectContr = null;
|
| | | foreach (string strText in this.dicGroupDevice.Keys)
|
| | | {
|
| | | var rowInfo = dicGroupDevice[Textid];
|
| | | var rowInfo = dicGroupDevice[strText];
|
| | |
|
| | | //设备类型的容器
|
| | | var devieFrame = new FrameLayout();
|
| | |
| | | HorizontalView.AddChidren(devieFrame);
|
| | |
|
| | | //菜单图片控件
|
| | | var deviceObjContr = new Controls.DeviceFunctionUnallocatedControl();
|
| | | var deviceObjContr = new 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) =>
|
| | | {
|
| | | //选择的是同一个东西的话,不处理
|
| | | if (this.nowSelectDeviceInfo.TextId != rowInfo.TextId)
|
| | | if (this.nowSelectDeviceInfo.Text != rowInfo.Text)
|
| | | {
|
| | | //上一次的菜单取消,本次菜单选择
|
| | | oldSelectContr.SetSelectStatu(false);
|
| | |
| | | private void InitAddToControl()
|
| | | {
|
| | | //添加到 的背景图控件 |
| | | this.frameAddBackGroud = new FrameLayoutControl(); |
| | | this.frameAddBackGroud = new FrameLayoutStatuControl(); |
| | | frameAddBackGroud.UseClickStatu = false; |
| | | frameAddBackGroud.Height = Application.GetRealHeight(202); |
| | | frameAddBackGroud.Gravity = Gravity.BottomCenter; |
| | |
| | | btnAdd.TextID = R.MyInternationalizationString.AddTo; |
| | | btnAdd.TextSize = 17; |
| | | btnAdd.Radius = (uint)Application.GetRealHeight(35); |
| | | frameAddBackGroud.AddChidren(btnAdd, ChidrenBindMode.BindEventOnly);
|
| | | frameAddBackGroud.AddChidren(btnAdd, ChidrenBindMode.BindEvent);
|
| | | frameAddBackGroud.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var selectZone = new SelectZone(); |
| | | selectZone.title = Language.StringByID(R.MyInternationalizationString.AddTo); |
| | | selectZone.Init(); |
| | | selectZone.ZoneAction += (selectRoom) => |
| | | HdlControlLogic.Current.ShowBottomListRoomView(string.Empty, Language.StringByID(R.MyInternationalizationString.AddTo), (selectId, selectName) => |
| | | { |
| | | if (selectId == string.Empty)
|
| | | {
|
| | | //选择的是未分配
|
| | | return;
|
| | | } |
| | | //变更了当前房间的东西,主页需要刷新 |
| | | if (HdlRoomLogic.Current.CurrentRoom.Id == selectRoom.Id)
|
| | | if (HdlRoomLogic.Current.NowMainPageRoom.Id == selectId)
|
| | | {
|
| | | this.dataHadChanged = true;
|
| | | } |
| | | //保存选择的设备和场景 |
| | | this.SaveSelectDeviceAndScene(selectRoom); |
| | | };
|
| | | var room = HdlRoomLogic.Current.GetRoomById(selectId); |
| | | this.SaveSelectDeviceAndScene(room);
|
| | | //分类界面需要刷新
|
| | | UserPage.Instance.RefreshCategoryForm = true;
|
| | | //上传空间区域信息
|
| | | HdlRoomLogic.Current.SetRoomInfoToGateway(); |
| | | });
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | /// 获取分组后的设备
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private Dictionary<int, DeviceRowInfo> GetAllGroupDevice()
|
| | | private Dictionary<string, DeviceRowInfo> GetAllGroupDevice()
|
| | | {
|
| | | //全部的设备
|
| | | var listDevice = HdlRoomLogic.Current.GetUnalloctedDevice();
|
| | | //根据设备所属类型排序
|
| | | 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);
|
| | | //按所属ID分组
|
| | | 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;
|
| | | //获取图片
|
| | | Common.LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
|
| | | dic[typeInfo.BeloneTextId].IconPath = path1;
|
| | | dic[typeInfo.BeloneTextId].IconPathSelected = path2;
|
| | | dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
|
| | | Common.LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo, ref path1, ref path2);
|
| | | dic[typeInfo.BeloneText].IconPath = path1;
|
| | | dic[typeInfo.BeloneText].IconPathSelected = path2;
|
| | | dic[typeInfo.BeloneText].Text = typeInfo.BeloneText;
|
| | | }
|
| | | dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
|
| | | dic[typeInfo.BeloneText].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
|
| | | }
|
| | | return dic;
|
| | | }
|
| | |
| | | /// </summary>
|
| | | public override void CloseFormBefore()
|
| | | {
|
| | | //调用回调事件
|
| | | this.FormCloseEvent?.Invoke();
|
| | | this.FormCloseEvent = null;
|
| | |
|
| | | if (this.dataHadChanged == true)
|
| | | {
|
| | | HdlThreadLogic.Current.RunMainInThread(() =>
|
| | | {
|
| | | //刷新主页
|
| | | this.LoadFormMethodByName("HomeMainPageForm", "RefreshBodyView");
|
| | | HomeMainPageForm.Instance?.RefreshBodyView();
|
| | | });
|
| | | }
|
| | | base.CloseFormBefore();
|
| | |
| | | private class DeviceRowInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 文本ID,目前用来做主键
|
| | | /// 文本,目前用来做主键
|
| | | /// </summary>
|
| | | public int TextId = 0;
|
| | | public string Text = string.Empty;
|
| | | /// <summary>
|
| | | /// 图标
|
| | | /// </summary>
|