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