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