xm
2020-05-07 c1de48884fa145a16a0f8bcee93274dcfaa0ff82
ZigbeeApp/Shared/Phone/UserView/UserPage.cs
New file
@@ -0,0 +1,346 @@
using System;
using System.Collections.Generic;
using Shared.Common;
using System.Text;
namespace Shared.Phone.UserView
{
    /// <summary>
    /// User page.
    /// </summary>
    public class UserPage : FrameLayout
    {
        #region ◆ 变量_______________________
        /// <summary>
        /// The user menu page.
        /// </summary>
        static UserPage userMenuPage;
        /// <summary>
        /// 底部单独菜单的宽度-360
        /// </summary>
        private static readonly int tabBarEnum_Width = CommonPage.AppRealWidth / 3;
        /// <summary>
        /// 底部按钮图片的高度
        /// </summary>
        private static readonly int tabBarEnumIMG_Height = 98;
        /// <summary>
        /// 底部按钮图片的宽度
        /// </summary>
        private static readonly int tabBarEnumIMG_Width = 138;
        /// <summary>
        /// 底部按钮图片的Y值
        /// </summary>
        private static readonly int tabBarEnumIMG_Y = 3;
        /// <summary>
        /// 底部按钮文字的高度
        /// </summary>
        private static readonly int tabBarEnumName_Height = 40;
        /// <summary>
        /// 底部按钮文字的Y值
        /// </summary>
        private static readonly int tabBarEnumName_Y = 98;
        #endregion
        /// <summary>
        /// 用户界面
        /// </summary>
        /// <value>The instance.</value>
        public static UserPage Instance
        {
            get
            {
                if (userMenuPage == null)
                {
                    userMenuPage = new UserPage { };
                }
                return userMenuPage;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="T:Shared.Phone.UserView.UserPage"/> class.
        /// </summary>
        public UserPage()
        {
            BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
            Shared.Application.LocationAction += (lon, lat) =>
            {
                Login.AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
            };
        }
        /// <summary>
        /// 用户主体界面(中间部分)
        /// </summary>
        public FrameLayout BodyView = new FrameLayout
        {
            Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight),
            BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor,
        };
        /// <summary>
        /// 用户菜单界面(底部部分)
        /// </summary>
        public FrameLayout BottomMenuView = new FrameLayout
        {
            Y = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight),
            Height = Application.GetRealHeight(CommonPage.TabbarHeight),
            BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBottomColor,
        };
        #region 分割线
        private Button bottomLine = new Button
        {
            Height = 1,
            BackgroundColor = ZigbeeColor.Current.GXCBottomLineColor
        };
        #endregion
        #region 底部-主页按钮
        /// <summary>
        /// 底部-主页按钮
        /// </summary>
        public FrameLayout homePageFL = new FrameLayout
        {
            Width = Application.GetRealWidth(tabBarEnum_Width),
            Height = Application.GetRealHeight(CommonPage.TabbarHeight),
        };
        /// <summary>
        /// The home page image.
        /// </summary>
        public Button homePageIMG = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumIMG_Y),
            Height = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Height),
            Width = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Width),
            UnSelectedImagePath = "Navigation/Home.png",
            SelectedImagePath = "Navigation/HomeSelected.png",
            Gravity = Gravity.CenterHorizontal
        };
        /// <summary>
        /// The name of the home page.
        /// </summary>
        public Button homePageName = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumName_Y),
            Height = Application.GetRealHeight(tabBarEnumName_Height),
            TextID = R.MyInternationalizationString.HomePage,
            TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor,
            SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2,
            Gravity = Gravity.CenterHorizontal,
            TextSize = 10
        };
        #endregion
        #region 分类-底部按钮
        /// <summary>
        /// 分类-底部按钮
        /// </summary>
        public FrameLayout categoryFL = new FrameLayout
        {
            X = Application.GetRealWidth(tabBarEnum_Width),
            Width = Application.GetRealWidth(tabBarEnum_Width),
            Height = Application.GetRealHeight(CommonPage.TabbarHeight)
        };
        /// <summary>
        /// The category image.
        /// </summary>
        public Button categoryIMG = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumIMG_Y),
            Height = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Height),
            Width = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Width),
            UnSelectedImagePath = "Navigation/Category.png",
            SelectedImagePath = "Navigation/CategorySelected.png",
            Gravity = Gravity.CenterHorizontal
        };
        /// <summary>
        /// The name of the category.
        /// </summary>
        public Button categoryName = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumName_Y),
            Height = Application.GetRealHeight(tabBarEnumName_Height),
            TextID = R.MyInternationalizationString.Category,
            TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor,
            SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2,
            Gravity = Gravity.CenterHorizontal,
            TextSize = 10
        };
        #endregion
        #region 个人中心-底部按钮
        /// <summary>
        /// 个人中心-底部按钮
        /// </summary>
        public FrameLayout settingFL = new FrameLayout
        {
            X = Application.GetRealWidth(tabBarEnum_Width * 2),
            Width = Application.GetRealWidth(tabBarEnum_Width),
            Height = Application.GetRealHeight(CommonPage.TabbarHeight)
        };
        /// <summary>
        /// The setting image.
        /// </summary>
        public Button settingIMG = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumIMG_Y),
            Height = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Height),
            Width = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(tabBarEnumIMG_Width),
            UnSelectedImagePath = "Navigation/Setting.png",
            SelectedImagePath = "Navigation/SettingSelected.png",
            Gravity = Gravity.CenterHorizontal
        };
        /// <summary>
        /// 个人中心
        /// </summary>
        public Button settingName = new Button
        {
            Y = Application.GetRealHeight(tabBarEnumName_Y),
            Height = Application.GetRealHeight(tabBarEnumName_Height),
            TextID = R.MyInternationalizationString.Me,
            TextColor = Shared.Common.ZigbeeColor.Current.GXCTextBottomUnSelectedColor,
            SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2,
            Gravity = Gravity.CenterHorizontal,
            TextSize = 10
        };
        #endregion
        #region 强制显示自动化界面
        /// <summary>
        /// 强制显示自动化列表界面
        /// </summary>
        public void ShowCategoryAutoListForm()
        {
            //关闭全部界面,直到主页为止
            UserCenter.UserCenterLogic.CloseAllOpenForm();
            //强制显示自动化列表界面
            UserCenter.UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 2;
            BottomEventHandler(Instance.categoryIMG, null);
        }
        #endregion
        EventHandler<MouseEventArgs> BottomEventHandler = (sender, e) =>
        {
            if (sender == Instance.homePageIMG || sender == Instance.homePageName)
            {
                if (Instance.homePageName.IsSelected == true && e != null)
                {
                    //只有是手动点击的时候才处理
                    return;
                }
                Instance.BodyView.RemoveAll();
                //主页
                CommonPage.Instance.IsDrawerLockMode = false;
                Instance.homePageName.IsSelected = true;
                Instance.homePageIMG.IsSelected = true;
                Instance.categoryName.IsSelected = false;
                Instance.categoryIMG.IsSelected = false;
                Instance.settingName.IsSelected = false;
                Instance.settingIMG.IsSelected = false;
                var home = new MainPage.HomeMainPageForm();
                Instance.BodyView.AddChidren(home);
                home.ShowForm();
            }
            else if (sender == Instance.categoryIMG || sender == Instance.categoryName)
            {
                if (Instance.categoryName.IsSelected == true && e != null)
                {
                    //只有是手动点击的时候才处理
                    return;
                }
                Instance.BodyView.RemoveAll();
                //分类
                CommonPage.Instance.IsDrawerLockMode = true;
                Instance.categoryName.IsSelected = true;
                Instance.categoryIMG.IsSelected = true;
                Instance.homePageName.IsSelected = false;
                Instance.homePageIMG.IsSelected = false;
                Instance.settingName.IsSelected = false;
                Instance.settingIMG.IsSelected = false;
                var category = new Category.CategoryMainForm { };
                Instance.BodyView.AddChidren(category);
                category.ShowForm();
            }
            else if (sender == Instance.settingIMG || sender == Instance.settingName)
            {
                if (Instance.settingName.IsSelected == true && e != null)
                {
                    return;
                }
                Instance.BodyView.RemoveAll();
                //个人中心
                CommonPage.Instance.IsDrawerLockMode = true;
                Instance.settingName.IsSelected = true;
                Instance.settingIMG.IsSelected = true;
                Instance.homePageName.IsSelected = false;
                Instance.homePageIMG.IsSelected = false;
                Instance.categoryName.IsSelected = false;
                Instance.categoryIMG.IsSelected = false;
                var form = new UserCenter.UserMain.UserMainForm();
                Instance.BodyView.AddChidren(form);
                form.ShowForm();
            }
        };
        /// <summary>
        /// Fresh this instance.
        /// </summary>
        public void Fresh()
        {
            BottomEventHandler(Instance.homePageIMG, null);
        }
        /// <summary>
        /// Inits the page.
        /// </summary>
        public void InitPage()
        {
            if (0 < ChildrenCount)
            {
                return;
            }
            AddChidren(BodyView);
            AddChidren(BottomMenuView);
            BottomMenuView.AddChidren(Instance.bottomLine);
            Instance.homePageFL.AddChidren(Instance.homePageIMG);
            Instance.homePageFL.AddChidren(Instance.homePageName);
            BottomMenuView.AddChidren(Instance.homePageFL);
            Instance.categoryFL.AddChidren(Instance.categoryIMG);
            Instance.categoryFL.AddChidren(Instance.categoryName);
            BottomMenuView.AddChidren(Instance.categoryFL);
            Instance.settingFL.AddChidren(Instance.settingIMG);
            Instance.settingFL.AddChidren(Instance.settingName);
            BottomMenuView.AddChidren(Instance.settingFL);
            homePageIMG.MouseUpEventHandler += BottomEventHandler;
            homePageName.MouseUpEventHandler += BottomEventHandler;
            categoryIMG.MouseUpEventHandler += BottomEventHandler;
            categoryName.MouseUpEventHandler += BottomEventHandler;
            settingIMG.MouseUpEventHandler += BottomEventHandler;
            settingName.MouseUpEventHandler += BottomEventHandler;
        }
    }
}