From f49856cb0e1e9d95fe11bb64054a407f69943d16 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 30 十一月 2020 19:34:35 +0800
Subject: [PATCH] 2020-11-30-1

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs |  232 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 230 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
index 680d108..b8f1cc4 100644
--- 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,245 @@
             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)
+        {
+            LogicView.DateView dateView = new LogicView.DateView();
+            dateView.btnTitle.TextID = StringId.addSceneLogic;
+            dateView.FLayoutView(fLayout, 5);
+            dateView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
+            {
+                fLayout.RemoveFromParent();
+            };
+            VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout
+            {
+                Y = Application.GetRealHeight(56),
+                Height = Application.GetRealHeight(50 * 5),
+
+            };
+            dateView.frameLayout.AddChidren(verticalRefresh);
+
+            //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鐘舵��
+            Button buttonClick = new Button();
+            HDL_ON.Entity.Scene sceneSelecetd = null;
+            var sceneList = LogicMethod.GetSceneList();
+            for (int i = 0; i < sceneList.Count; i++)
+            {
+                var scene = sceneList[i];
+                LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
+                sceneView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence;
+                sceneView.btnIcon.Visible = false;
+                sceneView.btnText.X = Application.GetRealWidth(20);
+                sceneView.btnText.Text = scene.name;
+                sceneView.btnLine.X = Application.GetRealWidth(20);
+                sceneView.btnLine.Width = Application.GetRealWidth(303);
+                sceneView.btnNextIcon.X = Application.GetRealWidth(303);
+                sceneView.btnNextIcon.Width = Application.GetMinRealAverage(28);
+                sceneView.btnNextIcon.Height = Application.GetMinRealAverage(28);
+                sceneView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png";
+                sceneView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png";
+                verticalRefresh.AddChidren(sceneView.FLayoutView());
+                sceneView.btnClick.Tag = scene;//鏍囪绱㈠紩
+
+                //鍦烘櫙鐨勭偣鍑讳簨浠�
+                sceneView.btnClick.MouseUpEventHandler += (sender, e) =>
+                {
+                    buttonClick.IsSelected = false;
+                    sceneView.btnNextIcon.IsSelected = true;
+                    buttonClick = sceneView.btnNextIcon;
+                    sceneSelecetd =sceneView.btnClick.Tag as HDL_ON.Entity.Scene;
+                };
+
+            }
+            //纭鐐瑰嚮浜嬩欢
+            dateView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
+            {
+                if (sceneSelecetd == null)
+                {
+                    //鎻愮ず锛氳繕娌¢�変腑鎵ц鍛ㄦ湡
+                    return;
+                }
+                Output outputDevice = new Output();
+                outputDevice.target_type = "2";
+                outputDevice.sid = sceneSelecetd.sid;
+                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.GethIntList0());
+                        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