using System; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; using System.Collections.Generic; using System.Text; namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice { public class DeviceSet : FrameLayout { public DeviceSet() { Tag = "PirView"; } public void Show(Action action) { #region 界面布局 this.BackgroundColor = CSS.CSS_Color.viewMiddle; PirDevice.View.TopView topView = new View.TopView(); topView.topNameBtn.TextID = StringId.shebeigaunli; topView.topIconBtn.Visible = true; this.AddChidren(topView.FLayoutView()); topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { action(); this.RemoveFromParent(); }; VerticalRefreshLayout vv = new VerticalRefreshLayout(); vv.Height = Application.GetRealHeight(667 - 64); vv.Y = Application.GetRealHeight(64); this.AddChidren(vv); vv.BeginHeaderRefreshingAction += () => { //关闭刷新View; vv.EndHeaderRefreshing(); //获取列表 Method.GetPirDeviceList(this,() => { Application.RunOnMainThread(() => { //刷新界面 UIView(vv); }); }); }; #endregion UIView(vv); } /// /// 加载UI界面 /// /// 上下滑控件 void UIView(VerticalRefreshLayout vv) { vv.RemoveAll(); for (int i = 0; i < Pir.pirDeviceList.Count; i++) { var pirDevice = Pir.pirDeviceList[i]; #region 红外宝图标 版本号 名称 状态 FrameLayout fLayout = new FrameLayout { Width = Application.GetRealWidth(375), Height = Application.GetRealHeight(12 + 92 + (50 * pirDevice.FunctioList.Count)), }; vv.AddChidren(fLayout); //红外宝显示父控件 FrameLayout devfLayout = new FrameLayout { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 16 * 2), Height = Application.GetRealHeight(92 + (50 * pirDevice.FunctioList.Count)), BackgroundColor = CSS.CSS_Color.view, Radius = (uint)Application.GetRealHeight(12), }; fLayout.AddChidren(devfLayout); //红外宝图标 Button priequipmentBtn = new Button { Y = Application.GetRealHeight(16), X = Application.GetRealWidth(5), Width = Application.GetRealWidth(60), Height = Application.GetRealWidth(60), UnSelectedImagePath = "PirIcon/priequipment.png", TextAlignment = TextAlignment.Center, }; devfLayout.AddChidren(priequipmentBtn); //红外宝名称 Button deviceNameBtn = new Button { Y = Application.GetRealHeight(16), X = priequipmentBtn.Right + Application.GetRealWidth(7), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(20), Text = pirDevice.name, TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textColor, IsBold = true, }; devfLayout.AddChidren(deviceNameBtn); //版本号 Button versionBtn = new Button { Y = deviceNameBtn.Bottom + Application.GetRealHeight(4), X = priequipmentBtn.Right + Application.GetRealWidth(7), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(17), Text = "版本号v1.3.5", TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textCancelColor, }; devfLayout.AddChidren(versionBtn); // 5/10 Button geBtn = new Button { Y = versionBtn.Bottom + Application.GetRealHeight(2), X = priequipmentBtn.Right + Application.GetRealWidth(7), Width = Application.GetRealWidth(120), Height = Application.GetRealHeight(17), Text = pirDevice.FunctioList.Count.ToString(), TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textConfirmColor, }; devfLayout.AddChidren(geBtn); geBtn.Width = geBtn.GetTextWidth(); // 5/10 Button sumBtn = new Button { Y = versionBtn.Bottom + Application.GetRealHeight(2), X = geBtn.Right, Width = Application.GetRealWidth(20), Height = Application.GetRealHeight(17), Text = "/10", TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textCancelColor, }; devfLayout.AddChidren(sumBtn); //状态图标 Button stateIconBtn = new Button { Y = Application.GetRealHeight(23), X = Application.GetRealWidth(291), Width = Application.GetRealWidth(8), Height = Application.GetRealWidth(8), UnSelectedImagePath = "PirIcon/online.png", SelectedImagePath = "PirIcon/offline.png", }; devfLayout.AddChidren(stateIconBtn); //红外宝状态(在线-离线) Button stateTextBtn = new Button { Y = Application.GetRealHeight(18), X = Application.GetRealWidth(303), Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(17), TextID = StringId.zaixianhwb, TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text12, TextColor = 0xFF67D569,// CSS.CSS_Color.textColor, SelectedTextColor =CSS.CSS_Color.textRedColor, IsBold = true, }; devfLayout.AddChidren(stateTextBtn); if (pirDevice.online) { stateIconBtn.IsSelected = true; stateTextBtn.IsSelected = true; } else { stateIconBtn.IsSelected = false; stateTextBtn.IsSelected = false; } //线 Button lineBtn = new Button { Y = Application.GetRealHeight(92) - 1, X = Application.GetRealWidth(16), Width = Application.GetRealWidth(343 - 16 * 2), Height = 1, BackgroundColor = CSS.CSS_Color.viewLine, }; devfLayout.AddChidren(lineBtn); //点击事件 FrameLayout clickFram = new FrameLayout { Y = Application.GetRealHeight(12), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(375 - 16 * 2), Height = Application.GetRealHeight(92), BackgroundColor = 0x00000000, //CSS.CSS_Color.view, Radius = (uint)Application.GetRealHeight(12), Tag = Pir.pirDeviceList[i], }; fLayout.AddChidren(clickFram); clickFram.MouseUpEventHandler += (sender, e) => { var pirclick = (clickFram.Tag as Pir); NewSwitchView(pirclick, vv); }; if (Pir.pirDeviceList.Count - 1 == i) { //最后一个后面增加间隔背景 vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) }); } #endregion for (int j = 0; j < pirDevice.FunctioList.Count; j++) { var control = pirDevice.FunctioList[j]; RowLayout funControlRow = new RowLayout { Y = Application.GetRealHeight(92 + (50 * j)), Width = Application.GetRealWidth(375 - 16 * 2), Height = Application.GetRealHeight(50), LineColor = CSS.CSS_Color.textWhiteColor, SubViewWidth = Application.GetRealWidth(68), }; devfLayout.AddChidren(funControlRow); //遥控器名称 Button nameBtn = new Button { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(20), Text = control.name, TextAlignment = TextAlignment.CenterLeft, TextSize = TextSize.text14, TextColor = CSS.CSS_Color.textColor, Gravity = Gravity.CenterVertical, }; funControlRow.AddChidren(nameBtn); //遥控器区域 Button areaBtn = new Button { X = Application.GetRealWidth(311 + 16 - (40 + 100)), Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(17), Text = Intelligence.Automation.LogicMethod.GetGetRoomName(control), TextAlignment = TextAlignment.CenterRight, TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textCancelColor, Gravity = Gravity.CenterVertical, }; funControlRow.AddChidren(areaBtn); //下一级图标 Button nextIconBtn = new Button { X = Application.GetRealWidth(295 + 16), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), UnSelectedImagePath = "PirIcon/next.png", Gravity = Gravity.CenterVertical, }; funControlRow.AddChidren(nextIconBtn); //删除 Button delBtn = new Button { Width = Application.GetRealWidth(50), Height = Application.GetRealHeight(22), TextID = StringId.Del, TextAlignment = TextAlignment.Center, TextSize = TextSize.text16, TextColor = CSS.CSS_Color.textWhiteColor, IsBold = true, BackgroundColor = CSS.CSS_Color.textRedColor, Tag = control, }; funControlRow.AddRightView(delBtn); //线 Button line1Btn = new Button { Y = Application.GetRealHeight(50 - 2), X = Application.GetRealWidth(16), Width = Application.GetRealWidth(311), Height = 1, BackgroundColor = CSS.CSS_Color.viewLine, }; funControlRow.AddChidren(line1Btn); if (j == pirDevice.FunctioList.Count - 1) { //最后改变一个线的颜色 line1Btn.BackgroundColor = CSS.CSS_Color.viewTranslucence; funControlRow.LineColor = CSS.CSS_Color.viewTranslucence; } delBtn.MouseUpEventHandler += (sender, e) => { var Function = delBtn.Tag as Entity.Function; //加载log Loading loading = new Loading(); this.AddChidren(loading); HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null; loading.Start(); new System.Threading.Thread(() => { try { responsePackNew = PirSend.DeleteDevice(Function.deviceId); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); try { if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { var function = pirDevice.FunctioList.Find((c)=>c.sid== Function.sid); if (function != null) { pirDevice.FunctioList.Remove(Function); if (Pir.currPir != null && pirDevice.sid == Pir.currPir.sid) { Pir.currPir.FunctioList = pirDevice.FunctioList; } } UIView(vv); } else { Method method = new Method(); method.ErrorShow(responsePackNew); } } catch { } }); } }) { IsBackground = true }.Start(); }; EventHandler editClick = (sender, e) => { EditControl editControl = new EditControl(); MainPage.BasePageView.AddChidren(editControl); editControl.Show(control, pirDevice, (device) => { //回调更新名字/区域 nameBtn.Text = device.name; areaBtn.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(device); }); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; funControlRow.MouseUpEventHandler += editClick; nameBtn.MouseUpEventHandler += editClick; areaBtn.MouseUpEventHandler += editClick; nextIconBtn.MouseUpEventHandler += editClick; } } } /// /// 加载弹框 /// /// /// void NewSwitchView(Pir pirclick, VerticalRefreshLayout vv) { FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence }; this.AddChidren(frame); SwitchView switchView = new SwitchView(); switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor; switchView.FLayoutView(frame, StringId.shanchushebei, StringId.xiugaimingzi, "", (intValue) => { if (StringId.xiugaimingzi == intValue) { List list = new List(); for (int b = 0; b < Pir.pirDeviceList.Count; b++) { list.Add(Pir.pirDeviceList[b].name); } Method methodView = new Method(); methodView.EditControlName(StringId.xiugaimingzi, list, pirclick.name, (name, view) => { pirclick.name = name; //加载log Loading loading = new Loading(); view.AddChidren(loading); HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null; loading.Start(); new System.Threading.Thread(() => { try { responsePackNew = PirSend.DeviceRename(pirclick.deviceId, pirclick.name); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { view.Close(); UIView(vv); } else { Method method = new Method(); method.ErrorShow(responsePackNew); } }); } }) { IsBackground = true }.Start(); },()=> { NewSwitchView(pirclick, vv); },false); } else { string text = Language.StringByID(StringId.shanchushebei) + pirclick.name + "?"; TipPopView tipPopView = new TipPopView(); tipPopView.TipBox(StringId.tip, text, (dialog) => { //加载log Loading loading = new Loading(); dialog.AddChidren(loading); HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null; loading.Start(); new System.Threading.Thread(() => { try { responsePackNew = PirSend.DeleteDevice(pirclick.deviceId); } catch { } finally { Application.RunOnMainThread(() => { loading.Hide(); if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") { dialog.Close(); UIView(vv); } else { Method method = new Method(); method.ErrorShow(responsePackNew); } }); } }) { IsBackground = true }.Start(); }, () => { NewSwitchView(pirclick, vv); }, false); } }); } } }