陈嘉乐
2020-12-03 0f2e0147e8990e913d16d99bc1b94fb6bc53abd7
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,9 +1,10 @@
using System;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
namespace HDL_ON.UI
{
    public partial class IntelligencePage : FrameLayout
    {
@@ -12,13 +13,17 @@
        /// 场景/自动化分页区域
        /// </summary>
        PageLayout contentPageView;
        Button btnAutomationTitle;
        #region 场景区域
        FrameLayout scenePageView;
        /// <summary>
        /// 场景内容显示区域
        /// </summary>
        FrameLayout floorChangeView;
        Button btnSceneTilte;
        #region 场景底部切换显示区域
        FrameLayout topView;
        /// <summary>
        /// 场景区域,顶部区域
        /// </summary>
@@ -42,7 +47,12 @@
        /// </summary>
        VerticalScrolViewLayout sceneFunctionView;
        #endregion
        #region 自动化区域
        /// <summary>
        /// 自动化内容显示区域
        /// </summary>
        FrameLayout automationPage;
        #endregion
        public IntelligencePage()
        {
            bodyView = this;
@@ -52,14 +62,14 @@
        {
            bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
            #region top
            FrameLayout topView = new FrameLayout()
            topView = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            bodyView.AddChidren(topView);
            Button btnSceneTilte = new Button()
            btnSceneTilte = new Button()
            {
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(170),
@@ -73,7 +83,7 @@
            };
            topView.AddChidren(btnSceneTilte);
            Button btnAutomationTitle = new Button()
            btnAutomationTitle = new Button()
            {
                X = Application.GetRealWidth(209),
                Y = Application.GetRealHeight(30),
@@ -108,9 +118,11 @@
            bodyView.AddChidren(contentPageView);
            LoadScenePageView();
            //LoadFunctionPageView();
            LoadAutomationPageView();
            LoadEventList();
        }
        #region 场景部分
        /// <summary>
        /// 加载场景列表界面
        /// </summary>
@@ -159,13 +171,14 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextAlignment = TextAlignment.CenterLeft,
                Text = OnAppConfig.Instance.CurFoor,
                Text = DB_ResidenceData.residenceData.CurFoor,
            };
            floorChangeView.AddChidren(btnFloor);
            #endregion
            sceneFunctionView = new VerticalScrolViewLayout() {
            sceneFunctionView = new VerticalScrolViewLayout()
            {
                Y = floorChangeView.Bottom,
                Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30),
            };
@@ -178,16 +191,18 @@
        /// </summary>
        void LoadSceneFunctionControlZone()
        {
            //topView.AddChidren(btnAddIcon);
            sceneFunctionView.RemoveAll();
            var rowView = new FrameLayout();
            try
            {
                int index = 0;
                foreach (var function in DB_ResidenceData.functionList.scenes)
                foreach (var scene in DB_ResidenceData.functionList.scenes)
                {
                    if (function.roomIdList.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
                    if (scene.roomIds.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
                    {
                        function.collection = false;
                        scene.collect = false;
                        continue;
                    }
                    if (index % 2 == 0)
@@ -207,12 +222,12 @@
                        X = functionView_X,
                        Width = Application.GetRealWidth(164),
                        Height = Application.GetRealWidth(122),
                        Tag = function.sid,
                        BackgroundImagePath = (function as Scene).ImagePath,
                        Tag = scene.sid,
                        BackgroundImagePath = (scene as Scene).ImagePath,
                    };
                    rowView.AddChidren(functionView);
                    LoadSceneFunctionDiv(functionView, function);
                    LoadSceneFunctionDiv(functionView, scene);
                    index++;
                }
@@ -254,7 +269,7 @@
        /// <summary>
        /// 加载场景控制卡片
        /// </summary>
        void LoadSceneFunctionDiv(FrameLayout view, Function function)
        void LoadSceneFunctionDiv(FrameLayout view, Scene scene)
        {
            try
            {
@@ -271,7 +286,7 @@
                    Y = Application.GetRealWidth(68),
                    Width = Application.GetRealWidth(150),
                    Height = Application.GetRealHeight(24),
                    Text = function.name,
                    Text = scene.name,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.MainBackgroundColor,
                    TextAlignment = TextAlignment.CenterLeft,
@@ -289,7 +304,7 @@
                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    TextAlignment = TextAlignment.CenterLeft,
                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                    Text = function.GetRoomListName(),
                    Text = scene.GetRoomListName(),
                };
                view.AddChidren(btnZone);
@@ -314,24 +329,24 @@
                    Height = Application.GetMinRealAverage(32),
                    UnSelectedImagePath = "Collection/CollectionWhiteIcon.png",
                    SelectedImagePath = "Collection/CollectionIcon.png",
                    IsSelected = function.collection,
                    IsSelected = scene.collect,
                };
                view.AddChidren(btnCollection);
                btnCollection.MouseUpEventHandler = (sender, e) => {
                    function.collection = btnCollection.IsSelected = !btnCollection.IsSelected;
                    function.SaveFunctionData();
                    scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
                    scene.SaveSceneData();
                };
                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, function);
                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, scene);
                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
                    Action backAction = () => {
                        LoadSceneFunctionControlZone();
                    };
                    Action refreshAction = () => {
                        btnName.Text = function.name;
                        btnZone.Text = function.GetRoomListName();
                        view.BackgroundImagePath = (function as Scene).ImagePath;
                        btnName.Text = scene.name;
                        btnZone.Text = scene.GetRoomListName();
                        view.BackgroundImagePath = scene.ImagePath;
                    };
                    var aep = new SceneEditPage(function as Scene, backAction);
                    var aep = new SceneEditPage(scene, backAction);
                    MainPage.BasePageView.AddChidren(aep);
                    aep.LoadPage(StringId.EditScene, refreshAction);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -342,7 +357,22 @@
                MainPage.Log("homepage LoadControlView error : " + ex.Message);
            }
        }
        #endregion
        #region 自动化部分
        /// <summary>
        /// 加载自动化列表界面
        /// </summary>
        void LoadAutomationPageView()
        {
            //btnAddIcon.RemoveFromParent();
            automationPage = new FrameLayout();
            contentPageView.AddChidren(automationPage);
            HDL_ON.UI.UI2.Intelligence.Automation.MainView.automationPage = automationPage;
            HDL_ON.UI.UI2.Intelligence.Automation.MainView.MainShow();
        }
        #endregion
    }
@@ -352,7 +382,65 @@
        void LoadEventList()
        {
            LoadEvent_SkipAddScenePage();
            LoadEvent_ShowedChange();
        }
        #region 顶部导航栏事件
        /// <summary>
        /// 显示界面切换
        /// </summary>
        void LoadEvent_ShowedChange()
        {
            contentPageView.PageChange = (sender, e) =>
            {
                if (contentPageView.PageIndex == 0)
                {
                    btnSceneTilte.IsSelected = true;
                    btnSceneTilte.TextSize = CSS_FontSize.HeadlineFontSize;
                    btnSceneTilte.IsBold = true;
                    btnAutomationTitle.IsSelected = false;
                    btnAutomationTitle.TextSize = CSS_FontSize.TextFontSize;
                    btnAutomationTitle.IsBold = false;
                }
                else
                {
                    btnAutomationTitle.IsSelected = true;
                    btnAutomationTitle.TextSize = CSS_FontSize.HeadlineFontSize;
                    btnAutomationTitle.IsBold = true;
                    btnSceneTilte.IsSelected = false;
                    btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
                    btnSceneTilte.IsBold = false;
                }
            };
            btnSceneTilte.MouseUpEventHandler = (sender, e) =>
            {
                if (btnSceneTilte.IsSelected)
                {
                    return;
                }
                btnSceneTilte.IsSelected = true;
                btnSceneTilte.TextSize = CSS_FontSize.HeadlineFontSize;
                btnAutomationTitle.IsSelected = false;
                btnAutomationTitle.TextSize = CSS_FontSize.TextFontSize;
                contentPageView.PageIndex = 0;
            };
            //逻辑点击事件
            btnAutomationTitle.MouseUpEventHandler = (sender, e) => {
                if (btnAutomationTitle.IsSelected)
                {
                    return;
                }
                btnAutomationTitle.IsSelected = true;
                btnAutomationTitle.TextSize = CSS_FontSize.HeadlineFontSize;
                btnSceneTilte.IsSelected = false;
                btnSceneTilte.TextSize = CSS_FontSize.TextFontSize;
                contentPageView.PageIndex = 1;
            };
        }
        #endregion
        /// <summary>
        /// 跳转至添加场景的界面
        /// </summary>
@@ -360,13 +448,22 @@
        {
            btnAddIcon.MouseUpEventHandler = (sender, e) =>
            {
                Action action = () => {
                    LoadSceneFunctionControlZone();
                };
                var aep = new NewSceneMenuListPage(action);
                MainPage.BasePageView.AddChidren(aep);
                aep.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                if (!btnAutomationTitle.IsSelected)
                {
                    Action action = () =>
                    {
                        LoadSceneFunctionControlZone();
                    };
                    var aep = new NewSceneMenuListPage(action);
                    MainPage.BasePageView.AddChidren(aep);
                    aep.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                }
                else
                {
                    //跳转到逻辑界面
                    HDL_ON.UI.UI2.Intelligence.Automation.MainView.SkipAddLogicPage();
                }
            };
        }
@@ -374,19 +471,20 @@
        /// <summary>
        /// 加载场景控制事件
        /// </summary>
        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Function function)
        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Scene scene)
        {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                string msg = function.name + Language.StringByID(StringId.AlreadyOpened);
                string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
                new PublicAssmebly().TipMsgAutoClose(msg, true);
                Control.Send(function);
                Control.Ins.ControlScene(scene);
            };
            btnCoverd.MouseUpEventHandler = eventHandler;
            btnName.MouseUpEventHandler = eventHandler;
            btnZone.MouseUpEventHandler = eventHandler;
        }
    }
}