wxr
2020-09-11 8df24b0a3dfd5b6f39c5393ef24eab25b70ab858
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -8,12 +9,67 @@
{
    public partial class PublicAssmebly
    {
        void EditParaterEvent(Button btnConfirm, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List<string> list, EditText editText, Action<string> callBackAction,
            FrameLayout contentView, Button btnLine, Button btnCancel, FrameLayout editView, Dialog dialog, int titleId)
        {
            var btnTip = new Button()
            {
                X = editView.X,
                Y = editView.Bottom,
                Width = Application.GetRealWidth(182),
                Height = Application.GetRealHeight(30),
                TextColor = CSS_Color.WarningColor,
                TextSize = CSS_FontSize.TextFontSize,
                IsMoreLines = true,
                TextAlignment = TextAlignment.CenterLeft,
            };
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                //btnConfirm.IsSelected = false;
                if (string.IsNullOrEmpty(editText.Text.Trim()) || list.Contains(editText.Text.Trim()))
                {
                    if (titleId == StringId.ModifyMemberNickname)
                    {
                        return;
                    }
                    string tipMsgString = "";
                    if (string.IsNullOrEmpty(editText.Text.Trim()))
                    {
                        tipMsgString = Language.StringByID(errorId_IsNullOrEmpty);
                    }
                    else
                    {
                        tipMsgString = Language.StringByID(errorId_ContainsPar);
                    }
                    contentView.Height = Application.GetRealHeight(183);
                    btnLine.Y = Application.GetRealHeight(139);
                    btnCancel.Y = btnLine.Bottom;
                    btnConfirm.Y = btnLine.Bottom;
                    btnTip.Text = tipMsgString;
                    contentView.AddChidren(btnTip);
                    return;
                }
                callBackAction(editText.Text.Trim());
                dialog.Close();
            };
        }
        /// <summary>
        /// 加载修改参数的小弹窗
        /// 保存按钮事件需要将
        /// </summary>
        /// <param name="callBackAction">回调函数</param>
        public void LoadDialog_EditParater(int titleId, string editParater, Action<string> callBackAction)
        public void LoadDialog_EditParater(int titleId, string editParater, Action<string> callBackAction, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List<string> baseList, bool encryption = false)
        {
            Dialog dialog = new Dialog()
            {
@@ -62,121 +118,89 @@
                X = Application.GetRealWidth(12),
                Width = Application.GetRealWidth(182),
                Text = editParater,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                SecureTextEntry = encryption,
                //TextAlignment = TextAlignment.CenterLeft ,
            };
            editView.AddChidren(etParater);
            etParater.TextChangeEventHandler = (sender, e) =>
            {
                if (etParater.Text.Length > 20)
                {
                    etParater.Text = etParater.Text.Remove(20);
#if __ANDROID__
                    etParater.SetSelectionEnd();
#endif
                }
            };
            Button btnLine = new Button()
            {
                Y = Application.GetRealHeight(128),
                Y = Application.GetRealHeight(129),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS.CSS_Color.DividingLineColor,
                BackgroundColor = CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnLine);
            Button btnCancel = new Button()
            {
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(134),
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                //SelectedTextColor = CSS_Color.MainBackgroundColor,
                //SelectedBackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Cancel,
            };
            contentView.AddChidren(btnCancel);
            Button btnBottomLine = new Button()
            {
                X = btnCancel.Right,
                Y = btnLine.Bottom,
                Height = Application.GetRealHeight(43),
                Width = Application.GetRealWidth(1),
                BackgroundColor = CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnBottomLine);
            //Button btnBottomLine = new Button()
            //{
            //    X = btnCancel.Right,
            //    Y = btnLine.Bottom,
            //    Height = Application.GetRealHeight(43),
            //    Width = Application.GetRealWidth(1),
            //    BackgroundColor = CSS_Color.DividingLineColor,
            //};
            //contentView.AddChidren(btnBottomLine);
            Button btnConfirm = new Button()
            {
                X = btnBottomLine.Right,
                Y = btnLine.Bottom,
                X = btnCancel.Right,
                Y = btnLine.Y,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(43),
                Height = Application.GetRealHeight(43 + 1),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.TextualColor,
                //TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                TextColor = CSS_Color.MainBackgroundColor,
                BackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Confirm,
            };
            contentView.AddChidren(btnConfirm);
            int mRectCornerID = HDLUtils.RectCornerBottomRight;
            btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
            dialog.Show();
            btnCancel.MouseDownEventHandler += (sender, e) => {
                btnCancel.IsSelected = true;
            };
            btnCancel.MouseUpEventHandler += (sender, e) => {
                btnCancel.IsSelected = false;
                dialog.Close();
            };
            btnConfirm.MouseDownEventHandler += (sender, e) => {
                btnConfirm.IsSelected = true;
            };
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            //btnCancel.MouseDownEventHandler += (sender, e) => {
            //    btnCancel.IsSelected = true;
            //};
            btnCancel.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);
                        btnLine.Y = Application.GetRealHeight(139);
                        btnBottomLine.Y = btnLine.Bottom;
                        btnCancel.Y = btnLine.Bottom;
                        btnConfirm.Y = btnLine.Bottom;
                        var btnTip = new Button()
                        {
                            X = editView.X,
                            Y = editView.Bottom,
                            Width = Application.GetRealWidth(182),
                            Height = Application.GetRealHeight(30),
                            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 || titleId == StringId.ResidenceName  || titleId == StringId.UesrName)
                {
                    if(editParater != etParater.Text.Trim())
                    {
                        callBackAction(etParater.Text.Trim());
                    }
                }
                //btnCancel.IsSelected = false;
                dialog.Close();
            };
            //btnConfirm.MouseDownEventHandler += (sender, e) => {
            //    btnConfirm.IsSelected = true;
            //};
            EditParaterEvent(btnConfirm, errorId_IsNullOrEmpty, errorId_ContainsPar, baseList, etParater, callBackAction,
                contentView, btnLine, btnCancel, editView, dialog, titleId);
        }
        /// <summary>
@@ -233,6 +257,7 @@
            {
                Y = Application.GetRealHeight(96),
                Height = Application.GetRealHeight(1),
                Width = Application.GetRealWidth(270 / 2),
                BackgroundColor = CSS.CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnLine);
@@ -240,60 +265,52 @@
            Button btnCancel = new Button()
            {
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(134),
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Cancel,
            };
            contentView.AddChidren(btnCancel);
            Button btnBottomLine = new Button()
            {
                X = btnCancel.Right,
                Y = btnLine.Bottom,
                Height = Application.GetRealHeight(43),
                Width = Application.GetRealWidth(1),
                BackgroundColor = CSS_Color.DividingLineColor,
            };
            contentView.AddChidren(btnBottomLine);
            Button btnConfirm = new Button()
            {
                X = btnBottomLine.Right,
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                //SelectedTextColor = CSS_Color.MainBackgroundColor,
                //SelectedBackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Cancel,
            };
            contentView.AddChidren(btnCancel);
            Button btnConfirm = new Button()
            {
                X = btnCancel.Right,
                Y = btnLine.Y,
                Width = Application.GetRealWidth(135),
                Height = Application.GetRealHeight(45),
                TextAlignment = TextAlignment.Center,
                //TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.MainBackgroundColor,
                BackgroundColor = CSS_Color.MainColor,
                TextID = StringId.Confirm,
            };
            contentView.AddChidren(btnConfirm);
            //例:右下圆角 大小为50
            int mRectCornerID = HDLUtils.RectCornerBottomRight;
            btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID);
            dialog.Show();
            btnCancel.MouseDownEventHandler += (sender, e) =>
            {
                btnCancel.IsSelected = true;
            };
            //btnCancel.MouseDownEventHandler += (sender, e) =>
            //{
            //    btnCancel.IsSelected = true;
            //};
            btnCancel.MouseUpEventHandler += (sender, e) =>
            {
                btnCancel.IsSelected = false;
                //btnCancel.IsSelected = false;
                dialog.Close();
            };
            btnConfirm.MouseDownEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = true;
            };
            //btnConfirm.MouseDownEventHandler += (sender, e) =>
            //{
            //    btnConfirm.IsSelected = true;
            //};
            btnConfirm.MouseUpEventHandler += (sender, e) =>
            {
                btnConfirm.IsSelected = false;
                //btnConfirm.IsSelected = false;
                callBackAction();
                dialog.Close();
            };
@@ -305,22 +322,33 @@
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="isWhite"></param>
        public void TipMsgAutoClose(string msg,bool isWhite)
        public void TipMsgAutoClose(string msg, bool isWhite, int closeTime = 1500)
        {
            Dialog dialog = new Dialog()
            Dialog dialog = new Dialog();
            FrameLayout dialogBody = new FrameLayout();
            dialog.AddChidren(dialogBody);
            dialogBody.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
            };
            FrameLayout frame = new FrameLayout()
            {
                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);
            frame.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                dialog = null;
            };
            Button btnTipIcon = new Button()
            {
@@ -345,13 +373,18 @@
            dialog.Show();
            new Thread(() => {
                Thread.Sleep(1500);
            new Thread(() =>
            {
                Thread.Sleep(closeTime);
                Application.RunOnMainThread(() =>
                {
                    dialog.Close();
                    if(dialog!=null)
                    {
                        dialog.Close();
                    }
                });
            }) { IsBackground = true }.Start();
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
@@ -458,6 +491,285 @@
            thread.Start();
        }
        /// <summary>
        /// 加载显示等待窗口
        /// </summary>
        /// <param name="msg"></param>
        /// <returns>返回关闭窗口Action</returns>
        public Action TipLoadingMsgDialog(string msg)
        {
            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 = 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 = "Public/MsgIcon/LoadingIcon.png",
            };
            frame.AddChidren(btnTipIcon);
            Button btnTipMsg = new Button()
            {
                Y = Application.GetRealHeight(47),
                Height = Application.GetRealHeight(50),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor = CSS_Color.MainBackgroundColor,
                Text = msg,
            };
            frame.AddChidren(btnTipMsg);
            dialog.Show();
            return new Action(() =>
            {
                dialog.Close();
            });
        }
        /// <summary>
        /// 场景延时设置弹窗
        /// </summary>
        /// <param name="function"></param>
        public void SetSceneDelayDialog(Function function,Button btn)
        {
            Button lastButton = new Button();
            int changeDelay = 0;
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(439),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(208),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(50),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            var btnTitle = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                TextAlignment = TextAlignment.Center,
                Width = Application.GetRealWidth(100),
                TextID = StringId.SceneDelay,
                IsBold = true,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
            };
            topView.AddChidren(btnTitle);
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                Width = Application.GetRealWidth(320),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Complete,
            };
            topView.AddChidren(btnConfrim);
            Button btn1 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "30s",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(80),
                IsSelected = function.delayText == "30s"
            };
            optionBaseView.AddChidren(btn1);
            Button btn2 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "1min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(195),
                Y = Application.GetRealHeight(80),
                IsSelected = function.delayText == "1min"
            };
            optionBaseView.AddChidren(btn2);
            Button btn3 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "2min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(20),
                Y = Application.GetRealHeight(140),
                IsSelected = function.delayText == "2min"
            };
            optionBaseView.AddChidren(btn3);
            Button btn4 = new Button()
            {
                Width = Application.GetRealWidth(128),
                Height = Application.GetRealWidth(44),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "5min",
                BorderColor = CSS_Color.PromptingColor1,
                BorderWidth = 1,
                Radius = (uint)Application.GetRealWidth(8),
                SelectedTextColor = CSS_Color.MainBackgroundColor,
                SelectedBackgroundColor = CSS_Color.MainColor,
                X = Application.GetRealWidth(195),
                Y = Application.GetRealHeight(140),
                IsSelected = function.delayText == "5min"
            };
            optionBaseView.AddChidren(btn4);
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                function.delay = changeDelay;
                btn.Text = function.delayText;
            };
            btn1.MouseUpEventHandler = (sender, e) => {
                btn1.IsSelected = !btn1.IsSelected;
                btn2.IsSelected = false;
                btn3.IsSelected = false;
                btn4.IsSelected = false;
                if(btn1.IsSelected)
                {
                    changeDelay = 30;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn2.MouseUpEventHandler = (sender, e) => {
                btn2.IsSelected = !btn2.IsSelected;
                btn1.IsSelected = false;
                btn3.IsSelected = false;
                btn4.IsSelected = false;
                if (btn2.IsSelected)
                {
                    changeDelay = 60;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn3.MouseUpEventHandler = (sender, e) => {
                btn3.IsSelected = !btn3.IsSelected;
                btn2.IsSelected = false;
                btn1.IsSelected = false;
                btn4.IsSelected = false;
                if (btn3.IsSelected)
                {
                    changeDelay = 120;
                }
                else
                {
                    changeDelay = 0;
                }
            };
            btn4.MouseUpEventHandler = (sender, e) => {
                btn4.IsSelected = !btn4.IsSelected;
                btn2.IsSelected = false;
                btn3.IsSelected = false;
                btn1.IsSelected = false;
                if (btn4.IsSelected)
                {
                    changeDelay = 300;
                }
                else
                {
                    changeDelay = 0;
                }
            };
        }
    }
}
}