From 01c46e7bfe9aa8fb20b29f70c83c03a307af548a Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 22 十二月 2020 16:35:16 +0800
Subject: [PATCH] 2020-12-22 1.更新。

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs |  295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 293 insertions(+), 2 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
old mode 100644
new mode 100755
index 680d108..2d7fbb3
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
@@ -1,8 +1,9 @@
 锘縰sing System;
+using System.Collections.Generic;
 using Shared;
 namespace HDL_ON.UI.UI2.Intelligence.Automation
 {
-    public class AddTarget:FrameLayout
+    public class AddTarget : FrameLayout
     {
         public AddTarget()
         {
@@ -33,18 +34,308 @@
             functionView.btnText.TextID = StringId.funLogic;
             functionView.btnIcon.UnSelectedImagePath = "LogicIcon/functionicon.png";
             viewLayout.AddChidren(functionView.FLayoutView());
+
+            //鍦烘櫙
+            LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
+            sceneView.frameLayout.Y = functionView.frameLayout.Bottom;
+            sceneView.btnText.TextID = StringId.Scenes;
+            sceneView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
+            viewLayout.AddChidren(sceneView.FLayoutView());
+
+            //寤舵椂
+            LogicView.SelectTypeView delayView = new LogicView.SelectTypeView();
+            delayView.frameLayout.Y = sceneView.frameLayout.Bottom;
+            delayView.btnText.TextID = StringId.delayLogic;
+            delayView.btnIcon.UnSelectedImagePath = "LogicIcon/delayed.png";
+            //viewLayout.AddChidren(delayView.FLayoutView());
             #endregion
 
             #region  鎵�鏈夌偣鍑讳簨浠�
-            functionView.btnClick.MouseUpEventHandler += (sen, e) => {
+            //鍔熻兘鐐瑰嚮浜嬩欢
+            functionView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
                 FunTpye funTpye = new FunTpye();
                 MainPage.BasePageView.AddChidren(funTpye);
                 funTpye.Show(LogicMethod.target_if);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
 
             };
+            //鍦烘櫙鐐瑰嚮浜嬩欢
+            sceneView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+
+                FrameLayout fLayout = new FrameLayout
+                {
+                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                };
+                this.AddChidren(fLayout);
+                SceneMethod(fLayout);
+            };
+            //寤舵椂鐐瑰嚮浜嬩欢
+            delayView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+
+                FrameLayout fLayout = new FrameLayout
+                {
+                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+                };
+                this.AddChidren(fLayout);
+                Delayed(fLayout,false,1000);
+            };
             #endregion
 
         }
+
+        /// <summary>
+        /// 娣诲姞鍦烘櫙
+        /// </summary>
+        /// <param name="fLayout">寮规涓绘帶浠�</param>
+        public void SceneMethod(FrameLayout fLayout)
+        {
+            int line = 0;
+            var sceneList = LogicMethod.GetSceneList();
+            if (sceneList.Count == 0|| sceneList.Count>5)
+            {
+                line = 5;
+            }
+            else {
+                line = sceneList.Count;
+            }
+            LogicView.DateView view = new LogicView.DateView();
+            view.btnTitle.TextID = StringId.addSceneLogic;
+            view.FLayoutView(fLayout, line);
+
+            view.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                fLayout.RemoveFromParent();
+            };
+            FrameLayout frameL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(56),
+                Height = Application.GetRealHeight(50 * line),
+            };
+
+            VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout
+            {
+                Y = Application.GetRealHeight(56),
+                Height = Application.GetRealHeight(50 * 5),
+
+            };
+            verticalRefresh.BeginHeaderRefreshingAction += () =>
+            {
+                //鍏抽棴鍒锋柊View锛�
+                verticalRefresh.EndHeaderRefreshing();
+            };
+
+            if (sceneList.Count == 0)
+            {
+                Button btnTipNot = new Button
+                {
+                    X=Application.GetRealWidth(93),
+                    Y = Application.GetRealHeight(80),
+                    Width = Application.GetRealWidth(158),
+                    Height = Application.GetRealWidth(158),
+                    UnSelectedImagePath = "TipNot.png",
+                    
+                };
+                view.frameLayout.AddChidren(btnTipNot);
+
+                Button btnTipNotText = new Button()
+                {
+                    Y = btnTipNot.Bottom+ Application.GetRealHeight(16),
+                    Height = Application.GetRealHeight(20),
+                    TextID = StringId.secnenull,
+                    TextColor = CSS.CSS_Color.textColor,
+                    TextSize =LogicView.TextSize.text14,
+                    TextAlignment = TextAlignment.Center,
+                };
+                view.frameLayout.AddChidren(btnTipNotText);
+            }
+            else if (sceneList.Count <=5 ) {
+                view.frameLayout.AddChidren(frameL);
+            }
+            else if(sceneList.Count>5) {
+                view.frameLayout.AddChidren(verticalRefresh);
+
+            }
+
+
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鐘舵��
+            Button buttonClick = new Button();
+            HDL_ON.Entity.Scene sceneSelecetd = null;
+            verticalRefresh.BeginHeaderRefreshingAction += () =>
+            {
+                //鍏抽棴鍒锋柊View锛�
+                verticalRefresh.EndHeaderRefreshing();
+            };
+
+            for (int i = 0; i < sceneList.Count; i++)
+            {
+                var scene = sceneList[i];
+                LogicView.CheckView sceneView = new LogicView.CheckView();
+                sceneView.btnText.Text = scene.name;
+                sceneView.btnText.TextSize = LogicView.TextSize.text14;
+                if (sceneList.Count <= 5)
+                {
+                    sceneView.frameLayout.Y = Application.GetRealWidth(i*50);
+                    frameL.AddChidren(sceneView.FLayoutView());
+                    if (sceneList.Count-1==i) {
+                        sceneView.btnLine.BackgroundColor = CSS.CSS_Color.view;
+                    }
+                }
+                else
+                {
+                    verticalRefresh.AddChidren(sceneView.FLayoutView());
+                }
+                sceneView.btnClick.Tag = scene;//鏍囪绱㈠紩
+                //鍦烘櫙鐨勭偣鍑讳簨浠�
+                sceneView.btnClick.MouseUpEventHandler += (sender, e) =>
+                {
+                    buttonClick.IsSelected = false;
+                    sceneView.btnCheckIcon.IsSelected = true;
+                    buttonClick = sceneView.btnCheckIcon;
+                    sceneSelecetd = sceneView.btnClick.Tag as HDL_ON.Entity.Scene;
+                };
+
+            }
+            //纭鐐瑰嚮浜嬩欢
+            view.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+
+                if (sceneSelecetd == null)
+                {
+                    //鎻愮ず锛氳繕娌¢�変腑鎵ц鍛ㄦ湡
+                    return;
+                }
+                Output outputDevice = new Output();
+                outputDevice.target_type = "2";
+                outputDevice.sid = sceneSelecetd.sid;
+                //娌″暐浣滅敤锛屼负浜嗗彂閫佹暟鎹牸寮忕粺涓�;
+                outputDevice.status = new List<Dictionary<string, string>> { new Dictionary<string, string> { { "key", "scene"},{ "value", "0" } } };
+                AddOutput(outputDevice);
+                fLayout.RemoveFromParent();
+                LogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
+        }
+
+        /// <summary>
+        /// 寤舵椂鏃堕棿鏂规硶
+        /// </summary>
+        /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param>
+        /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param>
+        /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param>
+        public void Delayed(FrameLayout fLayout, bool edit, int index)
+        {
+            LogicView.TimeView timePointView = new LogicView.TimeView();
+            timePointView.FLayoutView(fLayout);
+            EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) =>
+            {
+                //绉婚櫎fLayout鐣岄潰
+                fLayout.RemoveFromParent();
+            };
+            //鍙栨秷鐐瑰嚮浜嬩欢
+            timePointView.btnCancel.MouseUpEventHandler += RemovefLayout;
+
+            //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩)
+            timePointView.mUIPickerView.setNPicker(timePointView.GethStringList0(), timePointView.GetmStringList(), null);
+            //榛樿鍒濆閫変腑鐘舵��
+            timePointView.mUIPickerView.setCurrentItems(0, 5, 0);
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿
+            string timepoint = "00:05";
+
+            if (edit)
+            {
+                Output output = Logic.currlogic.output[index];
+                if (output.target_type == "3")
+                {
+                    List<Dictionary<string, string>> dicList = output.status as List<Dictionary<string, string>>;
+                    foreach (var dic in dicList)
+                    {
+                        string timeValue = dic["value"];
+                        int hIndex = timePointView.GetValueIndex(timeValue, 0, 1, timePointView.GethIntList());
+                        int mIndex = timePointView.GetValueIndex(timeValue, 1, 0, timePointView.GetmIntList());
+                        //鏇存柊鍒濆鐘舵��
+                        timePointView.mUIPickerView.setCurrentItems(hIndex, mIndex, 0);
+                        timepoint = timeValue;
+                    }
+                }
+            }
+
+
+            //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆�
+            timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
+            {
+                string hour = timePointView.GethStringList0()[index1].Split(' ')[0];
+                string minuet = timePointView.GetmStringList()[index2].Split(' ')[0];
+                timepoint = hour + ":" + minuet;
+            };
+            //纭畾鐐瑰嚮浜嬩欢
+            timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) =>
+            {
+                if (timepoint=="00:00") {
+                    //鎻愮ず
+                    return;
+                }
+                Output outputTime= new Output();
+                outputTime.sid = LogicMethod.NewSid();
+                outputTime.target_type = "3";
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                LogicMethod.dictionary(dic, "key", "delay");
+                LogicMethod.dictionary(dic, "value", timepoint);
+                outputTime.status.Add(dic);
+                if (edit)
+                {
+                    //绉婚櫎鏃ф暟鎹�
+                    Logic.currlogic.output.RemoveAt(index);
+                    //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�;
+                    Logic.currlogic.output.Insert(index, outputTime);
+                }
+                else
+                {
+                    //娣诲姞涓�涓柊鐨勬椂闂寸偣鏉′欢
+                    AddOutput(outputTime);
+                }
+                fLayout.RemoveFromParent();
+                LogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+            };
+        }
+
+        /// <summary>
+        /// 娣诲姞鐩爣
+        /// </summary>
+        /// <param name="target"></param>
+        private void AddOutput(Output target)
+        {
+            int indexValue = -1;
+            for (int i = 0; i < Logic.currlogic.output.Count; i++)
+            {
+                if (Logic.currlogic.output[i].sid == target.sid)
+                {
+                    indexValue = i;
+                    break;
+                }
+            }
+
+            if (indexValue != -1)
+            {
+                Logic.currlogic.output.RemoveAt(indexValue);
+                Logic.currlogic.output.Insert(indexValue, target);
+            }
+            else
+            {
+                Logic.currlogic.output.Add(target);
+            }
+
+        }
     }
 }

--
Gitblit v1.8.0