| | |
| | | using System; |
| | | using System.Collections.Generic;
|
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | |
| | | /// 场景内容显示区域 |
| | | /// </summary> |
| | | FrameLayout floorChangeView; |
| | | /// <summary>
|
| | | /// 楼层房间选择的下拉对象
|
| | | /// </summary> |
| | | FloorRoomSelectPopupView floorRoomSelectView = null; |
| | | Button btnSceneTilte; |
| | | |
| | | #region 场景底部切换显示区域 |
| | | FrameLayout topView; |
| | | /// <summary> |
| | | /// 场景区域,顶部区域 |
| | | /// </summary> |
| | | FrameLayout sceneTopView; |
| | | /// <summary> |
| | | /// 楼层选择下拉图标 |
| | | /// </summary> |
| | |
| | | |
| | | public void LoadPage() |
| | | { |
| | | MainPage.CurPageIndex = 2; |
| | | bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; |
| | | #region top |
| | | topView = new FrameLayout() |
| | |
| | | }; |
| | | bodyView.AddChidren(topView); |
| | | |
| | | if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | //不是A网关或者是成员 只允许添加场景隐藏自动化 |
| | | var HideAutoPage = DB_ResidenceData.Instance.CurrentRegion.isOtherShare; |
| | | //判断是否需要隐藏自动化 |
| | | if (HideAutoPage) |
| | | { |
| | | btnSceneTilte = new Button() |
| | | { |
| | |
| | | }; |
| | | topView.AddChidren(btnSceneTilte); |
| | | btnAutomationTitle = new Button(); |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | Height = Application.GetMinRealAverage(28), |
| | | UnSelectedImagePath = "Public/AddIcon.png", |
| | | }; |
| | | topView.AddChidren(btnAddIconBg); |
| | | |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | { |
| | | topView.AddChidren(btnAddIconBg); |
| | | } |
| | | btnAddIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(337-20), |
| | | Width = Application.GetMinRealAverage(28+30), |
| | | Height = Application.GetMinRealAverage(28+29), |
| | | }; |
| | | topView.AddChidren(btnAddIcon); |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | { |
| | | topView.AddChidren(btnAddIcon); |
| | | } |
| | | #endregion |
| | | |
| | | contentPageView = new PageLayout() |
| | |
| | | bodyView.AddChidren(contentPageView); |
| | | |
| | | LoadScenePageView(); |
| | | LoadAutomationPageView(); |
| | | //判断是否需要隐藏自动化 |
| | | if (!HideAutoPage) |
| | | { |
| | | LoadAutomationPageView(); |
| | | } |
| | | LoadEventList(); |
| | | |
| | | } |
| | |
| | | /// </summary> |
| | | floorChangeView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(52), |
| | | Height = Application.GetRealHeight(53), |
| | | }; |
| | | scenePageView.AddChidren(floorChangeView); |
| | | #region 场景底部切换显示区域 |
| | | /// <summary> |
| | | /// 场景区域,顶部区域 |
| | | /// </summary> |
| | | sceneTopView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(53), |
| | | }; |
| | | floorChangeView.AddChidren(sceneTopView); |
| | | /// <summary> |
| | | /// 楼层选择下拉图标 |
| | | /// </summary> |
| | |
| | | Width = Application.GetMinRealAverage(16), |
| | | Height = Application.GetMinRealAverage(16), |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(18), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Public/DownIcon.png", |
| | | }; |
| | | floorChangeView.AddChidren(btnFloorDownIcon); |
| | |
| | | btnFloor = new Button() |
| | | { |
| | | X = btnFloorDownIcon.Right, |
| | | Y = Application.GetRealHeight(18), |
| | | Gravity = Gravity.CenterVertical, |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetMinRealAverage(16), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = DB_ResidenceData.Instance.CurFloor.roomName, |
| | | }; |
| | | floorChangeView.AddChidren(btnFloor); |
| | | floorChangeView.AddChidren(btnFloor);
|
| | |
|
| | | string nowSelectId = null;
|
| | | btnFloor.MouseUpEventHandler += (sender, e) =>
|
| | | {
|
| | | if (this.floorRoomSelectView == null)
|
| | | {
|
| | | //先初始化
|
| | | this.floorRoomSelectView = new FloorRoomSelectPopupView();
|
| | | }
|
| | | //显示下拉列表
|
| | | this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
|
| | | {
|
| | | nowSelectId = selectId;
|
| | | //重新刷新场景列表
|
| | | this.LoadSceneFunctionControlZone(listScene);
|
| | | }, nowSelectId);
|
| | | }; |
| | | |
| | | #endregion |
| | | |
| | |
|
| | | sceneFunctionView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = floorChangeView.Bottom, |
| | | Y = Application.GetRealHeight(53), |
| | | Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30), |
| | | }; |
| | | scenePageView.AddChidren(sceneFunctionView); |
| | | LoadSceneFunctionControlZone(); |
| | | LoadSceneFunctionControlZone(null); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载场景功能显示区域 |
| | | /// </summary> |
| | | void LoadSceneFunctionControlZone() |
| | | void LoadSceneFunctionControlZone(List<Scene> listScene) |
| | | { |
| | | //topView.AddChidren(btnAddIcon); |
| | | |
| | |
| | | try |
| | | { |
| | | int index = 0; |
| | | foreach (var scene in FunctionList.List.scenes) |
| | | //获取能够显示的场景 |
| | | if (listScene == null)
|
| | | {
|
| | | //初始值
|
| | | if (this.floorRoomSelectView == null)
|
| | | {
|
| | | //先初始化
|
| | | this.floorRoomSelectView = new FloorRoomSelectPopupView();
|
| | | }
|
| | | listScene = this.floorRoomSelectView.GetCanShowListScene();
|
| | | } |
| | | foreach (var scene in listScene) |
| | | { |
| | | //if (scene.roomIds.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示 |
| | | //{ |
| | |
| | | //} |
| | | if (index % 2 == 0) |
| | | { |
| | | sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); |
| | | rowView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealWidth(122), |
| | | }; |
| | | sceneFunctionView.AddChidren(rowView); |
| | | sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); |
| | | sceneFunctionView.AddChidren(new Button() |
| | | { |
| | | Height = Application.GetRealHeight(7 + 7), |
| | | }); |
| | | } |
| | | var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16); |
| | | |
| | |
| | | }; |
| | | view.AddChidren(btnCoverd); |
| | | |
| | | Button btnShowDelay; |
| | | btnShowDelay = new Button() |
| | | { |
| | | X = Application.GetRealWidth(40), |
| | | Y = Application.GetRealWidth(4), |
| | | Height = Application.GetRealWidth(32), |
| | | Width = Application.GetRealWidth(100), |
| | | TextColor = CSS_Color.AuxiliaryColor1, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | view.AddChidren(btnShowDelay); |
| | | |
| | | Button btnName; |
| | | btnName = new Button() |
| | | { |
| | |
| | | Width = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", |
| | | }; |
| | | view.AddChidren(btnSettingIcon); |
| | | if (scene.userId == UserInfo.Current.ID) |
| | | { |
| | | view.AddChidren(btnSettingIcon); |
| | | } |
| | | |
| | | Button btnCollection; |
| | | btnCollection = new Button() |
| | |
| | | IsSelected = scene.collect, |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | //{ |
| | | // view.AddChidren(btnCollection); |
| | | //} |
| | | btnCollection.MouseUpEventHandler = (sender, e) => { |
| | | scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected; |
| | | scene.SaveSceneData(true); |
| | | scene.CollectScene(); |
| | | }; |
| | | LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene); |
| | | LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene); |
| | | btnSettingIcon.MouseUpEventHandler = (sender, e) => { |
| | | Action backAction = () => { |
| | | LoadSceneFunctionControlZone(); |
| | | LoadSceneFunctionControlZone(null); |
| | | }; |
| | | Action refreshAction = () => { |
| | | btnName.Text = scene.name; |
| | | btnZone.Text = scene.GetRoomListName(); |
| | | //view.BackgroundImagePath = scene.ImagePath; |
| | | //2020-12-03 修改图片加载方法 |
| | | ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, view); |
| | | }; |
| | | var aep = new SceneEditPage(scene, backAction); |
| | | MainPage.BasePageView.AddChidren(aep); |
| | | aep.LoadPage(StringId.EditScene, refreshAction); |
| | | aep.LoadPage(refreshAction); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | //场景正在倒计时执行中 |
| | | scene.SceneCountDown(btnShowDelay); |
| | | |
| | | //if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false))) |
| | | //{ |
| | | // int time = 0; |
| | | // int.TryParse(Convert.ToInt32( |
| | | // Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) - Convert.ToDouble(Utlis.GetTimestamp(false)) |
| | | // ).ToString(),out time); |
| | | // if (time > 0) |
| | | // { |
| | | // new System.Threading.Thread(() => |
| | | // { |
| | | // //int time = Convert.ToInt32(scene.delay); |
| | | // if (time > 0) |
| | | // { |
| | | // while (time > 0) |
| | | // { |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // if (time / 60 > 1) |
| | | // { |
| | | // btnShowDelay.Text = (time / 60).ToString() + "min"; |
| | | // } |
| | | // else |
| | | // { |
| | | // btnShowDelay.Text = (time--).ToString() + "s"; |
| | | // } |
| | | // }); |
| | | // if (time / 60 > 1) |
| | | // { |
| | | // System.Threading.Thread.Sleep(time / 60 * 60000); |
| | | // } |
| | | // else |
| | | // { |
| | | // System.Threading.Thread.Sleep(1000); |
| | | // } |
| | | // } |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // btnShowDelay.Text = ""; |
| | | // }); |
| | | // } |
| | | // }) |
| | | // { IsBackground = true, Priority = System.Threading.ThreadPriority.BelowNormal }.Start(); |
| | | // } |
| | | //} |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// </summary> |
| | | void LoadAutomationPageView() |
| | | { |
| | | //btnAddIcon.RemoveFromParent(); |
| | | automationPage = new FrameLayout(); |
| | | contentPageView.AddChidren(automationPage); |
| | | UI2.Intelligence.Automation.MainView.automationPage = automationPage; |
| | | UI2.Intelligence.Automation.MainView.MainShow(); |
| | | } |
| | | }
|
| | | #endregion |
| | | } |
| | | |
| | |
| | | { |
| | | if (!btnAutomationTitle.IsSelected) |
| | | { |
| | | //如果是成员 |
| | | if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | { |
| | | //如果没有场景权限 |
| | | if (!DB_ResidenceData.Instance.CurrentRegion.isAllowCreateScene) |
| | | { |
| | | //提示没有场景的创建权限 |
| | | Utlis.ShowTip(Language.StringByID(StringId.PermissionDenied)); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | Action action = () => |
| | | { |
| | | LoadSceneFunctionControlZone(); |
| | | LoadSceneFunctionControlZone(null); |
| | | }; |
| | | var aep = new NewSceneMenuListPage(action); |
| | | MainPage.BasePageView.AddChidren(aep); |
| | |
| | | /// <summary> |
| | | /// 加载场景控制事件 |
| | | /// </summary> |
| | | void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Scene scene) |
| | | void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone,Button btnShowDelay, Scene scene) |
| | | { |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | //场景正在倒计时执行中,不允许再点击 |
| | | if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false))) |
| | | { |
| | | scene.LastExecutionTime = Utlis.GetTimestamp(false); |
| | | } |
| | | else |
| | | { |
| | | return; |
| | | } |
| | | string msg = scene.name + Language.StringByID(StringId.AlreadyOpened); |
| | | new PublicAssmebly().TipMsgAutoClose(msg, true); |
| | | Control.Ins.ControlScene(scene); |
| | | scene.SceneCountDown(btnShowDelay); |
| | | }; |
| | | btnCoverd.MouseUpEventHandler = eventHandler; |
| | | btnName.MouseUpEventHandler = eventHandler; |