From 358044c907e0e492b26377b21ca5091d19b503c8 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 30 十一月 2021 09:58:59 +0800
Subject: [PATCH] 合并wjc

---
 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs |  463 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 410 insertions(+), 53 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs
index 5647415..583048b 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddOutputPage.cs
@@ -7,28 +7,29 @@
 
 namespace HDL_ON.UI
 {
-    public class AddOutputPage : FrameLayout
-    {
-        FrameLayout bodyView;
+  public class AddOutputPage : FrameLayout
+  {
+    FrameLayout bodyView;
 
-        FrameLayout showdFunctionTypeRow;
+    FrameLayout showdFunctionTypeRow;
 
-        /// <summary>
-        /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
-        /// </summary>
-        Button btnFloorDownIcon;
-        /// <summary>
-        /// 妤煎眰鏄剧ず
-        /// </summary>
-        Button btnFloor;
+    /// <summary>
+    /// 妤煎眰閫夋嫨涓嬫媺鍥炬爣
+    /// </summary>
+    Button btnFloorDownIcon;
+    /// <summary>
+    /// 妤煎眰鏄剧ず
+    /// </summary>
+    Button btnFloor;
 
-        /// <summary>
-        /// 绛涢�夋枃鏈樉绀�
-        /// </summary>
-        Button btnScreenText;
+    /// <summary>
+    /// 绛涢�夋枃鏈樉绀�
+    /// </summary>
+    Button btnScreenText;
 
-        VerticalScrolViewLayout functionListView;
+    VerticalScrolViewLayout functionListView;
 
+<<<<<<< HEAD
         Action<SecurityAlarm> refreshAction;
         /// <summary>
         /// 鏈湴鍔熻兘杞崲鐨勮緭鍑哄垪琛紙鐏厜銆佸満鏅級
@@ -43,13 +44,83 @@
             refreshAction = action;
             alarm = inOutput;
         }
+=======
+    SecurityAlarm securityAlarm;
+    Action<SecurityAlarm> refreshAction;
+    List<SecurityOutput> outputList = new List<SecurityOutput>();
+
+    List<Function> allocatedList = new List<Function>();
+
+    public AddOutputPage(SecurityAlarm function, Action<SecurityAlarm> action)
+    {
+      bodyView = this;
+      securityAlarm = function;
+      refreshAction = action;
+    }
+>>>>>>> WJC
 
 
-        /// <summary>
-        /// 鍔犺浇鐣岄潰
-        /// </summary>
-        public void LoadPage()
+    /// <summary>
+    /// 鍔犺浇鐣岄潰
+    /// </summary>
+    public void LoadPage()
+    {
+      bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+      new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView();
+
+      #region 鏄剧ず鐨勫姛鑳界被鍨嬪垏鎹㈠尯鍩�
+      showdFunctionTypeRow = new FrameLayout()
+      {
+        Y = Application.GetRealHeight(64),
+        Height = Application.GetRealHeight(62),
+        BackgroundColor = CSS_Color.MainBackgroundColor,
+      };
+      bodyView.AddChidren(showdFunctionTypeRow);
+
+
+      btnFloorDownIcon = new Button()
+      {
+        Width = Application.GetMinRealAverage(16),
+        Height = Application.GetMinRealAverage(16),
+        X = Application.GetRealWidth(16),
+        Y = Application.GetRealHeight(18),
+        UnSelectedImagePath = "Public/DownIcon.png",
+      };
+      showdFunctionTypeRow.AddChidren(btnFloorDownIcon);
+
+      btnFloor = new Button()
+      {
+        X = btnFloorDownIcon.Right,
+        Y = Application.GetRealHeight(18),
+        Width = Application.GetRealWidth(200),
+        Height = Application.GetMinRealAverage(16),
+        TextColor = CSS_Color.FirstLevelTitleColor,
+        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+        TextAlignment = TextAlignment.CenterLeft,
+        Text = DB_ResidenceData.Instance.CurFloor.roomName,
+      };
+      showdFunctionTypeRow.AddChidren(btnFloor);
+
+      #endregion
+
+      functionListView = new VerticalScrolViewLayout()
+      {
+        Y = showdFunctionTypeRow.Bottom,
+        Height = Application.GetRealHeight(530 - 100),
+        BackgroundColor = CSS_Color.BackgroundColor,
+      };
+      bodyView.AddChidren(functionListView);
+
+
+
+
+
+
+      foreach (var function in FunctionList.List.Functions)
+      {
+        if (!MainPage.SceneSupportFunctionList.Contains(function.spk))
         {
+<<<<<<< HEAD
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
             new TopViewDiv(bodyView, Language.StringByID(StringId.AddFunction)).LoadTopView();
 
@@ -130,9 +201,70 @@
                 this.RemoveFromParent();
                 refreshAction?.Invoke(alarm);
             };
+=======
+          continue;
+        }
+        if (function == null)
+        {
+          continue;
+        }
+        function.roomIds.Remove(null);
+        allocatedList.Add(function);
+      }
+
+      LoadFunctionListRow(null);
+
+
+
+
+
+
+
+      var bottomView = new FrameLayout()
+      {
+        Y = Application.GetRealHeight(591),
+        Height = Application.GetRealHeight(100),
+        BackgroundColor = CSS_Color.MainBackgroundColor,
+        Radius = (uint)Application.GetRealWidth(22),
+      };
+      this.AddChidren(bottomView);
+
+      var btnConfrim = new Button()
+      {
+        X = Application.GetRealWidth(78),
+        Y = Application.GetRealHeight(12),
+        Width = Application.GetRealWidth(220),
+        Height = Application.GetRealWidth(44),
+        Radius = (uint)Application.GetRealWidth(22),
+        BackgroundColor = CSS_Color.MainColor,
+        TextID = StringId.Confirm,
+        TextSize = CSS_FontSize.SubheadingFontSize,
+        TextColor = CSS_Color.MainBackgroundColor,
+        TextAlignment = TextAlignment.Center,
+      };
+      bottomView.AddChidren(btnConfrim);
+      btnConfrim.MouseUpEventHandler = (sender, e) =>
+      {
+        securityAlarm.output = new List<SecurityOutput>();
+        foreach (var output in outputList)
+        {
+          if (output.addCondition)
+          {
+            securityAlarm.output.Add(output);
+          }
+        }
+        this.RemoveFromParent();
+        refreshAction?.Invoke(securityAlarm);
+      };
+
+
+
+
+>>>>>>> WJC
 
         }
 
+<<<<<<< HEAD
         /// <summary>
         /// 閰嶇疆鏁版嵁
         /// </summary>
@@ -164,6 +296,9 @@
                     RoomName = function.GetRoomListName(),
                 });
             }
+=======
+    }
+>>>>>>> WJC
 
 
             foreach (var scene in FunctionList.List.scenes)
@@ -192,10 +327,72 @@
                 });
             }
 
+    // <summary>
+    /// 鏄剧ず鍔熻兘Row
+    /// </summary>
+    void LoadFunctionListRow(List<Function> functions)
+    {
+      functionListView.RemoveAll();
+      if (functions == null)
+      {
+        functions = allocatedList;
+      }
+      foreach (var function in functions)
+      {
+        var output = securityAlarm.output.Find((obj) => obj.sid == function.sid);
+        if (output == null)
+        {
+          output = new SecurityOutput();
+          output.sid = function.sid;
         }
+        else
+        {
+          output.addCondition = true;
+        }
+        outputList.Add(output);
 
+        FrameLayout functionRow = new FrameLayout()
+        {
+          Height = Application.GetRealHeight(65),
+          BackgroundColor = CSS_Color.MainBackgroundColor,
+        };
+        functionListView.AddChidren(functionRow);
 
+        var btnFunctionName = new Button()
+        {
+          X = Application.GetRealWidth(16),
+          Width = Application.GetRealWidth(200),
+          Height = Application.GetRealHeight(44),
+          Text = function.name,
+          TextAlignment = TextAlignment.CenterLeft,
+          TextColor = CSS_Color.FirstLevelTitleColor,
+          TextSize = CSS_FontSize.TextFontSize,
+        };
+        functionRow.AddChidren(btnFunctionName);
 
+        var btnFunctionFloorName = new Button()
+        {
+          X = Application.GetRealWidth(16),
+          Y = Application.GetRealHeight(24),
+          Width = Application.GetRealWidth(200),
+          Height = Application.GetRealHeight(41),
+          Text = function.GetRoomListName(),
+          TextAlignment = TextAlignment.CenterLeft,
+          TextColor = CSS_Color.PromptingColor1,
+          TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+        };
+        functionRow.AddChidren(btnFunctionFloorName);
+
+        Button btnState = new Button()
+        {
+          Width = Application.GetRealWidth(317),
+          TextAlignment = TextAlignment.CenterRight,
+          TextSize = CSS_FontSize.TextFontSize,
+          TextColor = CSS_Color.PromptingColor1,
+        };
+        functionRow.AddChidren(btnState);
+
+<<<<<<< HEAD
         // <summary>
         /// 鏄剧ず鍔熻兘Row
         /// </summary>
@@ -313,30 +510,63 @@
                     Height = Application.GetRealWidth(1),
                     BackgroundColor = CSS_Color.DividingLineColor,
                 });
+=======
 
+        Button btnChooseIcon = new Button()
+        {
+          X = Application.GetRealWidth(333),
+          Gravity = Gravity.CenterVertical,
+          Width = Application.GetMinRealAverage(32),
+          Height = Application.GetMinRealAverage(32),
+          UnSelectedImagePath = "Public/ChooseIcon.png",
+          SelectedImagePath = "Public/ChooseOnIcon.png",
+        };
+        functionRow.AddChidren(btnChooseIcon);
 
+        btnChooseIcon.MouseUpEventHandler = (sender, e) =>
+        {
+          btnChooseIcon.IsSelected = !btnChooseIcon.IsSelected;
+          if (btnChooseIcon.IsSelected)
+          {
+            output.addCondition = true;
+            if (output.status.Count == 0)
+            {
+              ShowStateDialog(output, btnState, btnChooseIcon);
             }
+          }
+          else
+          {
+            output.addCondition = false;
+          }
+        };
+        btnState.MouseUpEventHandler = (sender, e) =>
+        {
+          ShowStateDialog(output, btnState, btnChooseIcon);
+        };
+>>>>>>> WJC
+
+
+        if (output.addCondition)
+        {
+          btnChooseIcon.IsSelected = true;
+          btnState.Text = output.StateText();
         }
 
 
+<<<<<<< HEAD
         private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null)
+=======
+        functionListView.AddChidren(new Button()
+>>>>>>> WJC
         {
-            Dialog dialog = new Dialog();
+          Gravity = Gravity.CenterHorizontal,
+          Width = Application.GetRealWidth(343),
+          Height = Application.GetRealWidth(1),
+          BackgroundColor = CSS_Color.DividingLineColor,
+        });
 
-            FrameLayout contentView = new FrameLayout();
-            dialog.AddChidren(contentView);
-            contentView.MouseUpEventHandler = (sender, e) =>
-            {
-                dialog.Close();
-                if (output.status.Count == 0)
-                {
-                    if (btnChoose != null)
-                    {
-                        btnChoose.IsSelected = false;
-                    }
-                }
-            };
 
+<<<<<<< HEAD
             VerticalScrolViewLayout optinView = new VerticalScrolViewLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
@@ -379,27 +609,89 @@
                 btnOpen.IsSelected =  output.status[0].value.ToLower() == "on";
                 btnClose.IsSelected = !btnOpen.IsSelected;
             }
+=======
+      }
+    }
+
+>>>>>>> WJC
 
 
-            Button btnCancel = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = optinView.Bottom + Application.GetRealHeight(8),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(44),
-                Radius = (uint)Application.GetRealHeight(13),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                TextID = StringId.Cancel,
-                TextColor = CSS_Color.WarningColor,
-                IsBold = true,
-            };
-            contentView.AddChidren(btnCancel);
+    private void ShowStateDialog(SecurityOutput output, Button btnState, Button btnChoose = null)
+    {
+      Dialog dialog = new Dialog();
 
-            dialog.Show();
+      FrameLayout contentView = new FrameLayout();
+      dialog.AddChidren(contentView);
+      contentView.MouseUpEventHandler = (sender, e) =>
+      {
+        dialog.Close();
+        if (output.status.Count == 0)
+        {
+          if (btnChoose != null)
+          {
+            btnChoose.IsSelected = false;
+          }
+        }
+      };
 
-            btnOpen.MouseUpEventHandler = (sender, e) => {
-                btnState.Text = btnOpen.Text;
-                output.status = new List<SecurityOutputStatus>()
+      VerticalScrolViewLayout optinView = new VerticalScrolViewLayout()
+      {
+        Gravity = Gravity.CenterHorizontal,
+        Y = Application.GetRealHeight(515),
+        Width = Application.GetRealWidth(343),
+        Height = Application.GetRealHeight(88),
+        Radius = (uint)Application.GetRealHeight(13),
+        BackgroundColor = CSS_Color.MainBackgroundColor,
+      };
+      contentView.AddChidren(optinView);
+
+      Button btnOpen = new Button()
+      {
+        Height = Application.GetRealHeight(44),
+        TextAlignment = TextAlignment.Center,
+        TextColor = CSS_Color.MainColor,
+        TextSize = CSS_FontSize.SubheadingFontSize,
+        TextID = StringId.On
+      };
+      optinView.AddChidren(btnOpen);
+
+      optinView.AddChidren(new Button()
+      {
+        Height = 1,
+        BackgroundColor = CSS_Color.DividingLineColor
+      });
+
+      Button btnClose = new Button()
+      {
+        Height = Application.GetRealHeight(44),
+        TextAlignment = TextAlignment.Center,
+        TextColor = CSS_Color.PromptingColor1,
+        TextID = StringId.OFF,
+        TextSize = CSS_FontSize.SubheadingFontSize,
+      };
+      optinView.AddChidren(btnClose);
+
+
+      Button btnCancel = new Button()
+      {
+        Gravity = Gravity.CenterHorizontal,
+        Y = optinView.Bottom + Application.GetRealHeight(8),
+        Width = Application.GetRealWidth(343),
+        Height = Application.GetRealHeight(44),
+        Radius = (uint)Application.GetRealHeight(13),
+        BackgroundColor = CSS_Color.MainBackgroundColor,
+        TextID = StringId.Cancel,
+        TextColor = CSS_Color.WarningColor,
+        IsBold = true,
+      };
+      contentView.AddChidren(btnCancel);
+
+      dialog.Show();
+
+      btnOpen.MouseUpEventHandler = (sender, e) =>
+      {
+        btnState.Text = btnOpen.Text;
+        output.status = new List<SecurityOutputStatus>()
                 {
                     new SecurityOutputStatus()
                     {
@@ -407,6 +699,7 @@
                         value = "on",
                     }
                 };
+<<<<<<< HEAD
                 var localInput = alarm.output.Find((obj) =>
                    obj.sid == output.sid
                 );
@@ -422,11 +715,27 @@
                 btnState.Text = btnClose.Text;
                 output.status = new List<SecurityOutputStatus>()
                 {
+=======
+        output.addCondition = true;
+        if (btnChoose != null)
+        {
+          btnChoose.IsSelected = true;
+        }
+        dialog.Close();
+      };
+
+      btnClose.MouseUpEventHandler = (sender, e) =>
+      {
+        btnState.Text = btnClose.Text;
+        output.status = new List<SecurityOutputStatus>()
+          {
+>>>>>>> WJC
                     new SecurityOutputStatus()
                     {
                         key = FunctionAttributeKey.OnOff,
                         value = "off",
                     }
+<<<<<<< HEAD
                 };
                 var localInput = alarm.output.Find((obj) =>
                  obj.sid == output.sid
@@ -451,11 +760,33 @@
 
             };
 
+=======
+          };
+        output.addCondition = true;
+        if (btnChoose != null)
+        {
+          btnChoose.IsSelected = true;
+>>>>>>> WJC
+        }
+        dialog.Close();
+      };
+
+      btnCancel.MouseUpEventHandler = (sender, e) =>
+      {
+        dialog.Close();
+        if (output.status.Count == 0)
+        {
+          if (btnChoose != null)
+          {
+            btnChoose.IsSelected = false;
+          }
         }
 
+      };
 
+    }
 
-
+<<<<<<< HEAD
         /// <summary>
         /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢
         /// </summary>
@@ -477,7 +808,33 @@
                 }, nowSelectId);
             };
         }
+=======
+
+>>>>>>> WJC
 
 
+    /// <summary>
+    /// 浣忓畢鍒楄〃鐐瑰嚮浜嬩欢
+    /// </summary>
+    void LoadDialog_ChangeFloor()
+    {
+      string nowSelectId = null;
+      btnFloor.MouseUpEventHandler += (sender, e) =>
+      {
+        var listAllFun = new List<Function>();
+        listAllFun.AddRange(allocatedList);
+
+              //鏄剧ず涓嬫媺鐣岄潰
+              var form = new FloorRoomSelectPopupView();
+        form.ShowDeviceFunctionView(btnFloor, listAllFun, (selectId, listFun) =>
+              {
+            nowSelectId = selectId;
+                  //閲嶆柊鍒锋柊璁惧鍒楄〃
+                  this.LoadFunctionListRow(listFun);
+          }, nowSelectId);
+      };
     }
+
+
+  }
 }

--
Gitblit v1.8.0