wxr
2020-04-14 06696e6f225733a60b03eea4a7c6374053d92c1d
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -1,4 +1,5 @@
using System;
using System.Threading;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
@@ -7,278 +8,9 @@
{
    public partial class PublicAssmebly
    {
        /*
        /// <summary>
        /// 向framelayout添加顶部区域
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="tilte"></param>
        public void LoadTopView(FrameLayout frame, string tilte)
        {
            FrameLayout view = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            frame.AddChidren(view);
            Button btnBack = new Button()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealHeight(28),
                UnSelectedImagePath = "Public/BackIcon.png",
            };
            frame.AddChidren(btnBack);
            btnBack.MouseUpEventHandler += (sender, e) =>
            {
                frame.RemoveFromParent();
            };
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(150),
                Height = Application.GetRealHeight(25),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = tilte
            };
            frame.AddChidren(btnTilte);
        }
        /// <summary>
        /// 向framelayout添加顶部区域
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="tilte"></param>
        public void LoadTopView(FrameLayout frame, string tilte ,Action action)
        {
            FrameLayout view = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            frame.AddChidren(view);
            Button btnBack = new Button()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealHeight(28),
                UnSelectedImagePath = "Public/BackIcon.png",
            };
            frame.AddChidren(btnBack);
            btnBack.MouseUpEventHandler += (sender, e) =>
            {
                action();
                frame.RemoveFromParent();
            };
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(150),
                Height = Application.GetRealHeight(25),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = tilte
            };
            frame.AddChidren(btnTilte);
        }
        /// <summary>
        /// 向dialog添加顶部区域
        /// </summary>
        /// <param name="dialog"></param>
        /// <param name="frame"></param>
        /// <param name="tilte"></param>
        public void LoadTopView(Dialog dialog, FrameLayout frame, string tilte)
        {
            FrameLayout view = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            frame.AddChidren(view);
            Button btnBack = new Button()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealHeight(28),
                UnSelectedImagePath = "Public/BackIcon.png",
            };
            frame.AddChidren(btnBack);
            btnBack.MouseUpEventHandler += (sender, e) =>
            {
                dialog.Close();
            };
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(150),
                Height = Application.GetRealHeight(25),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = tilte
            };
            frame.AddChidren(btnTilte);
        }
        /// <summary>
        /// 向framelayout添加顶部区域,拥有功能配置按钮
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="tilte"></param>
        public void LoadTopView(FrameLayout frame, string tilte,Function function)
        {
            FrameLayout view = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            frame.AddChidren(view);
            Button btnBack = new Button()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealHeight(28),
                UnSelectedImagePath = "Public/BackIcon.png",
            };
            frame.AddChidren(btnBack);
            btnBack.MouseUpEventHandler += (sender, e) =>
            {
                frame.RemoveFromParent();
            };
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(150),
                Height = Application.GetRealHeight(25),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = tilte
            };
            frame.AddChidren(btnTilte);
            var btnSetting = new Button()
            {
                X = Application.GetRealWidth(337),
                Y = Application.GetRealHeight(29),
                Width = Application.GetMinRealAverage(28),
                Height = Application.GetMinRealAverage(28),
                UnSelectedImagePath = "Public/FuncInfoSetIcon.png",
            };
            frame.AddChidren(btnSetting);
            btnSetting.MouseUpEventHandler += (sender, e) => {
                var infoView = new FunctionBaseInfoSetPage(function);
                MainPage.BasePageView.AddChidren(infoView);
                infoView.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
        }
        /// <summary>
        /// 向framelayout添加顶部区域,拥有功能配置按钮
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="tilte"></param>
        public void LoadTopView(FrameLayout frame, string tilte, string type,Action<string,string> callBack)
        {
            FrameLayout view = new FrameLayout()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS_Color.TopViewColor,
            };
            frame.AddChidren(view);
            Button btnBack = new Button()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealHeight(28),
                UnSelectedImagePath = "Public/BackIcon.png",
            };
            frame.AddChidren(btnBack);
            btnBack.MouseUpEventHandler += (sender, e) =>
            {
                frame.RemoveFromParent();
            };
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(30),
                Width = Application.GetRealWidth(150),
                Height = Application.GetRealHeight(25),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = tilte
            };
            frame.AddChidren(btnTilte);
            var btnAddIcon = new Button()
            {
                X = Application.GetRealWidth(337),
                Y = Application.GetRealHeight(29),
                Width = Application.GetMinRealAverage(28),
                Height = Application.GetMinRealAverage(28),
                UnSelectedImagePath = "Public/AddIcon.png",
            };
            frame.AddChidren(btnAddIcon);
            btnAddIcon.MouseUpEventHandler += (sender, e) => {
                switch (type)
                {
                    case "floors":
                        Action<string> callBackAction = (floorName) =>
                        {
                            if (DB_ResidenceData.residenceData.floors.Contains(floorName))
                            {
                                return;
                            }
                            else
                            {
                                DB_ResidenceData.residenceData.floors.Add(floorName);
                                DB_ResidenceData.residenceData.SaveResidenceData();
                                callBack("add", floorName);
                            }
                        };
                        LoadDialog_EditParater(StringId.AddFloors, DB_ResidenceData.residenceData.floors.Count + 1 + " F", callBackAction);
                        break;
                    case "rooms":
                        callBack("", "");
                        break;
                }
            };
        }
        */
        /// <summary>
        /// 加载修改参数的小弹窗
        /// 保存按钮事件需要将
        /// </summary>
        /// <param name="callBackAction">回调函数</param>
        public void LoadDialog_EditParater(int titleId, string editParater, Action<string> callBackAction)
@@ -397,8 +129,17 @@
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = false;
                //需要提示错误信息在窗口弹窗之上的
                if ((titleId == StringId.EditFloorName && etParater.Text.Trim() != editParater) || titleId == StringId.AddFloors)
                {
                    var tipMsgString = titleId == StringId.EditFloorName ? Language.StringByID(StringId.AddFloorFailed_FloorAlreadyExist) : Language.StringByID(StringId.AddFloorFailed_FloorAlreadyExist);
                    if (string.IsNullOrEmpty(etParater.Text.Trim()))
                    {
                        tipMsgString = Language.StringByID(StringId.FloorNameCannotBeEmpty);
                        return;
                    }
                    if (DB_ResidenceData.residenceData.floors.Contains(etParater.Text.Trim()))
                    {
                        contentView.Height = Application.GetRealHeight(183);
@@ -414,18 +155,19 @@
                            Y = editView.Bottom,
                            Width = Application.GetRealWidth(182),
                            Height = Application.GetRealHeight(30),
                            TextID = StringId.AddFloorFailed_FloorAlreadyExist,
                            Text = tipMsgString,
                            TextColor = CSS_Color.WarningColor,
                            TextSize = CSS_FontSize.TextFontSize,
                        };
                        contentView.AddChidren(btnTip);
                        return;
                    }
                    callBackAction(etParater.Text.Trim());
                }
                if(titleId == StringId.RoomName || titleId == StringId.ChangeName)
                if(titleId == StringId.RoomName || titleId == StringId.ChangeName || titleId == StringId.ResidenceName)
                {
                    if(editParater != etParater.Text.Trim())
                    {
@@ -558,6 +300,59 @@
        }
        /// <summary>
        /// 信息提示窗口,自动关闭
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="isWhite"></param>
        public void TipMsgAutoClose(string msg,bool isWhite)
        {
            Dialog dialog = new Dialog()
            {
                X = Application.GetRealWidth(89),
                Y = Application.GetRealHeight(285),
                Width = Application.GetRealWidth(198),
                Height = Application.GetRealHeight(98),
            };
            FrameLayout frame = new FrameLayout()
            {
                BackgroundColor = isWhite ? 0xE6FFFFFF : CSS_Color.DialogTransparentColor1,
                Radius = (uint)Application.GetRealWidth(12),
            };
            dialog.AddChidren(frame);
            Button btnTipIcon = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(15),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = isWhite ? "Public/MsgIcon/TipIconBlack.png" : "Public/MsgIcon/TipIconWhite.png",
            };
            frame.AddChidren(btnTipIcon);
            Button btnTipMsg = new Button()
            {
                Y = Application.GetRealHeight(47),
                Height = Application.GetRealHeight(50),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = isWhite ? CSS_Color.FirstLevelTitleColor : CSS_Color.MainBackgroundColor,
                Text = msg,
            };
            frame.AddChidren(btnTipMsg);
            dialog.Show();
            new Thread(() => {
                Thread.Sleep(1500);
                Application.RunOnMainThread(() =>
                {
                    dialog.Close();
                });
            }) { IsBackground = true }.Start();
        }
        /// <summary>
        /// 加载提示弹窗
@@ -643,6 +438,26 @@
        }
        /// <summary>
        /// 加载等待界面
        /// </summary>
        public void LoadPage_WaitPage(Thread thread, FrameLayout bodyView, Loading waitPage)
        {
            bodyView.AddChidren(waitPage);
            waitPage.Start(Language.StringByID(StringId.PleaseWait));
            var showedTime = DateTime.Now;
            //如果等待事件过长,可以允许用户取消当前操作
            waitPage.MouseUpEventHandler += (sender, e) =>
            {
                if (showedTime.AddSeconds(30) > DateTime.Now)
                {
                    thread.Abort();
                    waitPage.RemoveFromParent();
                }
            };
            thread.Start();
        }
    }
}